{"version":3,"sources":["webpack://carto/webpack/universalModuleDefinition","webpack://carto/webpack/bootstrap","webpack://carto/./node_modules/underscore/underscore.js","webpack://carto/./node_modules/backbone/backbone.js","webpack://carto/./src/core/model.js","webpack://carto/./src/api/v4/error-handling/carto-validation-error.js","webpack://carto/./src/api/v4/error-handling/carto-error.js","webpack://carto/./src/api/v4/constants.js","webpack://carto/./src/api/v4/filter/base.js","webpack://carto/./src/core/util.js","webpack://carto/./src/api/v4/filter/spatial-filter-types.js","webpack://carto/./src/analysis/analysis-model.js","webpack://carto/./src/api/v4/dataview/base.js","webpack://carto/./src/api/v4/filter/base-sql.js","webpack://carto/./src/api/v4/source/base.js","webpack://carto/./src/geo/map/legends/legend-model-base.js","webpack://carto/./src/api/v4/events.js","webpack://carto/./src/windshaft-integration/legends/rule.js","webpack://carto/./src/geo/map/layer-types.js","webpack://carto/./node_modules/jquery/dist/jquery.js","webpack://carto/./src/windshaft/filters/bounding-box.js","webpack://carto/./src/util/backbone-abort-sync.js","webpack://carto/./src/dataviews/dataview-model-base.js","webpack://carto/./src/api/v4/filter/filters-collection.js","webpack://carto/./src/geo/map/legends/static-legend-model-base.js","webpack://carto/./src/api/v4/layer/index.js","webpack://carto/./src/constants.js","webpack://carto/./src/windshaft/error-parser.js","webpack://carto/./src/cdb.log.js","webpack://carto/./src/analysis/camshaft-reference.js","webpack://carto/./src/analysis/analysis-service.js","webpack://carto/(webpack)/buildin/global.js","webpack://carto/./src/dataviews/helpers/histogram-helper.js","webpack://carto/./src/dataviews/histogram-dataview-model.js","webpack://carto/./src/dataviews/category-dataview/categories-collection.js","webpack://carto/./node_modules/@carto/zera/dist/zera.js","webpack://carto/./src/geo/cartodb-layer-group-view-base.js","webpack://carto/./src/api/v4/native/trigger-layer-feature-event.js","webpack://carto/./src/api/v4/layer/metadata/base.js","webpack://carto/./src/api/v4/style/base.js","webpack://carto/./src/geo/map/popup-fields.js","webpack://carto/./src/api/v4/layer/base.js","webpack://carto/./src/windshaft/error.js","webpack://carto/./src/windshaft/config.js","webpack://carto/./node_modules/camshaft-reference/version.js","webpack://carto/./src/engine.js","webpack://carto/./node_modules/d3-array/src/ascending.js","webpack://carto/./node_modules/d3-array/src/bisector.js","webpack://carto/./node_modules/d3-array/src/bisect.js","webpack://carto/./node_modules/d3-array/src/pairs.js","webpack://carto/./node_modules/d3-array/src/cross.js","webpack://carto/./node_modules/d3-array/src/descending.js","webpack://carto/./node_modules/d3-array/src/number.js","webpack://carto/./node_modules/d3-array/src/variance.js","webpack://carto/./node_modules/d3-array/src/deviation.js","webpack://carto/./node_modules/d3-array/src/extent.js","webpack://carto/./node_modules/d3-array/src/array.js","webpack://carto/./node_modules/d3-array/src/constant.js","webpack://carto/./node_modules/d3-array/src/identity.js","webpack://carto/./node_modules/d3-array/src/range.js","webpack://carto/./node_modules/d3-array/src/ticks.js","webpack://carto/./node_modules/d3-array/src/threshold/sturges.js","webpack://carto/./node_modules/d3-array/src/histogram.js","webpack://carto/./node_modules/d3-array/src/quantile.js","webpack://carto/./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://carto/./node_modules/d3-array/src/threshold/scott.js","webpack://carto/./node_modules/d3-array/src/max.js","webpack://carto/./node_modules/d3-array/src/mean.js","webpack://carto/./node_modules/d3-array/src/median.js","webpack://carto/./node_modules/d3-array/src/merge.js","webpack://carto/./node_modules/d3-array/src/min.js","webpack://carto/./node_modules/d3-array/src/permute.js","webpack://carto/./node_modules/d3-array/src/scan.js","webpack://carto/./node_modules/d3-array/src/shuffle.js","webpack://carto/./node_modules/d3-array/src/sum.js","webpack://carto/./node_modules/d3-array/src/transpose.js","webpack://carto/./node_modules/d3-array/src/zip.js","webpack://carto/./node_modules/d3-array/index.js","webpack://carto/./src/api/v4/filter/or.js","webpack://carto/./src/api/v4/filter/and.js","webpack://carto/./src/api/v4/filter/range.js","webpack://carto/./src/api/v4/filter/category.js","webpack://carto/./src/windshaft/filters/polygon.js","webpack://carto/./src/api/v4/filter/polygon.js","webpack://carto/./src/windshaft/filters/circle.js","webpack://carto/./src/api/v4/filter/circle.js","webpack://carto/./src/geo/adapters/gmaps-bounding-box-adapter.js","webpack://carto/./src/api/v4/filter/bounding-box-gmaps.js","webpack://carto/./src/geo/adapters/leaflet-bounding-box-adapter.js","webpack://carto/./src/api/v4/filter/bounding-box-leaflet.js","webpack://carto/./src/api/v4/filter/bounding-box.js","webpack://carto/./src/api/v4/filter/index.js","webpack://carto/./src/api/v4/dataview/time-series/parse-data.js","webpack://carto/./src/api/v4/dataview/time-series/index.js","webpack://carto/./src/api/v4/dataview/histogram/parse-data.js","webpack://carto/./src/util/date-utils.js","webpack://carto/./src/dataviews/histogram-dataview/histogram-data-model.js","webpack://carto/./src/api/v4/dataview/histogram/index.js","webpack://carto/./src/api/v4/dataview/formula/parse-data.js","webpack://carto/./src/dataviews/formula-dataview-model.js","webpack://carto/./src/api/v4/dataview/formula/index.js","webpack://carto/./src/api/v4/dataview/category/parse-data.js","webpack://carto/./src/windshaft/filters/base.js","webpack://carto/./src/windshaft/filters/category.js","webpack://carto/./src/dataviews/category-dataview/category-model-range.js","webpack://carto/./src/dataviews/category-dataview/category-item-model.js","webpack://carto/./src/dataviews/category-dataview/search-model.js","webpack://carto/./src/dataviews/category-dataview-model.js","webpack://carto/./src/api/v4/dataview/category/index.js","webpack://carto/./src/api/v4/dataview/index.js","webpack://carto/./src/api/v4/style/cartocss.js","webpack://carto/./src/api/v4/style/index.js","webpack://carto/./src/api/v4/source/sql.js","webpack://carto/./src/api/v4/source/dataset.js","webpack://carto/./src/api/v4/source/index.js","webpack://carto/./src/core/profiler.js","webpack://carto/./src/geo/gmaps/projector.js","webpack://carto/./src/geo/gmaps/gmaps-layer-view.js","webpack://carto/./src/geo/gmaps/gmaps-cartodb-layer-group-view.js","webpack://carto/./src/api/v4/native/google-maps-map-type.js","webpack://carto/./src/geo/leaflet/leaflet-layer-view.js","webpack://carto/./src/geo/leaflet/leaflet-cartodb-layer-group-view.js","webpack://carto/./src/api/v4/layer/aggregation.js","webpack://carto/./src/api/v4/layer/event-types.js","webpack://carto/./src/api/v4/layer/metadata/categories.js","webpack://carto/./src/api/v4/layer/metadata/buckets.js","webpack://carto/./src/api/v4/layer/metadata/parser.js","webpack://carto/./src/util/get-object-value.js","webpack://carto/./src/geo/map/legends/torque-legend-model.js","webpack://carto/./src/geo/map/legends/custom-choropleth-legend-model.js","webpack://carto/./src/geo/map/legends/custom-legend-model.js","webpack://carto/./src/geo/map/legends/choropleth-legend-model.js","webpack://carto/./src/geo/map/legends/bubble-legend-model.js","webpack://carto/./src/geo/map/legends/category-legend-model.js","webpack://carto/./src/geo/map/legends/legends.js","webpack://carto/./src/geo/map/tooltip-template.js","webpack://carto/./src/geo/map/infowindow-template.js","webpack://carto/./src/geo/map/layer-model-base.js","webpack://carto/./src/core/config.js","webpack://carto/./src/cdb.config.js","webpack://carto/./src/geo/map/cartodb-layer.js","webpack://carto/./src/api/v4/layer/layer.js","webpack://carto/./src/api/v4/native/leaflet-layer.js","webpack://carto/./src/api/v4/layers.js","webpack://carto/./src/windshaft/request-tracker.js","webpack://carto/./vendor/lzma.js","webpack://carto/./src/windshaft/client.js","webpack://carto/./src/windshaft/response.js","webpack://carto/./src/windshaft/request.js","webpack://carto/./src/windshaft/map-serializer/named-map-serializer/named-map-serializer.js","webpack://carto/./src/windshaft-integration/legends/rule-to-category-legend-adapter.js","webpack://carto/./src/windshaft-integration/legends/rule-to-choropleth-legend-adapter.js","webpack://carto/./src/windshaft-integration/legends/rule-to-bubble-legend-adapter.js","webpack://carto/./src/windshaft-integration/legends/rule-to-legend-model-adapters.js","webpack://carto/./src/cdb.js","webpack://carto/./src/windshaft-integration/model-updater.js","webpack://carto/./src/geo/map/layers.js","webpack://carto/./src/dataviews/dataviews-collection.js","webpack://carto/./src/geo/cartodb-layer-group.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/layers-serializer.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/dataviews-serializer.js","webpack://carto/./node_modules/camshaft-reference/analysis-graph.js","webpack://carto/./node_modules/camshaft-reference/versions sync ^\\.\\/.*\\/reference\\.json$","webpack://carto/./node_modules/camshaft-reference/versions/index.js","webpack://carto/./node_modules/camshaft-reference/index.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/analysis-serializer.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/anonymous-map-serializer.js","webpack://carto/./node_modules/backbone-poller/backbone.poller.js","webpack://carto/./src/analysis/analysis-poller.js","webpack://carto/./src/api/v4/error-handling/error-tracker.js","webpack://carto/./src/api/v4/error-handling/error-list/validation-errors.js","webpack://carto/./src/api/v4/error-handling/error-list/ajax-errors.js","webpack://carto/./src/api/v4/error-handling/error-list/windshaft-errors.js","webpack://carto/./src/api/v4/error-handling/error-list/index.js","webpack://carto/./src/api/v4/error-handling/carto-error-extender.js","webpack://carto/./src/api/v4/client.js","webpack://carto/./node_modules/process/browser.js","webpack://carto/./node_modules/setimmediate/setImmediate.js","webpack://carto/./node_modules/node-libs-browser/node_modules/timers-browserify/main.js","webpack://carto/./node_modules/promise-polyfill/promise.js","webpack://carto/./node_modules/whatwg-fetch/fetch.js","webpack://carto/./src/api/v4/index.js"],"names":["$","require","_","Backbone","Model","extend","initialize","options","bindAll","prototype","call","fetch","args","self","trigger","when","done","ev","fail","setIdAttribute","attr","idAttribute","retrigger","obj","retrigEvent","bind","save","opt1","opt2","silent","promise","apply","arguments","module","exports","CartoError","CartoValidationError","type","message","opts","origin","errorExtender","errorTracker","UNEXPECTED_ERROR","GENERIC_ORIGIN","error","cartoError","Object","create","Error","_isWindshaftError","_transformWindshaftError","layers","analysis","_isAjaxError","_transformAjaxError","extraFields","getExtraFields","friendlyMessage","errorCode","name","stack","originalError","track","responseText","layer","findById","layerId","source","sourceId","getId","analysisId","_handleAjaxResponse","statusText","errorMessage","parsedError","JSON","parse","errors","exc","operation","COUNT","SUM","AVG","MAX","MIN","isValidOperation","op","contains","status","NOT_LOADED","LOADING","LOADED","ERROR","timeAggregation","AUTO","MILLENNIUM","CENTURY","DECADE","YEAR","QUARTER","MONTH","WEEK","DAY","HOUR","MINUTE","isValidTimeAggregation","agg","ATTRIBUTION","Base","Events","_getValidationError","code","util","isCORSSupported","XMLHttpRequest","array2hex","byteArr","encoded","i","length","push","String","fromCharCode","btoa","join","data","window","encodeBase64Native","encodeBase64","input","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","enc","tmpArr","charCodeAt","charAt","r","slice","uniqueCallbackName","str","_callback_c","crc32","crcTable","_crcTable","_makeCRCTable","crc","l","c","n","k","_inferBrowser","ua","browser","navigator","userAgent","detectIE","msie","indexOf","trident","getIEVersion","document","compatMode","querySelector","addEventListener","atob","all","ie","version","edge","chrome","firefox","opera","safari","isMobileDevice","test","supportsTouch","msMaxTouchPoints","webGLSupportedAndEnabled","isWebGLSupported","canvas","createElement","WebGLRenderingContext","getContext","endsWith","suffix","checkRequiredOpts","actualOpts","requiredOpts","from","each","item","isUndefined","isLeafletLoaded","L","isGoogleMapsLoaded","google","maps","types","BBOX","CIRCLE","POLYGON","REQUIRED_OPTS","STATUS","PENDING","WAITING","RUNNING","FAILED","READY","AnalysisModel","attrs","_camshaftReference","camshaftReference","_engine","engine","_initBinds","_referencedBy","url","get","authToken","Array","tokens","map","token","setOk","unset","setError","set","unbind","_reload","getParamNames","paramName","_hadStatus","isReady","isSourceOfAnyModel","previous","reload","_onMapReloadError","remove","stopListening","findAnalysisById","sources","chain","_getSourceNames","sourceName","compact","value","getSourceNamesForAnalysisType","isDone","_hasStatus","isLoading","isFailed","statuses","isArray","_getStatus","toJSON","json","pick","attributes","params","sourceNames","sourceInfo","getParamNamesForAnalysisType","getNodes","nodes","forEach","concat","getNodesCollection","Collection","equals","analysisModel","markAsSourceOf","model","cid","keys","isSourceOf","unmarkAsSourceOf","SourceBase","FilterBase","SQLFilterBase","SpatialFilterTypes","getStatus","_status","isLoaded","hasError","enable","_setEnabled","disable","isEnabled","_enabled","getSource","_source","setColumn","column","_checkColumn","_column","_internalModel","getColumn","addFilter","filter","_checkFilter","_addSpatialFilter","removeFilter","_removeSpatialFilter","hasFilter","hasBBoxFilter","_boundingBoxFilter","hasCircleFilter","_circleFilter","hasPolygonFilter","_polygonFilter","getData","DEFAULTS","_initialize","defaults","_checkSource","_checkOptions","_options","isString","isEmpty","_createInternalModel","enabled","_listenToInternalModelSharedEvents","listenTo","_onDataChanged","_onColumnChanged","_onStatusLoading","_onStatusLoaded","_onStatusError","_triggerError","_changeProperty","key","internalKey","prevValue","_triggerChange","_changeProperties","properties","internalDataviewError","spatialFilter","_addBoundingBoxFilter","_addCircleFilter","_addPolygonFilter","_removeBoundingBoxFilter","_removeCircleFilter","_removePolygonFilter","bboxFilter","addBBoxFilter","$getInternalModel","removeBBoxFilter","circleFilter","addCircleFilter","removeCircleFilter","polygonFilter","addPolygonFilter","removePolygonFilter","$setEngine","getObjectValue","ALLOWED_OPTIONS","DEFAULT_JOIN_OPERATOR","SQLBase","_filters","filterType","filterValue","newFilter","_checkFilters","filters","isObject","setFilters","sql","_interpolateFilter","Boolean","includeNull","_includeNullInQuery","isFilterValid","ALLOWED_FILTERS","parameters","PARAMETER_SPECIFICATION","haveCorrectType","every","parameterValue","parameter","allowedTypes","some","parameterIsOfType","isOptionValid","option","isDate","toISOString","_convertValueToSQLString","isNumber","normalizeString","toString","filterValues","sqlString","template","SQL_TEMPLATES","parameterType","replace","FiltersCollection","EVENTS","_id","$generateId","_hasFiltersApplied","_appliedFilters","$nextId","internalError","on","$getEngine","getFilters","addFilters","count","removeFilters","Engine","NON_RESETEABLE_DEFAULT_ATTRS","LegendModelBase","visible","title","preHTMLSnippet","postHTMLSnippet","state","constructor","STATE_LOADING","deps","RELOAD_STARTED","_onEngineReloadStarted","isError","STATE_ERROR","isSuccess","STATE_SUCCESS","show","hide","isVisible","update","getNonResettableAttrs","reset","omit","isAvailable","SUCCESS","PROPERTY_KEY","MAPPING_KEY","RANGE_FILTER_TYPE","CATEGORY_FILTER_TYPE","DEFAULT_FILTER_TYPE","Rule","rule","_rule","matchesAnyProperty","props","_matches","matchesAnyMapping","mappings","acceptedValues","getBucketsWithRangeFilter","_getBucketsByFilterType","getBucketsWithCategoryFilter","getBucketsWithDefaultFilter","select","buckets","bucket","getMapping","mapping","getProperty","prop","getFilterAvg","stats","filter_avg","TILED_LAYER_TYPE","PLAIN_LAYER_TYPE","WMS_LAYER_TYPE","GMAPS_BASE_LAYER_TYPE","CARTODB_LAYER_TYPE","TORQUE_LAYER_TYPE","isLayerOfType","layerModel","layerType","toLowerCase","isTiledLayer","isPlainLayer","isWMSLayer","isGoogleMapsBaseLayer","isCartoDBLayer","isTorqueLayer","BOUNDING_BOX_FILTER_WAIT","mapAdapter","_bounds","_mapAdapter","setBounds","getBounds","debounce","_boundsChanged","_stopBinds","bounds","areBoundsAvailable","isFinite","west","serialize","south","east","north","clean","method","_xhr","abort","sync","always","BackboneAbortSync","parseWindshaftErrors","UNFETCHED_STATUS","FETCHING_STATUS","FETCHED_STATUS","FETCH_ERROR_STATUS","REQUEST_GET_MAX_URL_LENGTH","sync_on_bbox_change","sync_on_circle_change","sync_on_polygon_change","union","_getSpatialFilterParam","_getDataviewSpecificURLParams","_addAuthTo","urlWithParams","getApiKey","getAuthToken","_bboxFilter","_getBoundingBoxFilterParam","_getCircleFilterParam","_getPolygonFilterParam","result","_checkBBoxFilter","syncsOnBoundingBoxChanges","_checkCircleFilter","syncsOnCircleChanges","_checkPolygonFilter","syncsOnPolygonChanges","_hasBinds","_checkSourceAttribute","id","_addSpatialFilterFrom","listenToOnce","_fetch","_onFilterChanged","_onAnalysisStatusChange","_onChangeBinds","refresh","_newDataAvailable","_shouldFetchOnURLChange","mdl","_onMapBoundsChanged","_shouldFetchOnBoundingBoxChange","_onCircleChanged","_shouldFetchOnCircleChange","_onPolygonChanged","_shouldFetchOnPolygonChange","success","_triggerLoading","_triggerStatusError","getSourceId","_reloadAndForceFetch","forceFetch","_sourceAffectsMyOwnSource","sourceAnalysis","_stopListeningBBoxChanges","_listenToBBoxChanges","_stopListeningCircleChanges","_listenToCircleChanges","_stopListeningPolygonChanges","_listenToPolygonChanges","has","ATTRS_NAMES","getPreviousData","successCallback","_model","response","_errorWithBigPolygonFilter","_parseError","usingPolygonFilter","getSourceType","isSourceType","isFiltered","_removeExistingAnalysisBindings","off","isFetched","isUnavailable","setUnavailable","_triggerFilterChange","filterIndex","removedElement","splice","sqlFilters","$getSQL","joinedFilters","JOIN_OPERATOR","StaticLegendModelBase","Layer","EventTypes","Aggregation","events","OVERLAY_TYPES","HEADER","LIMITS","TILES","LOADER","LOGO","SEARCH","ZOOM","MAP_PROVIDER_TYPES","GMAPS","LEAFLET","GMAPS_BASE_LAYER_TYPES","WINDSHAFT_ERRORS","ANALYSIS","LAYER","LIMIT","TILE","GENERIC","UNKNOWN","WindshaftError","responseJSON","errors_with_context","content","cdb","console","log","info","debug","DEBUG","getVersion","PARAM_TYPES","NODE","NUMBER","STRING","ENUM","SOURCE_ANALYSIS_TYPE","ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP","ANALYSIS_TYPE_TO_PARAM_NAMES_MAP","analysesReference","analyses","analysisType","analysisParams","paramType","paramNames","Analysis","LayerTypes","AnalysisService","_apiKey","apiKey","_authToken","_analysisNodes","analyse","analysisDefinition","clone","findNodeById","analysisAttrs","_getAnalysisAttributesFromAnalysisDefinition","add","_onAnalysisRemoved","analysisNodes","sourceNamesForAnalysisType","sourceParams","createAnalysisForLayer","layerQuery","query","getUniqueAnalysisNodes","layersCollection","dataviewsCollection","uniqueAnalysisNodes","analysisList","getAnalysisList","analysisNode","analisis","layerAnalyses","_getAnalysesFromLayers","dataviewsAnalyses","_getAnalysesFromDataviews","_getCartoDBAndTorqueLayers","dataview","AGGREGATION_DATA","second","unit","factor","minute","hour","day","week","month","quarter","year","decade","century","millennium","helper","trimBuckets","filledBuckets","totalBuckets","index","keepGoing","fillTimestampBuckets","start","aggregation","numberOfBins","definedBucket","undefined","bucketStart","nextBucketStart","bin","end","next","freq","timestamp","fillNumericBuckets","width","commonBucketEnd","isLastBucket","bucketEnd","max","filledBucket","hasChangedSomeOf","list","changed","number","hasOwnProperty","date","Date","setUTCSeconds","getUTCSeconds","setUTCMinutes","getUTCMinutes","setUTCHours","getUTCHours","setUTCDate","getUTCDate","setUTCMonth","getUTCMonth","Math","min","_getDaysInMonth","getUTCFullYear","getTime","_isLeapYear","d3","DataviewModelBase","HistogramDataModel","dateUtils","totalAmount","filteredAmount","hasNulls","localTimezone","offset","getCurrentOffset","_localOffset","getLocalOffset","_totals","bins","column_type","localOffset","_data","setRange","_updateURLBinding","_onTotalsDataFetched","once","_updateBindings","_onTotalsError","_onLocalTimezoneChanged","_onFieldsChanged","_onColumnTypeChanged","_onUrlChanged","enableFilter","disableFilter","getUnfilteredData","getUnfilteredDataModel","getSize","size","getColumnType","bins_count","bin_width","timestamp_start","bins_start","parsedData","nulls","_calculateTotalAmount","_calculateFilteredAmount","reduce","memo","indexes","_findBinsIndexes","_sumBinsFreq","startBin","findWhere","endBin","acum","d","getDistributionType","histogram","freqAccessor","a","osc","mean","sumFreqs","sum","freqs","ajus","abs","pop","maxAjus","minAjus","uniques","uniq","A_TYPES","U_TYPES","e","isEqual","columnType","setUrl","resetFilter","_resetFilterAndFetch","_setTotalsStartEnd","aggregationChangedToUndefined","hasChanged","_resetFilter","startEndChanged","startEndValid","hasDifferentValues","unsetRange","CategoryItemModel","COUNT_AGGREGATION_TYPE","models","aggregationModel","category","isModel","comparator","b","isOtherAvailable","where","CartoDBLayerGroupViewBase","layerGroupModel","interaction","nativeMap","_mapModel","mapModel","onLayerVisibilityChanged","_reloadInteraction","_clearInteraction","forEachGroupedLayer","layerIndex","isInteractive","isFeatureInteractivityEnabled","_enableInteraction","layerIndexInLayerGroup","tilejson","_generateTileJSON","previousLayerInteraction","interactionClass","zeraEvent","_interactionDisabled","_manageOnEvents","_manageInteractivityErrors","_manageOffEvents","payload","hasURLs","scheme","grids","getGridURLTemplatesWithSubdomains","tiles","getTileURLTemplatesWithSubdomains","formatter","tilesOk","eventName","internalEvent","event","latLng","feature","latlng","lat","lng","position","x","y","_type","_mapping","_property","getType","$setError","_error","newEngine","getFieldNames","fields","field","o","PopupFields","otherFields","myFields","subtype","truncateMessage","context","isLayerError","isAnalysisError","node_id","isGlobalError","errorType","MAX_SIZE","substring","originalType","forcedType","genericType","MAPS_API_BASE_URL","AnalysisPoller","AnonymousMapSerializer","CartoDBLayerGroup","DataviewsCollection","LayersCollection","ModelUpdater","NamedMapSerializer","Request","Response","WindshaftClient","RELOAD_DEBOUNCE_TIME_IN_MILIS","_isNamedMap","templateName","_timeout","_stackCalls","_batchOptions","_windshaftSettings","urlTemplate","serverUrl","userName","username","client","_windshaftClient","_eventEmmitter","_analysisPoller","_layersCollection","_dataviewsCollection","_cartoLayerGroup","_bindCartoLayerGroupError","_modelUpdater","getLayerGroup","callback","Promise","resolve","reject","includeFilters","negate","later","_performReload","then","catch","windshaftError","clearTimeout","setTimeout","windshaftOptions","_buildWindshaftOptions","serverResponse","_onReloadSuccess","_onReloadError","_buildParams","_getSerializer","request","instantiateMap","_manageClientError","addLayer","removeLayer","moveLayer","toIndex","fromIndex","addDataview","removeDataview","responseWrapper","updateModels","_restartAnalysisPolling","RELOAD_SUCCESS","_getSimpleWindshaftError","setErrors","RELOAD_ERROR","errorCallback","__ENV__","api_key","auth_token","warn","resetAnalysisNodes","change","lastIndexOf","LAYER_ERROR","find","OR","AND","RANGE_COMPARISON_OPERATORS","lt","lte","gt","gte","between","notBetween","betweenSymmetric","notBetweenSymmetric","freeze","Range","_getSQLTemplates","CATEGORY_COMPARISON_OPERATORS","in","notIn","eq","notEq","like","similarTo","Category","_polygon","setPolygon","polygon","getPolygon","encodeURIComponent","stringify","PolygonFilterModel","Polygon","_checkPolygon","resetPolygon","coordinates","_circle","setCircle","circle","getCircle","CircleFilterModel","Circle","_checkCircle","resetCircle","radius","_isReady","_map","_debouncedTriggerBoundsChanged","_triggerBoundsChanged","addListener","mapBounds","sw","getSouthWest","ne","getNorthEast","clearListeners","GoogleMapsBoundingBoxAdapter","BoundingBoxFilterModel","utils","BoundingBoxGoogleMaps","_isGoogleMap","_onBoundsChanged","element","Map","LeafletBoundingBoxAdapter","BoundingBoxLeaflet","_isLeafletMap","BoundingBox","_checkBounds","resetBounds","secondsToHours","seconds","parseTimeSeriesData","compactData","maxBin","maxFreq","_createBins","normalized","HistogramDataviewModel","TimeSeries","_aggregation","_offset","_hoursToSeconds","_localTimezone","useLocalTimezone","setAggregation","_validateAggregation","getAggregation","setOffset","_validateOffset","getOffset","_secondsToHours","_validateLocalTimezone","isUsingLocalTimezone","floor","isBoolean","hours","parseHistogramData","getTimezoneOffset","hasBeenFetched","_getCurrentOffset","setBins","Histogram","_bins","_start","_end","_validateBins","getBins","setStartEnd","_validateStartEnd","getStart","getEnd","values","bothAreNumbers","isNaN","bothAreNull","isNull","parseFormulaData","constants","FormulaDataviewModel","Formula","_operation","setOperation","_checkOperation","getOperation","parseCategoryData","categories","_createCategories","group","WindshaftFilterBase","rejectAll","rejectedCategories","acceptedCategories","accept","applyFilter","rejectedMdls","acceptedMdls","acceptAll","cleanFilter","isAccepted","isRejected","acceptCount","triggerChange","areAllRejected","rejectCount","acceptedCats","pluck","rejectedCats","getAcceptedCategoryNames","getRejectedCategoryNames","totalCount","categoriesCount","queryOptions","CategoriesCollection","q","fetchIfSearchIsApplied","isSearchApplied","setData","_parseData","getCount","isValid","resetData","getSearchQuery","newData","selected","err","SearchModel","CategoryModelRange","filterEnabled","allCategoryNames","_rangeModel","_searchModel","_bindSearchModelEvents","_onSearchDataChange","getSearchResult","m","setSearchQuery","isSearchValid","getSearchCount","applySearch","cleanSearch","setupSearch","numberOfAcceptedCategories","numberOfRejectedCategories","totalCategories","cat","isCategoryInData","_tmpArray","allNewCategories","allNewCategoryNames","acceptedCategoryNames","datum","unique","aggregationColumn","CategoryDataviewModel","CategoryFilter","operationColumn","_limit","limit","_operationColumn","setLimit","_checkLimit","getLimit","setOperationColumn","_checkOperationColumn","getOperationColumn","aggregation_column","CONTENT_CHANGED","CartoCSS","_checkContent","_content","getContent","setContent","newContent","_onContentChanged","CamshaftReference","SQL","_checkQuery","_query","_updateInternalModelQuery","_getQueryToApply","setQuery","_triggerQueryChanged","getQuery","internalModel","whereClause","Dataset","tableName","_checkTableName","_tableName","setTableName","_triggerTableNameChanged","getTableName","datasetQuery","MAX_HISTORY","Profiler","metrics","_backend","Number","MAX_VALUE","avg","total","last","history","Float32Array","backend","new_value","defer","t","performance","now","print_stats","Metric","t0","_elapsed","inc","qty","dec","mark","elapsed","metric","Projector","setMap","OverlayView","draw","latLngToPixel","projection","getProjection","fromLatLngToContainerPixel","Point","pixelToLatLng","point","fromContainerPixelToLatLng","LatLng","GMapsLayerView","_onModelUpdated","gmapsMap","showLimitErrors","addToMap","zera","C","OPACITY_FILTER","EMPTY_GIF","setImageOpacityIE8","img","opacity","v","round","style","generateId","random","GMapsCartoDBLayerGroupView","hovers","_featureOver","featureOver","_featureOut","featureOut","_featureClick","featureClick","previousEvent","eventTimeout","latlon","pxPos","timeStamp","any","blankImage","interactive","tileSize","Size","cache","projector","Interactive","overlayMapTypes","setAt","overlayIndex","_getOverlayIndex","removeAt","finishLoading","invalidate","pixelPos","getLayerInLayerGroupAt","ok","loading","setOpacity","getTile","coord","zoom","ownerDocument","ielt9","added","hasTileURLTemplates","image","Image","src","setAttribute","tile","_getTile","loadTime","finished","onload","onerror","addError","_getTileUrl","display","z","mod","pow","parseInt","tileURLTemplates","_refreshView","overlays","getAt","_checkLayer","getArray","findIndex","overlay","_newPoint","pixel","eventType","triggerLayerFeatureEvent","GoogleMapsMapType","_layers","_hoveredLayers","_internalView","_onFeatureClick","_onFeatureOver","_onFeatureOut","_onFeatureError","FEATURE_CLICKED","setOptions","draggableCursor","FEATURE_OVER","FEATURE_OUT","toArray","TILE_ERROR","LeafletLayerView","leafletMap","leafletLayer","nativeLayer","_createLeafletLayer","setModel","setZIndex","_modelUpdated","notifyRemove","redraw","LeafletCartoDBLayerGroupView","tileLayer","TileLayer","maxZoom","_setUrl","noDraw","tileURLTemplate","getTileURLTemplate","subdomains","getSubdomains","Util","containerPoint","layerPointToContainerPoint","layerPoint","containerPointToLatLng","_onFeatureClicked","OPERATIONS","MODE","PLACEMENTS","SAMPLE","GRID","CENTROID","VALID_RESOLUTIONS","threshold","resolution","_checkValidPlacement","placement","columns","_checkAndTransformColumns","identity","_checkColumns","aggregatedColumn","aggregateFunction","returnValue","_columnToSnakeCase","aggregate_function","aggregated_column","Categories","categoryBuckets","defaultBuckets","_categories","_defaultValue","getCategories","getDefaultValue","Buckets","rangeBuckets","_buckets","_avg","_min","_max","getBuckets","getAverage","getMin","getMax","BucketsMetadata","CategoriesMetadata","getMetadataFromRules","rulesData","metadata","ruleData","_isBucketsMetadata","_isCategoriesMetadata","object","path","defaultValue","split","TorqueLegendModel","items","html","CustomChoroplethLegendModel","prefix","leftLabel","rightLabel","colors","CustomLegendModel","ChoroplethLegendModel","BubbleLegendModel","fillColor","CategoryLegendModel","LEGENDS_METADATA","bubble","modelClass","definitionAttrs","dynamic","choropleth","custom","custom_choropleth","torque","SHARED_ATTRS","Legends","legendsData","_legendsData","legendMetadata","legendType","_createLegendModel","_findDataForLegend","ModelClass","definition","modelAttrs","attrNameInData","attrNameForModel","legendModel","hasAnyLegend","legendTypes","legend","TooltipTemplate","vertical_offset","horizontal_offset","alternative_names","hasFields","hasTemplate","InfowindowTemplate","maxHeight","template_type","MapLayer","collection","isHidden","toggle","hasSource","Config","VERSION","REPORT_ERROR_URL","ERROR_TRACK_ENABLED","config","cartodb_attributions","cartodb_logo_link","LayerModelBase","ATTRIBUTES_THAT_TRIGGER_VIS_RELOAD","CartoDBLayer","attribution","cartocss","setSource","infowindow","tooltip","legends","_onAttributeChanged","restoreCartoCSS","_hasInfowindowFields","_hasTooltipFields","getInteractiveColumnNames","isInfowindowEnabled","isTooltipEnabled","getName","getEstimatedFeatureCount","meta","estimatedFeatureCount","newSource","table_name","StyleBase","metadataParser","_checkStyle","_client","_style","_visible","_featureClickColumns","featureClickColumns","_featureOverColumns","featureOverColumns","_minzoom","minzoom","_maxzoom","maxzoom","_validateAggregationColumnsAndInteractivity","setStyle","prevStyle","_rejectAndTriggerError","getStyle","prevSource","setFeatureClickColumns","prevColumns","_areColumnsTheSame","_getInteractivityFields","getFeatureClickColumns","setFeatureOverColumns","getFeatureOverColumns","prevStatus","setOrder","bringToBack","bringToFront","rules","cartocss_meta","styleMetadataList","styles","_isStyleError","$setClient","newColumns","oldColumns","difference","aggregationColumns","clickColumns","overColumns","aggColumns","_validateColumnsConcordance","interactivityColumns","interactivity","notInAggregation","clickColumn","LeafletCartoLayerGroupView","LeafletLayer","addTo","removeFrom","getContainer","cursor","Layers","move","RequestTracker","maxNumberOfRequests","_maxNumberOfRequests","lastRequestEquals","lastResponseEquals","maxNumberOfRequestsReached","_lastRequest","_lastResponse","_numberOfRequests","canRequestBePerformed","LZMA","WindshaftConfig","validatePresenceOfOptions","requiredOptions","missingOptions","MAX_URL_LENGTH","COMPRESSION_LEVEL","MAP_INSTANTIATION_LIMIT","settings","endpoints","post","_requestTracker","_performRequest","parsedErrors","xhr","textStatus","ajaxOptions","mapDefinition","encodedURL","_generateEncodedURL","_isURLValid","_get","_generateCompressedURL","compressedURL","_getURL","_post","compress","compressedPayload","lzma","_abortPreviousRequest","_previousRequest","ajax","crossOrigin","dataType","contentType","jsonpCallback","_jsonpCallbackName","queryString","_convertParamsToQueryString","endpoint","oneValue","windshaftSettings","_layerGroupId","layergroupid","_dataviews","dataviews","_analyses","_cdnUrl","cdn_url","getLayerIndexesByType","_getLayers","layerIndexes","getBaseURL","_getHost","getStaticBaseURL","protocol","getProtocol","cdnUrl","cdnHost","templates","_isHttps","isHttps","getSupportedSubdomains","getLayerMetadata","layerMeta","getDataviewMetadata","dataviewId","_getDataviews","layersDataviews","widgets","layerDataviews","getAnalysisNodeMetadata","_getAnalyses","node","toHashCode","buffersize","mvt","_getStylesFromLayers","VALID_PROPS","VALID_MAPPINGS","isEveryBucketValid","generateCategories","bucketsColor","bucketsIcon","bucketColor","bucketIcon","icon","_extractURL","color","pattern","match","canAdapt","adapt","ruleColor","ruleIcon","categoryBucketsColor","categoryBucketsIcon","defaultBucketsColor","defaultBucketsIcon","default","generateColors","labelStart","labelEnd","label","lastBucket","firstBucket","first","calculateValues","sizes","ADAPTERS","getAdapterForLegend","helpers","RuleToLegendModelAdapters","getSubdomain","resource","_layerGroupModel","_updateLayerModels","_updateLayerGroupModel","_updateDataviewModels","_updateAnalysisModels","urls","_generateTileURLTemplate","_calculateGridURLTemplatesForCartoDBLayers","_calculateAttributesBaseURLsForCartoDBLayers","_calculateStaticMapURL","indexOfLayersInWindshaft","urlTemplates","indexesOfMapnikLayers","layerUrlTemplates","gridURLTemplate","_generateGridURLTemplate","subdomain","_generateAttributesBaseURL","baseURL","getCartoDBLayers","localLayerIndex","responseWrapperLayerIndex","_updateLegendModels","indexesOfTorqueLayers","getTorqueLayers","_calculateTileURLTemplatesForTorqueLayers","_generateTorqueTileURLTemplate","remoteLayerIndex","layerMetadata","_getLayerLegends","_updateLegendModel","cartoCSSRules","newLegendAttrs","adapter","rulesForLegend","dataviewModel","dataviewMetadata","_getProtocol","analysisNodesCollection","_getUniqueAnalysisNodesCollection","analysisMetadata","error_message","location","_setError","_setLegendErrors","legendModels","flatten","_assignIndexes","col","at","order","layersByType","lastOrder","sortedTypes","sort","_getLayersByType","getTiledLayers","getLayersWithLegends","moveCartoDBLayer","to","movingLayer","isAnyDataviewFiltered","iteratee","_getGroupedLayers","getIndexOfLayerInLayerGroup","getCartoLayerById","_areAllLayersHidden","_generatePNGTileURLTemplate","_generateMTVTileURLTemplate","mapnikLayersIndexes","_getIndexesOfVisibleMapnikLayers","_appendAuthParamsToURL","_getIndexesOfVisibleLayers","gridURLTemplates","getAttributesBaseURL","getStaticImageURLTemplate","staticImageURLTemplate","_appendParamsToURL","fetchAttributes","featureID","attributeBaseURL","separator","_isLayerGrouped","onLayerAdded","DEFAULT_CARTOCSS_VERSION","HTTP_LAYER_TYPE","MAPNIK_LAYER_TYPE","_calculateLayerJSON","optionsForHTTPLayer","optionsForPlainLayer","optionsForWMSLayer","optionsForMapnikLayer","optionsForTorqueLayer","tms","imageUrl","sharedOptionsForMapnikAndTorqueLayers","cartocss_version","sql_wrap","_generateUniqueAnalysisList","analysisIds","_isAnalysisPartOfOtherAnalyses","otherAnalysisModel","AnalisysSerializer","DataviewSerializer","LayerSerializer","BackbonePoller","_pollers","CONFIG","START_DELAY","MAX_DELAY","Infinity","DELAY_MULTIPLIER","analysisModels","_poll","_canBePolled","poller","_createPoller","_findPoller","pollerOptions","delay","condition","trackJs","messageRegex","generic","auth","windshaft","validation","ERROR_LIST","errorlist","_getErrorList","listedError","_getListedError","errorList","errorListkeys","RegExp","_replaceRegex","_buildErrorCode","replaced","fragments","LayerBase","getValidationError","DEFAULT_SERVER_URL","Client","_checkSettings","_bindEngine","addLayers","_addLayer","removeLayers","layersToRemove","_removeLayer","_moveLayer","getLayers","addDataviews","_addDataview","dataviewIndex","getDataviews","getLeafletLayer","_leafletLayer","getGoogleMapsMapType","_gmapsMapType","_checkDuplicatedLayerId","_checkLayerIndex","_checkApiKey","_checkUsername","_checkServerUrl","urlregex","carto"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,IAA8B;AACpC;AACA;AACA;AACA;AACA,GAAG,MAAM,EAEN;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA,KAAK;AACL;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,eAAe;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,qBAAqB;AACrB;;AAEA;AACA;AACA,KAAK;AACL,iBAAiB;;AAEjB;AACA,kDAAkD,EAAE,iBAAiB;;AAErE;AACA,wBAAwB,8BAA8B;AACtD,2BAA2B;;AAE3B;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,iBAAiB;;AAEnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAqB,EAAE,mCAAE;AAC7B;AACA,KAAK;AAAA,oGAAC;AACN;AACA,CAAC;;;;;;;AC3gDD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,CAAC,sBAAY,EAAE,uBAAQ,EAAE,OAAS,CAAC,mCAAE;AAChD;AACA;AACA;AACA,KAAK;AAAA,oGAAC;;AAEN;AACA,GAAG,MAAM,aAQN;;AAEH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,oEAAoE,MAAM;AAC1E;AACA;AACA;AACA,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB,EAAE;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,KAAK;AACL;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,KAAK;;AAEL;AACA,4DAA4D;AAC5D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,kFAAkF;AACvG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,kBAAkB;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA,8BAA8B,YAAY;AAC1C,sCAAsC;AACtC;AACA;;AAEA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,YAAY;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yEAAyE;AACzE,6EAA6E;AAC7E,iFAAiF;AACjF,6EAA6E;AAC7E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB;AACnB;;AAEA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,+CAA+C,YAAY,YAAY;AACvE,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,YAAY,YAAY;AAChE,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB;AACnB;;AAEA,0BAA0B,4BAA4B;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,WAAW;AAClD,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,8BAA8B,cAAc,eAAe;AAC3D,KAAK;;AAEL;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;;AAEA,GAAG;;AAEH;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;;AAEA;AACA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,uCAAuC,8BAA8B,EAAE;AACvE,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD,KAAK;;AAEL;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,aAAa;;AAExC;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,gBAAgB;AACvD,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,MAAM;AAC7C,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,SAAS,6BAA6B;AACtC;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA,KAAK;;AAEL;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,yCAAyC,cAAc;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,6BAA6B,iCAAiC;AAC9D,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA;A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APc;;AASfW,cAAY,oBAAUL,UAAV,EAAsB;AAChC,WAAOD,cAAcC,UAAd,EAA0BL,cAA1B,CAAP;AACD,GAXc;;AAafW,yBAAuB,+BAAUN,UAAV,EAAsB;AAC3C,WAAOD,cAAcC,UAAd,EAA0BJ,qBAA1B,CAAP;AACD,GAfc;;AAiBfW,kBAAgB,wBAAUP,UAAV,EAAsB;AACpC,WAAOD,cAAcC,UAAd,EAA0BH,kBAA1B,CAAP;AACD,GAnBc;;AAqBfW,iBAAe,uBAAUR,UAAV,EAAsB;AACnC,WAAOD,cAAcC,UAAd,EAA0BF,iBAA1B,CAAP;AACD;AAvBc,CAAjB,C;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;AAIA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,gCAAgC;AAChC;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,gBAAgB,aAAa,EAAE;AAC/B;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,yEAAyE;AAChF;;AAEA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD;AACjD,UAAU,wCAAwC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA,SAAS,GAAG;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB,uBAAuB,wBAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,gDAAgD;AAChD,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,wDAAwD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,qCAAqC;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,mCAAmC;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,2BAA2B;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,0BAA0B;AACnC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,QAAQ,SAAS,MAAM,aAAa,eAAe;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D,0BAA0B,cAAc,cAAc,OAAO;AAC7D,eAAe,YAAY,UAAU;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,SAAS,QAAQ,QAAQ;AACtD;AACA;AACA;AACA,qCAAqC,4BAA4B;AACjE,6BAA6B,cAAc,SAAS,SAAS;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kDAAkD;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B,+BAA+B,kBAAkB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA;;AAEA,GAAG;AACH;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,gDAAgD;AAChD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,sBAAsB;AACtB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH,EAAE;AACF;AACA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,MAAM;AACN,MAAM;AACN,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,kDAAkD;AAClD;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,UAAU,kBAAkB;AAC5B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB,4DAA4D,eAAe;AAC3E;AACA;AACA;;AAEA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD,eAAe,6DAA6D;AAC5E;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK,IAA0C;AAC/C,CAAC,iCAAkB,EAAE,mCAAE;AACvB;AACA,EAAE;AAAA,oGAAC;AACH;;;;;AAKA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;;AAEA,CAAC;;;;;;;;;;ACz/RD,IAAI7d,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIG,QAAQH,mBAAOA,CAAC,CAAR,CAAZ;AACA,IAAIye,2BAA2B,GAA/B;;AAEAzc,OAAOC,OAAP,GAAiB9B,MAAMC,MAAN,CAAa;AAC5BC,cAAY,oBAAUqe,UAAV,EAAsB;AAChC,SAAKC,OAAL,GAAe,EAAf;;AAEA,QAAID,UAAJ,EAAgB;AACd,WAAKE,WAAL,GAAmBF,UAAnB;AACA,WAAKG,SAAL,CAAe,KAAKD,WAAL,CAAiBE,SAAjB,EAAf;AACA,WAAKhR,UAAL;AACD;AACF,GAT2B;;AAW5BA,cAAY,sBAAY;AACtB,SAAK4G,QAAL,CAAc,KAAKkK,WAAnB,EAAgC,eAAhC,EAAiD3e,EAAE8e,QAAF,CAAW,KAAKC,cAAhB,EAAgCP,wBAAhC,CAAjD;AACD,GAb2B;;AAe5BQ,cAAY,sBAAY;AACtB,QAAI,KAAKL,WAAT,EAAsB;AACpB,WAAKtP,aAAL,CAAmB,KAAKsP,WAAxB,EAAqC,eAArC;AACD;AACF,GAnB2B;;AAqB5BI,kBAAgB,wBAAUE,MAAV,EAAkB;AAChC,SAAKL,SAAL,CAAeK,MAAf;AACD,GAvB2B;;AAyB5BL,aAAW,mBAAUK,MAAV,EAAkB;AAC3B,SAAKP,OAAL,GAAeO,MAAf;AACA,SAAKre,OAAL,CAAa,eAAb,EAA8Bqe,MAA9B;AACD,GA5B2B;;AA8B5BJ,aAAW,qBAAY;AACrB,WAAO,KAAKH,OAAZ;AACD,GAhC2B;;AAkC5BQ,sBAAoB,8BAAY;AAC9B,WAAOlf,EAAEmf,QAAF,CAAW,KAAKT,OAAL,CAAaU,IAAxB,CAAP;AACD,GApC2B;;AAsC5BC,aAAW,qBAAY;AACrB,WAAO,CACL,KAAKX,OAAL,CAAaU,IADR,EAEL,KAAKV,OAAL,CAAaY,KAFR,EAGL,KAAKZ,OAAL,CAAaa,IAHR,EAIL,KAAKb,OAAL,CAAac,KAJR,EAKL7X,IALK,CAKA,GALA,CAAP;AAMD,GA7C2B;;AA+C5B8X,SAAO,iBAAY;AACjB,SAAKT,UAAL;AACD;AAjD2B,CAAb,CAAjB,C;;;;;;;;;ACJA,IAAI/e,WAAWF,mBAAOA,CAAC,CAAR,CAAf;;AAEA;;;AAGAgC,OAAOC,OAAP,GAAiB,UAAU0d,MAAV,EAAkBpO,KAAlB,EAAyBjR,OAAzB,EAAkC;AACjD,MAAIM,OAAOmB,UAAU,CAAV,CAAX;;AAEA,MAAI,KAAK6d,IAAT,EAAe;AACb,SAAKA,IAAL,CAAUC,KAAV;AACD;AACD,OAAKD,IAAL,GAAY1f,SAAS4f,IAAT,CAAche,KAAd,CAAoB,IAApB,EAA0BC,SAA1B,CAAZ;AACA,OAAK6d,IAAL,CAAUG,MAAV,CAAiB,YAAY;AAC3Bnf,SAAKgf,IAAL,GAAY,IAAZ;AACD,GAFD;AAGA,SAAO,KAAKA,IAAZ;AACD,CAXD,C;;;;;;;;;ACLA,IAAI3f,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIG,QAAQH,mBAAOA,CAAC,CAAR,CAAZ;AACA,IAAIggB,oBAAoBhgB,mBAAOA,CAAC,EAAR,CAAxB;AACA,IAAIwN,gBAAgBxN,mBAAOA,CAAC,CAAR,CAApB;AACA,IAAIgH,OAAOhH,mBAAOA,CAAC,CAAR,CAAX;AACA,IAAIigB,uBAAuBjgB,mBAAOA,CAAC,EAAR,CAA3B;;AAEA,IAAIkgB,mBAAmB,WAAvB;AACA,IAAIC,kBAAkB,UAAtB;AACA,IAAIC,iBAAiB,SAArB;AACA,IAAIC,qBAAqB,OAAzB;;AAEA,IAAIC,6BAA6B,IAAjC,C,CAAuC;;AAEvC,IAAIrT,gBAAgB,CAClB,QADkB,CAApB;;AAIA;;;AAGAjL,OAAOC,OAAP,GAAiB9B,MAAMC,MAAN,CAAa;AAC5B6T,YAAU;AACRjG,SAAK,EADG;AAERnG,UAAM,EAFE;AAGR0Y,yBAAqB,IAHb;AAIRC,2BAAuB,IAJf;AAKRC,4BAAwB,IALhB;AAMRjM,aAAS,IAND;AAORhP,YAAQ0a;AAPA,GADkB;;AAW5BlS,OAAK,eAAY;AACf,QAAI0C,SAASzQ,EAAEygB,KAAF,CACX,CAAE,KAAKC,sBAAL,EAAF,CADW,EAEX,KAAKC,6BAAL,EAFW,CAAb;;AAKA,SAAKC,UAAL,CAAgBnQ,MAAhB;;AAEA,QAAIoQ,gBAAgB,KAAK7S,GAAL,CAAS,KAAT,IAAkB,GAAlB,GAAwByC,OAAO9I,IAAP,CAAY,GAAZ,CAA5C;;AAEA,QAAIkZ,cAAcvZ,MAAd,GAAuB+Y,0BAA3B,EAAuD;AACrD,YAAM,IAAItd,KAAJ,CACJ,wCAAwCsd,0BAAxC,GAAqE,WAArE,GACA,oFAFI,CAAN;AAID;AACD,WAAOQ,aAAP;AACD,GA5B2B;;AA8B5BD,cAAY,oBAAUnQ,MAAV,EAAkB;AAC5B,QAAI,KAAK9C,OAAL,CAAamT,SAAb,EAAJ,EAA8B;AAC5BrQ,aAAOlJ,IAAP,CAAY,aAAa,KAAKoG,OAAL,CAAamT,SAAb,EAAzB;AACD,KAFD,MAEO,IAAI,KAAKnT,OAAL,CAAaoT,YAAb,EAAJ,EAAiC;AACtC,UAAI9S,YAAY,KAAKN,OAAL,CAAaoT,YAAb,EAAhB;AACA,UAAI9S,qBAAqBC,KAAzB,EAAgC;AAC9BlO,UAAEoM,IAAF,CAAO6B,SAAP,EAAkB,UAAUI,KAAV,EAAiB;AACjCoC,iBAAOlJ,IAAP,CAAY,kBAAkB8G,KAA9B;AACD,SAFD;AAGD,OAJD,MAIO;AACLoC,eAAOlJ,IAAP,CAAY,gBAAgB0G,SAA5B;AACD;AACF;AACF,GA3C2B;;AA6C5ByS,0BAAwB,kCAAY;AAClC,QAAI,KAAKM,WAAT,EAAsB;AACpB,aAAO,KAAKC,0BAAL,EAAP;AACD;;AAED,QAAI,KAAKvN,aAAT,EAAwB;AACtB,aAAO,KAAKwN,qBAAL,EAAP;AACD;;AAED,QAAI,KAAKtN,cAAT,EAAyB;AACvB,aAAO,KAAKuN,sBAAL,EAAP;AACD;AACF,GAzD2B;;AA2D5BF,8BAA4B,sCAAY;AACtC,QAAIG,SAAS,EAAb;;AAEA,SAAKC,gBAAL;AACA,QAAI,KAAKC,yBAAL,EAAJ,EAAsC;AACpCF,eAAS,UAAU,KAAKJ,WAAL,CAAiB3B,SAAjB,EAAnB;AACD;;AAED,WAAO+B,MAAP;AACD,GApE2B;;AAsE5BF,yBAAuB,iCAAY;AACjC,QAAIE,SAAS,EAAb;;AAEA,SAAKG,kBAAL;AACA,QAAI,KAAKC,oBAAL,EAAJ,EAAiC;AAC/BJ,eAAS,YAAY,KAAK1N,aAAL,CAAmB2L,SAAnB,EAArB;AACD;;AAED,WAAO+B,MAAP;AACD,GA/E2B;;AAiF5BD,0BAAwB,kCAAY;AAClC,QAAIC,SAAS,EAAb;;AAEA,SAAKK,mBAAL;AACA,QAAI,KAAKC,qBAAL,EAAJ,EAAkC;AAChCN,eAAS,aAAa,KAAKxN,cAAL,CAAoByL,SAApB,EAAtB;AACD;;AAED,WAAO+B,MAAP;AACD,GA1F2B;;AA4F5B;;;;;AAKAT,iCAA+B,yCAAY;AACzC,WAAO,EAAP;AACD,GAnG2B;;AAqG5BvgB,cAAY,oBAAUoN,KAAV,EAAiBnL,IAAjB,EAAuB;AACjCmL,YAAQA,SAAS,EAAjB;AACAnL,WAAOA,QAAQ,EAAf;AACA0E,SAAKiF,iBAAL,CAAuB3J,IAAvB,EAA6B2K,aAA7B,EAA4C,mBAA5C;;AAEA,SAAK2U,SAAL,GAAiB,KAAjB;;AAEA,SAAKhU,OAAL,GAAetL,KAAKuL,MAApB;;AAEA,QAAI,CAACJ,MAAMtJ,MAAX,EAAmB,MAAM,IAAInB,KAAJ,CAAU,2BAAV,CAAN;AACnB,SAAK6e,qBAAL,CAA2B,KAAKpP,SAAL,EAA3B;AACA,SAAKA,SAAL,GAAiBnB,cAAjB,CAAgC,IAAhC;;AAEA,QAAI,CAAC7D,MAAMqU,EAAX,EAAe;AACb,WAAKpT,GAAL,CAAS,IAAT,EAAe,KAAKuF,QAAL,CAAc7R,IAAd,GAAqB,GAArB,GAA2B,KAAKoP,GAA/C;AACD;;AAED,SAAKsO,IAAL,GAAYE,kBAAkBxe,IAAlB,CAAuB,IAAvB,CAAZ;;AAEA;AACA,SAAK0R,MAAL,GAAc5Q,KAAK4Q,MAAnB;AACA,QAAI,KAAKA,MAAT,EAAiB;AACf,WAAKA,MAAL,CAAYxE,GAAZ,CAAgB,YAAhB,EAA8B,KAAKoT,EAAnC;AACD;;AAED,SAAKC,qBAAL,CAA2Bzf,IAA3B;;AAEA,SAAKwL,UAAL;AACD,GAjI2B;;AAmI5BiU,uBAnI4B,iCAmILzf,IAnIK,EAmIC;AAC3B,QAAIA,KAAK0T,UAAT,EAAqB;AACnB,WAAKC,aAAL,CAAmB3T,KAAK0T,UAAxB;AACD;;AAED,QAAI1T,KAAK8T,YAAT,EAAuB;AACrB,WAAKC,eAAL,CAAqB/T,KAAK8T,YAA1B;AACD;;AAED,QAAI9T,KAAKiU,aAAT,EAAwB;AACtB,WAAKC,gBAAL,CAAsBlU,KAAKiU,aAA3B;AACD;AACF,GA/I2B;;;AAiJ5BzI,cAAY,sBAAY;AACtB,SAAKkU,YAAL,CAAkB,IAAlB,EAAwB,YAAxB,EAAsC,YAAY;AAChD,WAAKV,gBAAL;AACA,UAAI,KAAKC,yBAAL,MAAoC,CAAC,KAAKN,WAAL,CAAiB9B,kBAAjB,EAAzC,EAAgF;AAC9E;AACA,aAAKzK,QAAL,CAAc,KAAKuM,WAAnB,EAAgC,eAAhC,EAAiD,KAAKgB,MAAtD;AACD,OAHD,MAGO;AACL,aAAKA,MAAL;AACD;AACF,KARD;;AAUA,QAAI,KAAK/O,MAAT,EAAiB;AACf,WAAKwB,QAAL,CAAc,KAAKxB,MAAnB,EAA2B,QAA3B,EAAqC,KAAKgP,gBAA1C;AACD;;AAED,SAAKzP,SAAL,GAAiBoH,EAAjB,CAAoB,eAApB,EAAqC,KAAKsI,uBAA1C,EAAmE,IAAnE;AACD,GAjK2B;;AAmK5BC,kBAAgB,0BAAY;AAC1B,SAAKvI,EAAL,CAAQ,4BAAR,EAAsC,YAAY;AAChD,WAAKwI,OAAL;AACD,KAFD,EAEG,IAFH;;AAIA,SAAKxI,EAAL,CAAQ,YAAR,EAAsB,UAAUtI,KAAV,EAAiB1B,KAAjB,EAAwBvN,IAAxB,EAA8B;AAClD,WAAKggB,iBAAL,GAAyB,IAAzB;AACA,UAAI,KAAKC,uBAAL,CAA6BjgB,QAAQrC,EAAEuQ,IAAF,CAAOlO,IAAP,EAAa,CAAC,YAAD,EAAe,UAAf,CAAb,CAArC,CAAJ,EAAoF;AAClF,aAAK+f,OAAL;AACD;AACF,KALD,EAKG,IALH;;AAOA,SAAKxI,EAAL,CAAQ,gBAAR,EAA0B,UAAU2I,GAAV,EAAejQ,SAAf,EAA0B;AAClD,UAAIA,aAAa,KAAK+P,iBAAtB,EAAyC;AACvC,aAAKD,OAAL;AACA,aAAKC,iBAAL,GAAyB,KAAzB;AACD;AACF,KALD,EAKG,IALH;AAMD,GArL2B;;AAuL5BG,uBAAqB,+BAAY;AAC/B,QAAI,KAAKC,+BAAL,EAAJ,EAA4C;AAC1C;AACA;AACA;AACA,WAAKT,MAAL;AACD;;AAED,QAAI,KAAKV,yBAAL,EAAJ,EAAsC;AACpC,WAAKe,iBAAL,GAAyB,IAAzB;AACD;AACF,GAlM2B;;AAoM5BK,oBAAkB,4BAAY;AAC5B,QAAI,KAAKC,0BAAL,EAAJ,EAAuC;AACrC,WAAKX,MAAL;AACD;;AAED,QAAI,KAAKR,oBAAL,EAAJ,EAAiC;AAC/B,WAAKa,iBAAL,GAAyB,IAAzB;AACD;AACF,GA5M2B;;AA8M5BO,qBAAmB,6BAAY;AAC7B,QAAI,KAAKC,2BAAL,EAAJ,EAAwC;AACtC,WAAKb,MAAL;AACD;;AAED,QAAI,KAAKN,qBAAL,EAAJ,EAAkC;AAChC,WAAKW,iBAAL,GAAyB,IAAzB;AACD;AACF,GAtN2B;;AAwN5BL,UAAQ,kBAAY;AAClB,SAAKvhB,KAAL,CAAW;AACTqiB,eAAS,YAAY;AACnB,YAAI,CAAC,KAAKnB,SAAV,EAAqB;AACnB,eAAKA,SAAL,GAAiB,IAAjB;AACA,eAAKQ,cAAL;AACD;AACF,OALQ,CAKP5gB,IALO,CAKF,IALE;AADA,KAAX;AAQD,GAjO2B;;AAmO5B2gB,2BAAyB,iCAAU/e,QAAV,EAAoBoC,MAApB,EAA4B;AACnD,QAAIpC,SAAS6M,SAAT,EAAJ,EAA0B;AACxB,WAAK+S,eAAL;AACD,KAFD,MAEO,IAAI5f,SAAS8M,QAAT,EAAJ,EAAyB;AAC9B,WAAK+S,mBAAL,CAAyB7f,SAAS6K,GAAT,CAAa,OAAb,CAAzB;AACD;AACD;AACD,GA1O2B;;AA4O5B+U,mBAAiB,2BAAY;AAC3B,SAAKniB,OAAL,CAAa,SAAb,EAAwB,IAAxB;AACD,GA9O2B;;AAgP5BoiB,uBAAqB,6BAAUrgB,KAAV,EAAiB;AACpC,SAAK/B,OAAL,CAAa,aAAb,EAA4B,IAA5B,EAAkC+B,KAAlC,EADoC,CACM;AAC3C,GAlP2B;;AAoP5B;;;AAGAsf,oBAAkB,0BAAUhP,MAAV,EAAkB;AAClC,SAAKtE,OAAL,CAAa;AACXxK,gBAAU,KAAK8e,WAAL;AADC,KAAb;AAGD,GA3P2B;;AA6P5BC,wBAAsB,gCAAY;AAChC,SAAKvU,OAAL,CAAa;AACXxK,gBAAU,KAAK8e,WAAL,EADC;AAEXE,kBAAY;AAFD,KAAb;AAID,GAlQ2B;;AAoQ5BxU,WAAS,iBAAUtM,IAAV,EAAgB;AACvBA,WAAOA,QAAQ,EAAf;AACA,SAAKsL,OAAL,CAAauB,MAAb,CAAoB7M,IAApB;AACD,GAvQ2B;;AAyQ5BigB,2BAAyB,iCAAUjiB,OAAV,EAAmB;AAC1CA,cAAUA,WAAW,EAArB;AACA,QAAI8D,WAAW9D,QAAQ8D,QAAvB;AACA,QAAIgf,aAAa9iB,QAAQ8iB,UAAzB;;AAEA,QAAIA,UAAJ,EAAgB;AACd,aAAO,IAAP;AACD;;AAED,WAAO,KAAK7Q,SAAL,MACL,KAAK8Q,yBAAL,CAA+Bjf,QAA/B,CADF;AAED,GApR2B;;AAsR5Bif,6BAA2B,mCAAUjf,QAAV,EAAoB;AAC7C,QAAI,CAACA,QAAL,EAAe;AACb,aAAO,IAAP;AACD;AACD,QAAIkf,iBAAiB,KAAK7Q,SAAL,EAArB;AACA,WAAO6Q,kBAAkBA,eAAe/T,gBAAf,CAAgCnL,QAAhC,CAAzB;AACD,GA5R2B;;AA8R5Bse,mCAAiC,2CAAY;AAC3C,WAAO,KAAKnQ,SAAL,MACL,KAAKgP,yBAAL,EADF;AAED,GAjS2B;;AAmS5BqB,8BAA4B,sCAAY;AACtC,WAAO,KAAKrQ,SAAL,MACL,KAAKkP,oBAAL,EADF;AAED,GAtS2B;;AAwS5BqB,+BAA6B,uCAAY;AACvC,WAAO,KAAKvQ,SAAL,MACL,KAAKoP,qBAAL,EADF;AAED,GA3S2B;;AA6S5BU,WAAS,mBAAY;AACnB,SAAK3hB,KAAL;AACD,GA/S2B;;AAiT5BuV,iBAAe,uBAAUD,UAAV,EAAsB;AACnC,QAAI,CAACA,UAAL,EAAiB;AACf;AACD;AACD,SAAKuN,yBAAL;AACA,SAAKtC,WAAL,GAAmBjL,UAAnB;AACA,SAAKwN,oBAAL;AACD,GAxT2B;;AA0T5BrN,oBAAkB,4BAAY;AAC5B,SAAKoN,yBAAL;AACA,SAAKtC,WAAL,GAAmB,IAAnB;AACD,GA7T2B;;AA+T5B5K,mBAAiB,yBAAUD,YAAV,EAAwB;AACvC,QAAI,CAACA,YAAL,EAAmB;AACjB;AACD;AACD,SAAKqN,2BAAL;AACA,SAAK9P,aAAL,GAAqByC,YAArB;AACA,SAAKsN,sBAAL;AACD,GAtU2B;;AAwU5BpN,sBAAoB,8BAAY;AAC9B,SAAKmN,2BAAL;AACA,SAAK9P,aAAL,GAAqB,IAArB;AACD,GA3U2B;;AA6U5B6C,oBAAkB,0BAAUD,aAAV,EAAyB;AACzC,QAAI,CAACA,aAAL,EAAoB;AAClB;AACD;AACD,SAAKoN,4BAAL;AACA,SAAK9P,cAAL,GAAsB0C,aAAtB;AACA,SAAKqN,uBAAL;AACD,GApV2B;;AAsV5BnN,uBAAqB,+BAAY;AAC/B,SAAKkN,4BAAL;AACA,SAAK9P,cAAL,GAAsB,IAAtB;AACD,GAzV2B;;AA2V5B0H,UAAQ,gBAAU9N,KAAV,EAAiB;AACvB,QAAIxN,EAAE4jB,GAAF,CAAMpW,KAAN,EAAa,QAAb,CAAJ,EAA4B;AAC1B,YAAM,IAAIzK,KAAJ,CAAU,uCAAV,CAAN;AACD;AACDyK,YAAQxN,EAAEuQ,IAAF,CAAO/C,KAAP,EAAc,KAAKkN,WAAL,CAAiBmJ,WAA/B,CAAR;;AAEA,SAAKpV,GAAL,CAASjB,KAAT;AACD,GAlW2B;;AAoW5BqG,WAAS,mBAAY;AACnB,WAAO,KAAK7F,GAAL,CAAS,MAAT,CAAP;AACD,GAtW2B;;AAwW5B8V,mBAAiB,2BAAY;AAC3B,WAAO,KAAK7U,QAAL,CAAc,MAAd,CAAP;AACD,GA1W2B;;AA4W5BxO,SAAO,eAAU4B,IAAV,EAAgB;AACrBA,WAAOA,QAAQ,EAAf;AACA,SAAKoM,GAAL,CAAS,QAAT,EAAmByR,eAAnB;;AAEA,SAAK6C,eAAL;;AAEA,QAAI1gB,KAAKygB,OAAT,EAAkB;AAChB,UAAIiB,kBAAkB1hB,QAAQA,KAAKygB,OAAnC;AACD;;AAED,WAAO5iB,MAAMK,SAAN,CAAgBE,KAAhB,CAAsBD,IAAtB,CAA2B,IAA3B,EAAiCR,EAAEG,MAAF,CAASkC,IAAT,EAAe;AACrDygB,eAAS,YAAY;AACnB,aAAKrU,GAAL,CAAS,QAAT,EAAmB0R,cAAnB;AACA4D,2BAAmBA,gBAAgBjiB,SAAhB,CAAnB;AACA,aAAKlB,OAAL,CAAa,QAAb,EAAuB,IAAvB;AACD,OAJQ,CAIPW,IAJO,CAIF,IAJE,CAD4C;AAMrDoB,aAAO,UAAUqhB,MAAV,EAAkBC,QAAlB,EAA4B;AACjC,YAAI,CAACA,QAAD,IAAcA,YAAYA,SAAS1f,UAAT,KAAwB,OAAtD,EAAgE;AAC9D,eAAKkK,GAAL,CAAS,QAAT,EAAmB2R,kBAAnB;AACA,cAAI,KAAK8D,0BAAL,CAAgCF,MAAhC,CAAJ,EAA6C;AAC3CC,qBAAS1f,UAAT,GAAsB,oCACpB,0EADF;AAED;AACD,cAAI5B,QAAQ,KAAKwhB,WAAL,CAAiBF,QAAjB,CAAZ;AACA,eAAKjB,mBAAL,CAAyBrgB,KAAzB;AACD;AACF,OAVM,CAULpB,IAVK,CAUA,IAVA;AAN8C,KAAf,CAAjC,CAAP;AAkBD,GAxY2B;;AA0Y5B2iB,8BAA4B,oCAAU5S,KAAV,EAAiB;AAC3C,QAAI8S,qBAAqB9S,SAASA,MAAMd,UAAf,IAA6Bc,MAAMd,UAAN,CAAiBgQ,sBAAvE;AACA,QAAI4D,sBAAsB,KAAKrW,GAAL,GAAWzG,MAAX,GAAoB+Y,0BAA9C,EAA0E;AACxE,aAAO,IAAP;AACD;AACD,WAAO,KAAP;AACD,GAhZ2B;;AAkZ5BhQ,UAAQ,kBAAY;AAClB,UAAM,IAAItN,KAAJ,CAAU,4CAAV,CAAN;AACD,GApZ2B;;AAsZ5BshB,iBAAe,yBAAY;AACzB,WAAO,KAAK7R,SAAL,GAAiBxE,GAAjB,CAAqB,MAArB,CAAP;AACD,GAxZ2B;;AA0Z5BiV,eAAa,uBAAY;AACvB,QAAI/e,SAAS,KAAKsO,SAAL,EAAb;AACA,WAAOtO,UAAUA,OAAO2d,EAAxB;AACD,GA7Z2B;;AA+Z5BrP,aAAW,qBAAY;AACrB,WAAO,KAAKxE,GAAL,CAAS,QAAT,CAAP;AACD,GAja2B;;AAma5BsW,gBAAc,wBAAY;AACxB,WAAO,KAAKD,aAAL,OAAyB,QAAhC;AACD,GAra2B;;AAua5BE,cAAY,sBAAY;AACtB,QAAIA,aAAa,KAAjB;AACA,QAAI,KAAKtR,MAAT,EAAiB;AACfsR,mBAAa,CAAC,KAAKtR,MAAL,CAAYoB,OAAZ,EAAd;AACD;AACD,WAAOkQ,UAAP;AACD,GA7a2B;;AA+a5BnV,UAAQ,kBAAY;AAClB,SAAKoV,+BAAL;AACA,SAAKhS,SAAL,GAAiBd,gBAAjB,CAAkC,IAAlC;AACA,SAAK9Q,OAAL,CAAa,SAAb,EAAwB,IAAxB;AACA,SAAKyO,aAAL;AACD,GApb2B;;AAsb5BmV,mCAAiC,2CAAY;AAC3C,SAAKhS,SAAL,GAAiBiS,GAAjB,CAAqB,eAArB,EAAsC,KAAKvC,uBAA3C,EAAoE,IAApE;AACD,GAxb2B;;AA0b5BwC,aAAW,qBAAY;AACrB,WAAO,KAAK1W,GAAL,CAAS,QAAT,MAAuBmS,cAA9B;AACD,GA5b2B;;AA8b5BwE,iBAAe,yBAAY;AACzB,WAAO,KAAK3W,GAAL,CAAS,QAAT,MAAuBoS,kBAA9B;AACD,GAhc2B;;AAkc5B9N,aAAW,qBAAY;AACrB,WAAO,KAAKtE,GAAL,CAAS,SAAT,CAAP;AACD,GApc2B;;AAsc5B4W,kBAAgB,0BAAY;AAC1B,WAAO,KAAKnW,GAAL,CAAS,QAAT,EAAmB2R,kBAAnB,CAAP;AACD,GAxc2B;;AA0c5BkB,6BAA2B,qCAAY;AACrC,WAAO,KAAKtT,GAAL,CAAS,qBAAT,CAAP;AACD,GA5c2B;;AA8c5BwT,wBAAsB,gCAAY;AAChC,WAAO,KAAKxT,GAAL,CAAS,uBAAT,CAAP;AACD,GAhd2B;;AAkd5B0T,yBAAuB,iCAAY;AACjC,WAAO,KAAK1T,GAAL,CAAS,wBAAT,CAAP;AACD,GApd2B;;AAsd5B4T,yBAAuB,+BAAU1d,MAAV,EAAkB;AACvC,QAAI,EAAEA,kBAAkBqJ,aAApB,CAAJ,EAAwC;AACtC,YAAM,IAAIxK,KAAJ,CAAU,6CAAV,CAAN;AACD;AACF,GA1d2B;;AA4d5Bse,oBAAkB,4BAAY;AAC5B,QAAI,KAAKC,yBAAL,MAAoC,CAAC,KAAKN,WAA9C,EAA2D;AACzD,YAAM,IAAIje,KAAJ,CAAU,uEAAV,CAAN;AACD;AACF,GAhe2B;;AAke5Bwe,sBAAoB,8BAAY;AAC9B,QAAI,KAAKC,oBAAL,MAA+B,CAAC,KAAK9N,aAAzC,EAAwD;AACtD,YAAM,IAAI3Q,KAAJ,CAAU,kEAAV,CAAN;AACD;AACF,GAte2B;;AAwe5B0e,uBAAqB,+BAAY;AAC/B,QAAI,KAAKC,qBAAL,MAAgC,CAAC,KAAK9N,cAA1C,EAA0D;AACxD,YAAM,IAAI7Q,KAAJ,CAAU,oEAAV,CAAN;AACD;AACF,GA5e2B;;AA8e5BwgB,wBAAsB,gCAAY;AAChC,QAAI,KAAKvC,WAAT,EAAsB;AACpB,WAAKvM,QAAL,CAAc,KAAKuM,WAAnB,EAAgC,eAAhC,EAAiD,KAAKwB,mBAAtD;AACD;AACF,GAlf2B;;AAof5Bc,6BAA2B,qCAAY;AACrC,QAAI,KAAKtC,WAAT,EAAsB;AACpB,WAAK3R,aAAL,CAAmB,KAAK2R,WAAxB,EAAqC,eAArC;AACD;AACF,GAxf2B;;AA0f5ByC,0BAAwB,kCAAY;AAClC,QAAI,KAAK/P,aAAT,EAAwB;AACtB,WAAKe,QAAL,CAAc,KAAKf,aAAnB,EAAkC,eAAlC,EAAmD,KAAKgP,gBAAxD;AACD;AACF,GA9f2B;;AAggB5Bc,+BAA6B,uCAAY;AACvC,QAAI,KAAK9P,aAAT,EAAwB;AACtB,WAAKrE,aAAL,CAAmB,KAAKqE,aAAxB,EAAuC,eAAvC;AACD;AACF,GApgB2B;;AAsgB5BiQ,2BAAyB,mCAAY;AACnC,QAAI,KAAK/P,cAAT,EAAyB;AACvB,WAAKa,QAAL,CAAc,KAAKb,cAAnB,EAAmC,gBAAnC,EAAqD,KAAKgP,iBAA1D;AACD;AACF,GA1gB2B;;AA4gB5Bc,gCAA8B,wCAAY;AACxC,QAAI,KAAK9P,cAAT,EAAyB;AACvB,WAAKvE,aAAL,CAAmB,KAAKuE,cAAxB,EAAwC,gBAAxC;AACD;AACF,GAhhB2B;;AAkhB5BuQ,eAAa,qBAAUF,QAAV,EAAoB;AAC/B,QAAIthB,QAAQ,EAAZ;AACA,QAAIiC,SAASob,qBAAqBiE,QAArB,EAA+B,UAA/B,CAAb;AACA,QAAIrf,OAAO0C,MAAP,GAAgB,CAApB,EAAuB;AACrB3E,cAAQiC,OAAO,CAAP,CAAR;AACD;AACD,WAAOjC,KAAP;AACD;AAzhB2B,CAAb;;AA4hBjB;AACA;AACEkhB,eAAa,CACX,IADW,EAEX,qBAFW,EAGX,uBAHW,EAIX,wBAJW,EAKX,SALW,EAMX,QANW;AADf,CA7hBiB,CAAjB,C;;;;;;;;;;;;;;;;;ACrBA,IAAM7jB,IAAID,mBAAOA,CAAC,CAAR,CAAV;AACA,IAAM4G,OAAO5G,mBAAOA,CAAC,CAAR,CAAb;AACA,IAAM8W,UAAU9W,mBAAOA,CAAC,EAAR,CAAhB;;AAEA,IAAM6W,wBAAwB,KAA9B;;AAEA;;;;;;;;;;;;;;IAaMwC,iB;;;AACJ,6BAAajC,OAAb,EAAsB;AAAA;;AAAA;;AAEpB,UAAKpD,WAAL,CAAiBoD,OAAjB;AAFoB;AAGrB;;;;gCAEYA,O,EAAS;AAAA;;AACpB,WAAKL,QAAL,GAAgB,EAAhB;;AAEA,UAAIK,WAAWA,QAAQ7P,MAAvB,EAA+B;AAC7B6P,gBAAQ/I,GAAR,CAAY;AAAA,iBAAU,OAAK4E,SAAL,CAAeC,MAAf,CAAV;AAAA,SAAZ;AACD;AACF;;AAED;;;;;;;;;;8BAOWA,M,EAAQ;AAAA;;AACjB,UAAI,EAAEA,kBAAkB4D,OAApB,KAAgC,EAAE5D,kBAAkBmG,iBAApB,CAApC,EAA4E;AAC1E,cAAM,KAAKvS,mBAAL,CAAyB,iBAAzB,CAAN;AACD;;AAED,UAAI7G,EAAEsF,QAAF,CAAW,KAAKwR,QAAhB,EAA0B7D,MAA1B,CAAJ,EAAuC;;AAEvC,WAAKwB,QAAL,CAAcxB,MAAd,EAAsB,gBAAtB,EAAwC;AAAA,eAAW,OAAK4R,oBAAL,CAA0B1N,OAA1B,CAAX;AAAA,OAAxC;AACA,WAAKL,QAAL,CAAcvP,IAAd,CAAmB0L,MAAnB;AACA,WAAK4R,oBAAL;AACD;;AAED;;;;;;;;;;;iCAQc5R,M,EAAQ;AACpB,UAAM6R,cAAc9kB,EAAEoK,OAAF,CAAU,KAAK0M,QAAf,EAAyB7D,MAAzB,CAApB;AACA,UAAI6R,gBAAgB,CAAC,CAArB,EAAwB;;AAExB,UAAMC,iBAAiB,KAAKjO,QAAL,CAAckO,MAAd,CAAqBF,WAArB,EAAkC,CAAlC,EAAqC,CAArC,CAAvB;AACAC,qBAAeN,GAAf,CAAmB,gBAAnB,EAAqC,IAArC,EAA2C,IAA3C;;AAEA,WAAKI,oBAAL;AACA,aAAOE,cAAP;AACD;;AAED;;;;;;;;;;4BAOS;AACP,aAAO,KAAKjO,QAAL,CAAcxP,MAArB;AACD;;AAED;;;;;;;;;;iCAOc;AACZ,aAAO,KAAKwP,QAAZ;AACD;;;8BAEU;AACT,UAAMmO,aAAa,KAAKnO,QAAL,CAAc1I,GAAd,CAAkB;AAAA,eAAU6E,OAAOiS,OAAP,EAAV;AAAA,OAAlB,EAChBjS,MADgB,CACT;AAAA,eAAauE,QAAQuB,SAAR,CAAb;AAAA,OADS,CAAnB;;AAGA,UAAMoM,gBAAgBF,WAAWtd,IAAX,QAAoB,KAAKyd,aAAL,IAAsBxO,qBAA1C,QAAtB;;AAEA,UAAIqO,WAAW3d,MAAX,GAAoB,CAAxB,EAA2B;AACzB,qBAAW6d,aAAX;AACD;;AAED,aAAOA,aAAP;AACD;;;yCAEqBhO,O,EAAS;AAC7B,WAAKvW,OAAL,CAAa,gBAAb,EAA+BuW,OAA/B;AACD;;;;EAzF6BxQ,I;;AA4FhC5E,OAAOC,OAAP,GAAiBoX,iBAAjB,C;;;;;;;;;AC/GA,IAAIpZ,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIqa,kBAAkBra,mBAAOA,CAAC,EAAR,CAAtB;;AAEA,IAAIslB,wBAAwBjL,gBAAgBja,MAAhB,CAAuB;AACjD6T,YAAU,oBAAY;AACpB,WAAOhU,EAAEG,MAAF,CAASia,gBAAgB7Z,SAAhB,CAA0ByT,QAA1B,CAAmCnS,KAAnC,CAAyC,IAAzC,CAAT,EAAyD;AAC9D4Y,aAAOL,gBAAgBc;AADuC,KAAzD,CAAP;AAGD,GALgD;;AAOjDJ,0BAAwB,kCAAY,CAAE,CAPW;;AASjDY,eAAa,uBAAY;AAAE,WAAO,IAAP;AAAc;AATQ,CAAvB,CAA5B;;AAYA3Z,OAAOC,OAAP,GAAiBqjB,qBAAjB,C;;;;;;;;;ACfA,IAAIC,QAAQvlB,mBAAOA,CAAC,GAAR,CAAZ;AACA,IAAIwlB,aAAaxlB,mBAAOA,CAAC,EAAR,CAAjB;AACA,IAAIylB,cAAczlB,mBAAOA,CAAC,EAAR,CAAlB;;AAEA;;;;AAIAgC,OAAOC,OAAP,GAAiB;AACfwjB,eAAaA,WADE;AAEfF,SAAOA,KAFQ;AAGfG,UAAQF;AAHO,CAAjB;;AAMA;;;;;;;;;;;;ACdAxjB,OAAOC,OAAP,GAAiB;AACf0jB,iBAAe;AACbhf,iBAAa,aADA;AAEbif,YAAQ,QAFK;AAGbC,YAAQ,QAHK;AAIbC,WAAO,OAJM;AAKbC,YAAQ,QALK;AAMbC,UAAM,MANO;AAObC,YAAQ,QAPK;AAQbC,UAAM;AARO,GADA;;AAYfC,sBAAoB;AAClBC,WAAO,YADW;AAElBC,aAAS;AAFS,GAZL;;AAiBfC,0BAAwB,CAAC,SAAD,EAAY,cAAZ,EAA4B,cAA5B,EAA4C,QAA5C,EAAsD,WAAtD,EAAmE,SAAnE,CAjBT;;AAmBfC,oBAAkB;AAChBC,cAAU,UADM;AAEhBC,WAAO,OAFS;AAGhBC,WAAO,OAHS;AAIhBC,UAAM,MAJU,EAIF;AACdC,aAAS,SALO;AAMhBC,aAAS;AANO;AAnBH,CAAjB,C;;;;;;;;;ACAA,IAAI5mB,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAI8mB,iBAAiB9mB,mBAAOA,CAAC,EAAR,CAArB;;AAEA,IAAIigB,uBAAuB,SAAvBA,oBAAuB,CAAUiE,QAAV,EAAoB9hB,IAApB,EAA0B;AACnD8hB,aAAWA,YAAY,EAAvB;AACA,MAAIA,SAAS6C,YAAb,EAA2B;AACzB7C,eAAWA,SAAS6C,YAApB;AACD;AACD,MAAI7C,SAAS8C,mBAAb,EAAkC;AAChC,WAAO/mB,EAAEoO,GAAF,CAAM6V,SAAS8C,mBAAf,EAAoC,UAAUpkB,KAAV,EAAiB;AAC1D,aAAO,IAAIkkB,cAAJ,CAAmBlkB,KAAnB,EAA0BR,IAA1B,CAAP;AACD,KAFM,CAAP;AAGD;AACD,MAAI8hB,SAASrf,MAAb,EAAqB;AACnB,QAAIoiB,UAAU,OAAO/C,SAASrf,MAAT,CAAgB,CAAhB,CAAP,KAA8B,QAA9B,GACV,EAAExC,SAAS6hB,SAASrf,MAAT,CAAgB,CAAhB,CAAX,EADU,GAEVqf,SAASrf,MAAT,CAAgB,CAAhB,CAFJ;;AAIA,WAAO,CACL,IAAIiiB,cAAJ,CAAmBG,OAAnB,EAA4B7kB,IAA5B,CADK,CAAP;AAGD;AACD,MAAI8hB,SAAS1f,UAAb,EAAyB;AACvB,WAAO,CACL,IAAIsiB,cAAJ,CAAmB,EAAEzkB,SAAS6hB,SAAS1f,UAApB,EAAnB,EAAqDpC,IAArD,EAA2D,MAA3D,CADK,CAAP;AAGD;AACD,SAAO,EAAP;AACD,CAzBD;;AA2BAJ,OAAOC,OAAP,GAAiBge,oBAAjB,C;;;;;;;;;;;;;;;AC9BA,IAAIiH,MAAMlnB,mBAAOA,CAAC,GAAR,CAAV;;AAEAgC,OAAOC,OAAP,GAAiB;AACfW,SAAO,iBAAY;AACjBukB,YAAQvkB,KAAR,CAAcd,KAAd,CAAoBqlB,OAApB,EAA6BplB,SAA7B;AACD,GAHc;;AAKfqlB,OAAK,eAAY;AACfD,YAAQC,GAAR,CAAYtlB,KAAZ,CAAkBqlB,OAAlB,EAA2BplB,SAA3B;AACD,GAPc;;AASfslB,QAAM,gBAAY;AAChBF,YAAQC,GAAR,CAAYtlB,KAAZ,CAAkBqlB,OAAlB,EAA2BplB,SAA3B;AACD,GAXc;;AAafulB,SAAO,iBAAY;AACjB,QAAIJ,IAAIK,KAAR,EAAeJ,QAAQC,GAAR,CAAYtlB,KAAZ,CAAkBqlB,OAAlB,EAA2BplB,SAA3B;AAChB;AAfc,CAAjB,C;;;;;;;;;ACFA,IAAI4L,oBAAoB3N,mBAAOA,CAAC,GAAR,EAA8BwnB,UAA9B,CAAyC,QAAzC,CAAxB;AACA,IAAIC,cAAc;AAChBC,QAAM,MADU;AAEhBC,UAAQ,QAFQ;AAGhBC,UAAQ,QAHQ;AAIhBC,QAAM;AAJU,CAAlB;;AAOA,IAAIC,uBAAuB,QAA3B;AACA,IAAIC,0CAA0C,EAA9C;AACAA,wCAAwCD,oBAAxC,IAAgE,EAAhE;AACA,IAAIE,mCAAmC,EAAvC;;AAEA,IAAIC,oBAAoBta,kBAAkBua,QAA1C;AACA,IAAI,CAACD,iBAAL,EAAwB;AACtB,QAAM,IAAIjlB,KAAJ,CAAU,mDAAV,CAAN;AACD;;AAED;AACA,KAAK,IAAImlB,YAAT,IAAyBF,iBAAzB,EAA4C;AAC1C,MAAIG,iBAAiBH,kBAAkBE,YAAlB,EAAgCzX,MAArD;AACA,OAAK,IAAI5B,SAAT,IAAsBsZ,cAAtB,EAAsC;AACpCJ,qCAAiCG,YAAjC,IAAiDH,iCAAiCG,YAAjC,KAAkD,EAAnG;AACAH,qCAAiCG,YAAjC,EAA+C3gB,IAA/C,CAAoDsH,SAApD;AACAiZ,4CAAwCI,YAAxC,IAAwDJ,wCAAwCI,YAAxC,KAAyD,EAAjH;AACA,QAAIE,YAAYD,eAAetZ,SAAf,EAA0B1M,IAA1C;AACA,QAAIimB,cAAcZ,YAAYC,IAA9B,EAAoC;AAClCK,8CAAwCI,YAAxC,EAAsD3gB,IAAtD,CAA2DsH,SAA3D;AACD;AACF;AACF;;AAED9M,OAAOC,OAAP,GAAiB;AACf6N,iCAA+B,uCAAUqY,YAAV,EAAwB;AACrD,QAAIxX,cAAcoX,wCAAwCI,YAAxC,CAAlB;AACA,QAAI,CAACxX,WAAL,EAAkB;AAChB,YAAM,IAAI3N,KAAJ,CAAU,uCAAuCmlB,YAAvC,GAAsD,oBAAhE,CAAN;AACD;;AAED,WAAOxX,WAAP;AACD,GARc;;AAUfE,gCAA8B,sCAAUsX,YAAV,EAAwB;AACpD,QAAIG,aAAaN,iCAAiCG,YAAjC,CAAjB;AACA,QAAI,CAACG,UAAL,EAAiB;AACf,YAAM,IAAItlB,KAAJ,CAAU,sCAAsCmlB,YAAtC,GAAqD,oBAA/D,CAAN;AACD;;AAED,WAAOG,UAAP;AACD;AAjBc,CAAjB,C;;;;;;;;;AChCA,IAAIroB,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIE,WAAWF,mBAAOA,CAAC,CAAR,CAAf;AACA,IAAIuoB,WAAWvoB,mBAAOA,CAAC,CAAR,CAAf;AACA,IAAI2N,oBAAoB3N,mBAAOA,CAAC,EAAR,CAAxB;AACA,IAAIwoB,aAAaxoB,mBAAOA,CAAC,EAAR,CAAjB;;AAEA,IAAIyoB,kBAAkB,SAAlBA,eAAkB,CAAUnmB,IAAV,EAAgB;AACpCA,SAAOA,QAAQ,EAAf;AACA,MAAI,CAACA,KAAKuL,MAAV,EAAkB;AAChB,UAAM,IAAI7K,KAAJ,CAAU,oBAAV,CAAN;AACD;;AAED,OAAK4K,OAAL,GAAetL,KAAKuL,MAApB;AACA,OAAK6a,OAAL,GAAepmB,KAAKqmB,MAApB;AACA,OAAKC,UAAL,GAAkBtmB,KAAK4L,SAAvB;AACA,OAAKR,kBAAL,GAA0BpL,KAAKqL,iBAAL,IAA0BA,iBAApD,CAToC,CASmC;;AAEvE,OAAKkb,cAAL,GAAsB,IAAI3oB,SAASiR,UAAb,EAAtB;AACD,CAZD;;AAcA;;;;;;AAMAsX,gBAAgBjoB,SAAhB,CAA0BsoB,OAA1B,GAAoC,UAAUC,kBAAV,EAA8B;AAChEA,uBAAqB9oB,EAAE+oB,KAAF,CAAQD,kBAAR,CAArB;AACA,MAAI3lB,WAAW,KAAK6lB,YAAL,CAAkBF,mBAAmBjH,EAArC,CAAf;AACA,MAAIoH,gBAAgB,KAAKC,4CAAL,CAAkDJ,kBAAlD,CAApB;;AAEA,MAAI3lB,QAAJ,EAAc;AACZA,aAASsL,GAAT,CAAawa,aAAb;AACD,GAFD,MAEO;AACL,QAAI,KAAKR,OAAT,EAAkB;AAChBQ,oBAAcP,MAAd,GAAuB,KAAKD,OAA5B;AACD;AACD,QAAI,KAAKE,UAAT,EAAqB;AACnBM,oBAAchb,SAAd,GAA0B,KAAK0a,UAA/B;AACD;AACDxlB,eAAW,IAAImlB,QAAJ,CAAaW,aAAb,EAA4B;AACrCvb,yBAAmB,KAAKD,kBADa;AAErCG,cAAQ,KAAKD;AAFwB,KAA5B,CAAX;;AAKA,SAAKib,cAAL,CAAoBO,GAApB,CAAwBhmB,QAAxB;AACAA,aAAS5B,IAAT,CAAc,SAAd,EAAyB,KAAK6nB,kBAA9B,EAAkD,IAAlD;AACD;;AAED,SAAOjmB,QAAP;AACD,CAxBD;;AA0BA;;;;;;;AAOAqlB,gBAAgBjoB,SAAhB,CAA0B2oB,4CAA1B,GAAyE,UAAUJ,kBAAV,EAA8B;AACrG,MAAIO,gBAAgB,EAApB;AACA,MAAInB,eAAeY,mBAAmB3mB,IAAtC;AACA,MAAImnB,6BAA6B,KAAK7b,kBAAL,CAAwBoC,6BAAxB,CAAsDqY,YAAtD,CAAjC;AACAloB,IAAEoM,IAAF,CAAOkd,0BAAP,EAAmC,UAAU5Z,UAAV,EAAsB;AACvD,QAAI6Z,eAAeT,mBAAmBrY,MAAnB,CAA0Bf,UAA1B,CAAnB;AACA,QAAI6Z,YAAJ,EAAkB;AAChBF,oBAAc3Z,UAAd,IAA4B,KAAKmZ,OAAL,CAAaU,YAAb,CAA5B;AACD;AACF,GALD,EAKG,IALH;;AAOA,SAAOvpB,EAAEyb,IAAF,CAAOzb,EAAEG,MAAF,CAAS2oB,kBAAT,EAA6BA,mBAAmBrY,MAAhD,EAAwD4Y,aAAxD,CAAP,EAA+E,QAA/E,CAAP;AACD,CAZD;;AAcA;;;;;AAKAb,gBAAgBjoB,SAAhB,CAA0BipB,sBAA1B,GAAmD,UAAUvlB,OAAV,EAAmBwlB,UAAnB,EAA+B;AAChF,SAAO,KAAKZ,OAAL,CAAa;AAClBhH,QAAI5d,OADc;AAElB9B,UAAM,QAFY;AAGlBsO,YAAQ;AACNiZ,aAAOD;AADD;AAHU,GAAb,CAAP;AAOD,CARD;;AAUAjB,gBAAgBjoB,SAAhB,CAA0ByoB,YAA1B,GAAyC,UAAUnH,EAAV,EAAc;AACrD,SAAO,KAAK+G,cAAL,CAAoB5a,GAApB,CAAwB6T,EAAxB,CAAP;AACD,CAFD;;AAIA2G,gBAAgBjoB,SAAhB,CAA0B6oB,kBAA1B,GAA+C,UAAUjmB,QAAV,EAAoB;AACjE,OAAKylB,cAAL,CAAoBxZ,MAApB,CAA2BjM,QAA3B;AACAA,WAASuL,MAAT,CAAgB,SAAhB,EAA2B,KAAK0a,kBAAhC;AACD,CAHD;;AAKA;;;;;;;AAOAZ,gBAAgBmB,sBAAhB,GAAyC,UAAUC,gBAAV,EAA4BC,mBAA5B,EAAiD;AACxF,MAAIC,sBAAsB,EAA1B;AACA,MAAIC,eAAevB,gBAAgBwB,eAAhB,CAAgCJ,gBAAhC,EAAkDC,mBAAlD,CAAnB;AACA7pB,IAAEoM,IAAF,CAAO2d,YAAP,EAAqB,UAAU5mB,QAAV,EAAoB;AACvCA,aAAS8N,kBAAT,GAA8B7E,IAA9B,CAAmC,UAAU6d,YAAV,EAAwB;AACzDH,0BAAoBG,aAAajc,GAAb,CAAiB,IAAjB,CAApB,IAA8Cic,YAA9C;AACD,KAFD;AAGD,GAJD;;AAMA,SAAOjqB,EAAEoO,GAAF,CAAM0b,mBAAN,EAA2B,UAAUI,QAAV,EAAoB;AAAE,WAAOA,QAAP;AAAkB,GAAnE,EAAqE,IAArE,CAAP;AACD,CAVD;;AAYA;;;;;;AAMA1B,gBAAgBwB,eAAhB,GAAkC,UAAUJ,gBAAV,EAA4BC,mBAA5B,EAAiD;AACjF,MAAIM,gBAAgBC,uBAAuBR,gBAAvB,CAApB;AACA,MAAIS,oBAAoBC,0BAA0BT,mBAA1B,CAAxB;AACA,SAAOM,cAAcnZ,MAAd,CAAqBqZ,iBAArB,CAAP;AACD,CAJD;;AAMA,SAASD,sBAAT,CAAiCR,gBAAjC,EAAmD;AACjD,MAAI1mB,SAASqnB,2BAA2BX,gBAA3B,CAAb;AACA,SAAO5pB,EAAEwP,KAAF,CAAQtM,MAAR,EACJkL,GADI,CACA,UAAUrK,KAAV,EAAiB;AACpB,WAAOA,MAAMyO,SAAN,EAAP;AACD,GAHI,EAIJ7C,OAJI,GAKJC,KALI,EAAP;AAMD;;AAED,SAAS0a,yBAAT,CAAoCT,mBAApC,EAAyD;AACvD,SAAOA,oBAAoBra,KAApB,GACJpB,GADI,CACA,UAAUoc,QAAV,EAAoB;AACvB,WAAOA,SAAShY,SAAT,EAAP;AACD,GAHI,EAIJ7C,OAJI,GAKJC,KALI,EAAP;AAMD;;AAED,SAAS2a,0BAAT,CAAqCX,gBAArC,EAAuD;AACrD,SAAOA,iBAAiB3W,MAAjB,CAAwB,UAAUlP,KAAV,EAAiB;AAC9C;AACA,WAAOwkB,WAAWjK,cAAX,CAA0Bva,KAA1B,KAAoCwkB,WAAWhK,aAAX,CAAyBxa,KAAzB,CAA3C;AACD,GAHM,CAAP;AAID;;AAEDhC,OAAOC,OAAP,GAAiBwmB,eAAjB,C;;;;;;AC1JA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;ACnBA,IAAIxoB,IAAID,mBAAOA,CAAC,CAAR,CAAR;;AAEA,IAAI0qB,mBAAmB;AACrBC,UAAQ,EAAEC,MAAM,QAAR,EAAkBC,QAAQ,CAA1B,EADa;AAErBC,UAAQ,EAAEF,MAAM,QAAR,EAAkBC,QAAQ,CAA1B,EAFa;AAGrBE,QAAM,EAAEH,MAAM,MAAR,EAAgBC,QAAQ,CAAxB,EAHe;AAIrBG,OAAK,EAAEJ,MAAM,KAAR,EAAeC,QAAQ,CAAvB,EAJgB;AAKrBI,QAAM,EAAEL,MAAM,KAAR,EAAeC,QAAQ,CAAvB,EALe;AAMrBK,SAAO,EAAEN,MAAM,OAAR,EAAiBC,QAAQ,CAAzB,EANc;AAOrBM,WAAS,EAAEP,MAAM,OAAR,EAAiBC,QAAQ,CAAzB,EAPY;AAQrBO,QAAM,EAAER,MAAM,OAAR,EAAiBC,QAAQ,EAAzB,EARe;AASrBQ,UAAQ,EAAET,MAAM,OAAR,EAAiBC,QAAQ,GAAzB,EATa;AAUrBS,WAAS,EAAEV,MAAM,OAAR,EAAiBC,QAAQ,IAAzB,EAVY;AAWrBU,cAAY,EAAEX,MAAM,OAAR,EAAiBC,QAAQ,KAAzB;AAXS,CAAvB;;AAcA,IAAIW,SAAS,EAAb;;AAEA,SAASC,WAAT,CAAsBzO,OAAtB,EAA+B0O,aAA/B,EAA8CC,YAA9C,EAA4D;AAC1D,MAAIC,QAAQ,IAAZ;AACA,MAAIC,YAAY,IAAhB;AACA,OAAK,IAAIvkB,IAAIokB,cAAcnkB,MAAd,GAAuB,CAApC,EAAuCD,KAAK,CAAL,IAAUukB,SAAV,KAAwB5rB,EAAEmf,QAAF,CAAWuM,YAAX,IAA2BrkB,KAAKqkB,YAAhC,GAA+C,IAAvE,CAAvC,EAAqHrkB,GAArH,EAA0H;AACxH,QAAIokB,cAAcpkB,CAAd,CAAJ,EAAsB;AACpBukB,kBAAY,KAAZ;AACD,KAFD,MAEO;AACLD,cAAQtkB,CAAR;AACD;AACF;;AAED,SAAOskB,UAAU,IAAV,GACH5O,QAAQ/T,KAAR,CAAc,CAAd,EAAiB2iB,KAAjB,CADG,GAEH5O,OAFJ;AAGD;;AAEDwO,OAAOM,oBAAP,GAA8B,UAAU9O,OAAV,EAAmB+O,KAAnB,EAA0BC,WAA1B,EAAuCC,YAAvC,EAAqD7f,IAArD,EAA2Duf,YAA3D,EAAyE;AACrG,MAAID,gBAAgB,EAApB,CADqG,CAC7E;AACxB,MAAIQ,gBAAgB,KAApB;;AAEA,OAAK,IAAI5kB,IAAI,CAAb,EAAgBA,IAAI2kB,YAApB,EAAkC3kB,GAAlC,EAAuC;AACrC4kB,oBAAgBlP,QAAQ1V,CAAR,MAAe6kB,SAA/B;AACAT,kBAAclkB,IAAd,CAAmB0kB,aAAnB;;AAEA,QAAIE,cAAc,KAAKhD,GAAL,CAAS2C,KAAT,EAAgBzkB,CAAhB,EAAmB0kB,WAAnB,CAAlB;AACA,QAAIK,kBAAkB,KAAKjD,GAAL,CAAS2C,KAAT,EAAgBzkB,IAAI,CAApB,EAAuB0kB,WAAvB,CAAtB;;AAEAhP,YAAQ1V,CAAR,IAAarH,EAAEG,MAAF,CAAS;AACpBksB,WAAKhlB,CADe;AAEpBykB,aAAOK,WAFa;AAGpBG,WAAKF,kBAAkB,CAHH;AAIpBG,YAAMH,eAJc;AAKpBI,YAAM;AALc,KAAT,EAMVzP,QAAQ1V,CAAR,CANU,CAAb;AAOA,WAAO0V,QAAQ1V,CAAR,EAAWolB,SAAlB;AACD;;AAED,SAAOtgB,SAAS,QAAT,GACH4Q,OADG,GAEHyO,YAAYzO,OAAZ,EAAqB0O,aAArB,EAAoCC,YAApC,CAFJ;AAGD,CAxBD;;AA0BAH,OAAOmB,kBAAP,GAA4B,UAAU3P,OAAV,EAAmB+O,KAAnB,EAA0Ba,KAA1B,EAAiCX,YAAjC,EAA+C;AACzE,OAAK,IAAI3kB,IAAI,CAAb,EAAgBA,IAAI2kB,YAApB,EAAkC3kB,GAAlC,EAAuC;AACrC,QAAI8kB,cAAcL,QAASzkB,IAAIslB,KAA/B;AACA,QAAIC,kBAAkBd,QAAS,CAACzkB,IAAI,CAAL,IAAUslB,KAAzC;AACA,QAAIE,eAAgBxlB,IAAI,CAAL,KAAY2kB,YAA/B;AACA,QAAIc,YAAaD,gBAAgB9P,QAAQ1V,CAAR,CAAjB,GAA+B0V,QAAQ1V,CAAR,EAAW0lB,GAA1C,GAAgDH,eAAhE;AACA,QAAII,eAAehtB,EAAEG,MAAF,CAAS,EAAT,EAAa;AAC9BksB,WAAKhlB,CADyB;AAE9BykB,aAAOK,WAFuB;AAG9BG,WAAKQ,SAHyB;AAI9BN,YAAM;AAJwB,KAAb,EAKhBzP,QAAQ1V,CAAR,CALgB,CAAnB;AAMA0V,YAAQ1V,CAAR,IAAa2lB,YAAb;AACD;AACF,CAdD;;AAgBAzB,OAAO0B,gBAAP,GAA0B,UAAUC,IAAV,EAAgBC,OAAhB,EAAyB;AACjD,SAAOntB,EAAEoY,IAAF,CAAOpY,EAAEwR,IAAF,CAAO2b,OAAP,CAAP,EAAwB,UAAUlY,GAAV,EAAe;AAC5C,WAAOjV,EAAEsF,QAAF,CAAW4nB,IAAX,EAAiBjY,GAAjB,CAAP;AACD,GAFM,CAAP;AAGD,CAJD;;AAMA;;;;;;;;;AASAsW,OAAOpC,GAAP,GAAa,UAAUsD,SAAV,EAAqBW,MAArB,EAA6BrB,WAA7B,EAA0C;AACrD,MAAI,CAACtB,iBAAiB4C,cAAjB,CAAgCtB,WAAhC,CAAL,EAAmD;AACjD,UAAMhpB,MAAM,kBAAkBgpB,WAAlB,GAAgC,kBAAtC,CAAN;AACD;AACD,MAAIuB,OAAO,IAAIC,IAAJ,CAASd,YAAY,IAArB,CAAX;AACA,MAAI9B,OAAOF,iBAAiBsB,WAAjB,EAA8BpB,IAAzC;AACA,MAAIC,SAASH,iBAAiBsB,WAAjB,EAA8BnB,MAA3C;AACA,MAAIhb,QAAQwd,SAASxC,MAArB;AACA,UAAQD,IAAR;AACE,SAAK,QAAL;AACE,aAAO2C,KAAKE,aAAL,CAAmBF,KAAKG,aAAL,KAAuB7d,KAA1C,IAAmD,IAA1D;AACF,SAAK,QAAL;AACE,aAAO0d,KAAKI,aAAL,CAAmBJ,KAAKK,aAAL,KAAuB/d,KAA1C,IAAmD,IAA1D;AACF,SAAK,MAAL;AACE,aAAO0d,KAAKM,WAAL,CAAiBN,KAAKO,WAAL,KAAqBje,KAAtC,IAA+C,IAAtD;AACF,SAAK,KAAL;AACE,aAAO0d,KAAKQ,UAAL,CAAgBR,KAAKS,UAAL,KAAoBne,KAApC,IAA6C,IAApD;AACF,SAAK,OAAL;AACE,UAAIjG,IAAI2jB,KAAKS,UAAL,EAAR;AACAT,WAAKQ,UAAL,CAAgB,CAAhB;AACAR,WAAKU,WAAL,CAAiBV,KAAKW,WAAL,KAAqBre,KAAtC;AACA0d,WAAKQ,UAAL,CAAgBI,KAAKC,GAAL,CAASxkB,CAAT,EAAYykB,gBAAgBd,KAAKe,cAAL,EAAhB,EAAuCf,KAAKW,WAAL,EAAvC,CAAZ,CAAhB;AACA,aAAOX,KAAKgB,OAAL,KAAiB,IAAxB;AACF;AACE,aAAO,CAAP;AAhBJ;AAkBD,CA1BD;;AA4BA;;AAEA,SAASF,eAAT,CAA0BjD,IAA1B,EAAgCF,KAAhC,EAAuC;AACrC,SAAO,CAAC,EAAD,EAAMsD,YAAYpD,IAAZ,IAAoB,EAApB,GAAyB,EAA/B,EAAoC,EAApC,EAAwC,EAAxC,EAA4C,EAA5C,EAAgD,EAAhD,EAAoD,EAApD,EAAwD,EAAxD,EAA4D,EAA5D,EAAgE,EAAhE,EAAoE,EAApE,EAAwE,EAAxE,EAA4EF,KAA5E,CAAP;AACD;;AAED,SAASsD,WAAT,CAAsBpD,IAAtB,EAA4B;AAC1B,SAASA,OAAO,CAAP,KAAa,CAAd,IAAqBA,OAAO,GAAP,KAAe,CAArC,IAA6CA,OAAO,GAAP,KAAe,CAAnE;AACD;;AAEDppB,OAAOC,OAAP,GAAiBupB,MAAjB,C;;;;;;;;;ACjIA,IAAIvrB,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIE,WAAWF,mBAAOA,CAAC,CAAR,CAAf;AACA,IAAIyuB,KAAKzuB,mBAAOA,CAAC,EAAR,CAAT;AACA,IAAI0uB,oBAAoB1uB,mBAAOA,CAAC,EAAR,CAAxB;AACA,IAAI2uB,qBAAqB3uB,mBAAOA,CAAC,EAAR,CAAzB;AACA,IAAIwrB,SAASxrB,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAI4uB,YAAY5uB,mBAAOA,CAAC,EAAR,CAAhB;;AAEAgC,OAAOC,OAAP,GAAiBysB,kBAAkBtuB,MAAlB,CAAyB;;AAExC6T,YAAUhU,EAAEG,MAAF,CACR;AACEgC,UAAM,WADR;AAEEysB,iBAAa,CAFf;AAGEC,oBAAgB,CAHlB;AAIEC,cAAU,KAJZ;AAKEC,mBAAe;AALjB,GADQ,EAQRN,kBAAkBluB,SAAlB,CAA4ByT,QARpB,CAF8B;;AAaxC2M,iCAA+B,yCAAY;AACzC,QAAIlQ,SAAS,EAAb;;AAEA,QAAIzQ,EAAE2Y,QAAF,CAAW,KAAK3K,GAAL,CAAS,YAAT,CAAX,CAAJ,EAAwC;AACtCyC,aAAOlJ,IAAP,CAAY,gBAAgB,KAAKyG,GAAL,CAAS,YAAT,CAA5B;AACA,UAAI,KAAKA,GAAL,CAAS,aAAT,MAA4B,QAA5B,IAAwC,KAAKA,GAAL,CAAS,MAAT,CAA5C,EAA8D;AAC5DyC,eAAOlJ,IAAP,CAAY,UAAU,KAAKyG,GAAL,CAAS,MAAT,CAAtB;AACD;AACF,KALD,MAKO;AACL,UAAIghB,SAAS,KAAKC,gBAAL,EAAb;;AAEA,UAAI,KAAKjhB,GAAL,CAAS,aAAT,MAA4B,QAA5B,IAAwC,KAAKA,GAAL,CAAS,MAAT,CAA5C,EAA8D;AAC5DyC,eAAOlJ,IAAP,CAAY,UAAU,KAAKyG,GAAL,CAAS,MAAT,CAAtB;AACD,OAFD,MAEO,IAAI,KAAKA,GAAL,CAAS,aAAT,MAA4B,MAAhC,EAAwC;AAC7CyC,eAAOlJ,IAAP,CAAY,kBAAkB,KAAKyG,GAAL,CAAS,aAAT,KAA2B,MAA7C,CAAZ;AACA,YAAIhO,EAAEmf,QAAF,CAAW6P,MAAX,CAAJ,EAAwB;AACtBve,iBAAOlJ,IAAP,CAAY,YAAYynB,MAAxB;AACD;AACF;;AAED;AACA,UAAIlD,QAAQ,KAAK9d,GAAL,CAAS,OAAT,CAAZ;AACA,UAAIse,MAAM,KAAKte,GAAL,CAAS,KAAT,CAAV;AACA,UAAIhO,EAAEmf,QAAF,CAAW2M,KAAX,KAAqB9rB,EAAEmf,QAAF,CAAWmN,GAAX,CAAzB,EAA0C;AACxC7b,eAAOlJ,IAAP,CAAY,WAAWukB,KAAvB;AACArb,eAAOlJ,IAAP,CAAY,SAAS+kB,GAArB;AACD;AACF;AACD,WAAO7b,MAAP;AACD,GA1CuC;;AA4CxCrQ,cAAY,oBAAUoN,KAAV,EAAiBnL,IAAjB,EAAuB;AACjC,SAAK6sB,YAAL,GAAoBP,UAAUQ,cAAV,EAApB;;AAEA;AACA,SAAKC,OAAL,GAAe,IAAIV,kBAAJ,CAAuB;AACpCW,YAAM,KAAKrhB,GAAL,CAAS,MAAT,CAD8B;AAEpC+d,mBAAa,KAAK/d,GAAL,CAAS,aAAT,CAFuB;AAGpCghB,cAAQ,KAAKhhB,GAAL,CAAS,QAAT,CAH4B;AAIpCshB,mBAAa,KAAKthB,GAAL,CAAS,aAAT,CAJuB;AAKpC0a,cAAQrmB,QAAQA,KAAKuL,MAAb,IAAuBvL,KAAKuL,MAAL,CAAYkT,SAAZ,EALK;AAMpC7S,iBAAW5L,QAAQA,KAAKuL,MAAb,IAAuBvL,KAAKuL,MAAL,CAAYmT,YAAZ,EANE;AAOpCgO,qBAAe,KAAK/gB,GAAL,CAAS,eAAT,CAPqB;AAQpCuhB,mBAAa,KAAKL,YARkB;AASpCpD,aAAO,KAAK9d,GAAL,CAAS,OAAT,CAT6B;AAUpCse,WAAK,KAAKte,GAAL,CAAS,KAAT;AAV+B,KAAvB,CAAf;;AAaAygB,sBAAkBluB,SAAlB,CAA4BH,UAA5B,CAAuCyB,KAAvC,CAA6C,IAA7C,EAAmDC,SAAnD;AACA,SAAK0tB,KAAL,GAAa,IAAIvvB,SAASiR,UAAb,CAAwB,KAAKlD,GAAL,CAAS,MAAT,CAAxB,CAAb;;AAEA,QAAIR,UAAUA,MAAM2gB,GAAN,IAAa3gB,MAAMuf,GAA7B,CAAJ,EAAuC;AACrC,WAAK9Z,MAAL,IAAe,KAAKA,MAAL,CAAYwc,QAAZ,CAAqB,KAAKzhB,GAAL,CAAS,KAAT,CAArB,EAAsC,KAAKA,GAAL,CAAS,KAAT,CAAtC,CAAf;AACD;AACF,GAnEuC;;AAqExCH,cAAY,sBAAY;AACtB4gB,sBAAkBluB,SAAlB,CAA4BsN,UAA5B,CAAuChM,KAAvC,CAA6C,IAA7C;;AAEA,SAAK6tB,iBAAL;;AAEA;AACA,SAAKN,OAAL,CAAa7tB,IAAb,CAAkB,oBAAlB,EAAwC,KAAKouB,oBAA7C,EAAmE,IAAnE;AACA,SAAKP,OAAL,CAAaQ,IAAb,CAAkB,oBAAlB,EAAwC,KAAKC,eAA7C,EAA8D,IAA9D;AACA,SAAKT,OAAL,CAAa7tB,IAAb,CAAkB,OAAlB,EAA2B,KAAKqjB,cAAhC,EAAgD,IAAhD;AACA,SAAKwK,OAAL,CAAa7tB,IAAb,CAAkB,OAAlB,EAA2B,KAAKuuB,cAAhC,EAAgD,IAAhD;;AAEA,SAAKlW,EAAL,CAAQ,eAAR,EAAyB,KAAKjF,gBAA9B,EAAgD,IAAhD;AACA,SAAKiF,EAAL,CAAQ,sBAAR,EAAgC,KAAKmW,uBAArC,EAA8D,IAA9D;AACA,SAAKnW,EAAL,CAAQ,QAAR,EAAkB,KAAKoW,gBAAvB,EAAyC,IAAzC;AACA,SAAKpW,EAAL,CAAQ,oBAAR,EAA8B,KAAKqW,oBAAnC,EAAyD,IAAzD;AACD,GApFuC;;AAsFxCF,2BAAyB,mCAAY;AACnC,SAAKX,OAAL,CAAa3gB,GAAb,CAAiB,eAAjB,EAAkC,KAAKT,GAAL,CAAS,eAAT,CAAlC;AACD,GAxFuC;;AA0FxC0hB,qBAAmB,6BAAY;AAC7B,SAAKjL,GAAL,CAAS,YAAT;AACA,SAAK7K,EAAL,CAAQ,YAAR,EAAsB,KAAKsW,aAA3B,EAA0C,IAA1C;AACD,GA7FuC;;AA+FxCL,mBAAiB,2BAAY;AAC3B,SAAK1N,cAAL;AACA,SAAKuN,iBAAL;AACD,GAlGuC;;AAoGxCS,gBAAc,wBAAY;AACxB,SAAK1hB,GAAL,CAAS,YAAT,EAAuB,CAAvB;AACD,GAtGuC;;AAwGxC2hB,iBAAe,yBAAY;AACzB,SAAK7hB,KAAL,CAAW,YAAX;AACD,GA1GuC;;AA4GxCsF,WAAS,mBAAY;AACnB,WAAO,KAAK2b,KAAL,CAAWnf,MAAX,EAAP;AACD,GA9GuC;;AAgHxCggB,qBAAmB,6BAAY;AAC7B,WAAO,KAAKjB,OAAL,CAAaphB,GAAb,CAAiB,MAAjB,CAAP;AACD,GAlHuC;;AAoHxCsiB,0BAAwB,kCAAY;AAClC,WAAO,KAAKlB,OAAZ;AACD,GAtHuC;;AAwHxCmB,WAAS,mBAAY;AACnB,WAAO,KAAKf,KAAL,CAAWgB,IAAX,EAAP;AACD,GA1HuC;;AA4HxCC,iBAAe,yBAAY;AACzB,WAAO,KAAKziB,GAAL,CAAS,aAAT,CAAP;AACD,GA9HuC;;AAgIxC8gB,YAAU,oBAAY;AACpB,WAAO,KAAK9gB,GAAL,CAAS,UAAT,CAAP;AACD,GAlIuC;;AAoIxCrJ,SAAO,eAAUiD,IAAV,EAAgB;AACrB,QAAImkB,cAAcnkB,KAAKmkB,WAAL,IAAqB,KAAKqD,OAAL,IAAgB,KAAKA,OAAL,CAAaphB,GAAb,CAAiB,aAAjB,CAAvD;AACA,QAAIge,eAAehsB,EAAEmf,QAAF,CAAWvX,KAAK8oB,UAAhB,IACf9oB,KAAK8oB,UADU,GAEf,KAAK1iB,GAAL,CAAS,MAAT,CAFJ;AAGA,QAAI2e,QAAQ/kB,KAAK+oB,SAAjB;AACA,QAAI7E,QAAQ,KAAK9d,GAAL,CAAS,aAAT,MAA4B,MAA5B,GAAqCpG,KAAKgpB,eAA1C,GAA4DhpB,KAAKipB,UAA7E;;AAEA,QAAIC,aAAa;AACflpB,YAAM,EADS;AAEfinB,sBAAgB,CAFD;AAGfkC,aAAO,CAHQ;AAIfnC,mBAAa;AAJE,KAAjB;;AAOA,QAAI,KAAKhL,GAAL,CAAS,OAAT,CAAJ,EAAuB;AACrB,aAAOkN,UAAP;AACD;;AAEDA,eAAWlpB,IAAX,GAAkB,IAAIsG,KAAJ,CAAU8d,YAAV,CAAlB;;AAEAhsB,MAAEoM,IAAF,CAAOxE,KAAKynB,IAAZ,EAAkB,UAAUhD,GAAV,EAAe;AAC/ByE,iBAAWlpB,IAAX,CAAgBykB,IAAIA,GAApB,IAA2BA,GAA3B;AACD,KAFD;;AAIA,SAAK5d,GAAL,CAAS;AACPsd,mBAAaA;AADN,KAAT,EAEG,EAAEpqB,QAAQ,IAAV,EAFH;;AAIA,QAAI,KAAKqM,GAAL,CAAS,aAAT,MAA4B,MAAhC,EAAwC;AACtC8iB,iBAAWlpB,IAAX,GAAkB2jB,OAAOM,oBAAP,CAA4BiF,WAAWlpB,IAAvC,EAA6CkkB,KAA7C,EAAoDC,WAApD,EAAiEC,YAAjE,EAA+E,UAA/E,EAA2F,KAAKoD,OAAL,CAAaphB,GAAb,CAAiB,MAAjB,EAAyB1G,MAApH,CAAlB;AACA0kB,qBAAe8E,WAAWlpB,IAAX,CAAgBN,MAA/B;AACD,KAHD,MAGO;AACLikB,aAAOmB,kBAAP,CAA0BoE,WAAWlpB,IAArC,EAA2CkkB,KAA3C,EAAkDa,KAAlD,EAAyDX,YAAzD;AACD;;AAED;AACA,SAAKwD,KAAL,IAAc,KAAKA,KAAL,CAAWhU,KAAX,CAAiBsV,WAAWlpB,IAA5B,CAAd;;AAEA;AACAkpB,eAAWlC,WAAX,GAAyB,KAAKoC,qBAAL,CAA2BF,WAAWlpB,IAAtC,CAAzB;AACAkpB,eAAWjC,cAAX,GAA4B,KAAKoC,wBAAL,CAA8B,KAAKhe,MAAnC,EAA2C,KAAKuc,KAAhD,CAA5B;AACAsB,eAAWC,KAAX,GAAmBnpB,KAAKmpB,KAAxB;AACAD,eAAWzB,IAAX,GAAkBrD,YAAlB;;AAEA,QAAIpkB,KAAKmpB,KAAL,IAAc,IAAlB,EAAwB;AACtBD,mBAAa9wB,EAAEG,MAAF,CAAS,EAAT,EAAa2wB,UAAb,EAAyB;AACpCC,eAAOnpB,KAAKmpB,KADwB;AAEpCjC,kBAAU;AAF0B,OAAzB,CAAb;AAID;;AAED,WAAOgC,UAAP;AACD,GAzLuC;;AA2LxC7O,oBAAkB,0BAAUhP,MAAV,EAAkB;AAClC,SAAKxE,GAAL,CAAS,gBAAT,EAA2B,KAAKwiB,wBAAL,CAA8Bhe,MAA9B,EAAsC,KAAKuc,KAA3C,CAA3B;;AAEAf,sBAAkBluB,SAAlB,CAA4B0hB,gBAA5B,CAA6CpgB,KAA7C,CAAmD,IAAnD,EAAyDC,SAAzD;AACD,GA/LuC;;AAiMxC6S,oBAAkB,4BAAY;AAC5B,SAAKya,OAAL,CAAa3gB,GAAb,CAAiB;AACf6gB,mBAAa,KAAKthB,GAAL,CAAS,aAAT,CADE;AAEf2E,cAAQ,KAAK3E,GAAL,CAAS,QAAT,CAFO;AAGf8d,aAAO,IAHQ;AAIfQ,WAAK;AAJU,KAAjB;AAMA,SAAK7d,GAAL,CAAS,aAAT,EAAwByd,SAAxB,EAAmC,EAAEvqB,QAAQ,IAAV,EAAnC;;AAEA,SAAKuhB,oBAAL;AACD,GA3MuC;;AA6MxC8N,yBAAuB,+BAAUjU,OAAV,EAAmB;AACxC,WAAO/c,EAAEkxB,MAAF,CAASnU,OAAT,EAAkB,UAAUoU,IAAV,EAAgBnU,MAAhB,EAAwB;AAC/C,UAAImM,MAAMnM,UAAUA,OAAOwP,IAAjB,GACNxP,OAAOwP,IADD,GAEN,CAFJ;AAGA,aAAO2E,OAAOhI,GAAd;AACD,KALM,EAKJ,CALI,CAAP;AAMD,GApNuC;;AAsNxC8H,4BAA0B,kCAAUhe,MAAV,EAAkBrL,IAAlB,EAAwB;AAChD,QAAIinB,iBAAiB,CAArB;AACA,QAAI5b,UAAUA,OAAOjF,GAAP,CAAW,KAAX,MAAsB,KAAK,CAArC,IAA0CiF,OAAOjF,GAAP,CAAW,KAAX,MAAsB,KAAK,CAAzE,EAA4E;AAC1E,UAAIojB,UAAU,KAAKC,gBAAL,CAAsBzpB,IAAtB,EAA4BqL,OAAOjF,GAAP,CAAW,KAAX,CAA5B,EAA+CiF,OAAOjF,GAAP,CAAW,KAAX,CAA/C,CAAd;AACA6gB,uBAAiB,KAAKyC,YAAL,CAAkB1pB,IAAlB,EAAwBwpB,QAAQtF,KAAhC,EAAuCsF,QAAQ9E,GAA/C,CAAjB;AACD;;AAED,WAAOuC,cAAP;AACD,GA9NuC;;AAgOxCwC,oBAAkB,0BAAUzpB,IAAV,EAAgBkkB,KAAhB,EAAuBQ,GAAvB,EAA4B;AAC5C,QAAIiF,WAAW3pB,KAAK4pB,SAAL,CAAe,EAAE1F,OAAOoC,KAAKC,GAAL,CAASrC,KAAT,EAAgBQ,GAAhB,CAAT,EAAf,CAAf;AACA,QAAImF,SAAS7pB,KAAK4pB,SAAL,CAAe,EAAElF,KAAK4B,KAAKnB,GAAL,CAASjB,KAAT,EAAgBQ,GAAhB,CAAP,EAAf,CAAb;;AAEA,WAAO;AACLR,aAAOyF,YAAYA,SAASvjB,GAAT,CAAa,KAAb,CADd;AAELse,WAAKmF,UAAUA,OAAOzjB,GAAP,CAAW,KAAX;AAFV,KAAP;AAID,GAxOuC;;AA0OxCsjB,gBAAc,sBAAU1pB,IAAV,EAAgBkkB,KAAhB,EAAuBQ,GAAvB,EAA4B;AACxC,WAAOtsB,EAAEkxB,MAAF,CAAStpB,KAAKoB,KAAL,CAAW8iB,KAAX,EAAkBQ,MAAM,CAAxB,CAAT,EAAqC,UAAUoF,IAAV,EAAgBC,CAAhB,EAAmB;AAC7D,aAAO,CAACA,EAAE3jB,GAAF,CAAM,MAAN,KAAiB,CAAlB,IAAuB0jB,IAA9B;AACD,KAFM,EAEJ,CAFI,CAAP;AAGD,GA9OuC;;AAgPxC;;;;AAIAE,uBAAqB,6BAAUhqB,IAAV,EAAgB;AACnC,QAAIiqB,YAAYjqB,QAAQ,KAAKoG,GAAL,CAAS,MAAT,CAAxB;AACA,QAAI8jB,eAAe,SAAfA,YAAe,CAAUC,CAAV,EAAa;AAAE,aAAOA,EAAEvF,IAAT;AAAgB,KAAlD;AACA,QAAIwF,MAAMxD,GAAGzB,GAAH,CAAO8E,SAAP,EAAkBC,YAAlB,IAAkCtD,GAAGL,GAAH,CAAO0D,SAAP,EAAkBC,YAAlB,CAA5C;AACA,QAAIG,OAAOzD,GAAGyD,IAAH,CAAQJ,SAAR,EAAmBC,YAAnB,CAAX;AACA;AACA;AACA,QAAIE,MAAMC,OAAO,GAAjB,EAAsB,OAAO,GAAP;AACtB,QAAIC,WAAW1D,GAAG2D,GAAH,CAAON,SAAP,EAAkBC,YAAlB,CAAf;AACA,QAAIM,QAAQP,UAAUzjB,GAAV,CAAc,UAAUie,GAAV,EAAe;AACvC,aAAO,MAAMA,IAAIG,IAAV,GAAiB0F,QAAxB;AACD,KAFW,CAAZ;;AAIA;AACA,QAAIG,OAAOD,MAAMhkB,GAAN,CAAU,UAAUoe,IAAV,EAAgBb,KAAhB,EAAuB;AAC1C,UAAIY,OAAO6F,MAAMzG,QAAQ,CAAd,CAAX;AACA,UAAIa,OAAOD,IAAX,EAAiB,OAAO,CAAC,CAAR;AACjB,UAAI2B,KAAKoE,GAAL,CAAS9F,OAAOD,IAAhB,KAAyB,IAA7B,EAAmC,OAAO,CAAP;AACnC,aAAO,CAAP;AACD,KALU,CAAX;AAMA8F,SAAKE,GAAL;AACA,QAAIC,UAAUhE,GAAGzB,GAAH,CAAOsF,IAAP,CAAd;AACA,QAAII,UAAUjE,GAAGL,GAAH,CAAOkE,IAAP,CAAd;AACA;AACA,QAAII,YAAY,CAAZ,IAAiBD,YAAY,CAAjC,EAAoC,OAAO,GAAP,CAApC,KACK,IAAIA,UAAU,CAAd,EAAiB,OAAO,GAAP,CAAjB,KACA,IAAIC,UAAU,CAAC,CAAf,EAAkB,OAAO,GAAP,CAAlB,KACA;AACH,UAAIC,UAAU1yB,EAAE2yB,IAAF,CAAON,IAAP,CAAd;AACA,UAAIO,UAAU,CAAC,CAAC,CAAD,EAAI,CAAC,CAAL,CAAD,EAAU,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAC,CAAR,CAAV,EAAsB,CAAC,CAAD,EAAI,CAAC,CAAL,EAAQ,CAAR,CAAtB,EAAkC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAC,CAAR,CAAlC,CAAd;AACA,UAAIC,UAAU,CAAC,CAAC,CAAC,CAAF,EAAK,CAAL,CAAD,EAAU,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,CAAV,EAAsB,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,CAAtB,EAAkC,CAAC,CAAD,EAAI,CAAC,CAAL,EAAQ,CAAR,CAAlC,CAAd;AACA,UAAID,QAAQxa,IAAR,CAAa,UAAU0a,CAAV,EAAa;AAC5B,eAAO9yB,EAAE+yB,OAAF,CAAUD,CAAV,EAAaJ,OAAb,CAAP;AACD,OAFG,CAAJ,EAEI,OAAO,GAAP,CAFJ,KAGK,IAAIG,QAAQza,IAAR,CAAa,UAAU0a,CAAV,EAAa;AACjC,eAAO9yB,EAAE+yB,OAAF,CAAUD,CAAV,EAAaJ,OAAb,CAAP;AACD,OAFQ,CAAJ,EAED,OAAO,GAAP,CAFC,KAGA,OAAO,GAAP;AACN;AACF,GA3RuC;;AA6RxCriB,UAAQ,gBAAUshB,CAAV,EAAa;AACnB,QAAIqB,aAAa,KAAKhlB,GAAL,CAAS,aAAT,CAAjB;AACA,QAAIghB,SAAS,KAAKhhB,GAAL,CAAS,QAAT,CAAb;;AAEA,QAAI3N,UAAU;AACZsS,cAAQ,KAAK3E,GAAL,CAAS,QAAT;AADI,KAAd;;AAIA,QAAIglB,eAAe,QAAf,IAA2B,KAAKhlB,GAAL,CAAS,MAAT,CAA/B,EAAiD;AAC/C3N,cAAQgvB,IAAR,GAAe,KAAKrhB,GAAL,CAAS,MAAT,CAAf;AACD,KAFD,MAEO,IAAIglB,eAAe,MAAnB,EAA2B;AAChC3yB,cAAQ0rB,WAAR,GAAsB,KAAK/d,GAAL,CAAS,aAAT,KAA2B,MAAjD;;AAEA,UAAIhO,EAAEmf,QAAF,CAAW6P,MAAX,CAAJ,EAAwB;AACtB3uB,gBAAQ2uB,MAAR,GAAiBA,MAAjB;AACD;AACF;;AAED,WAAO;AACL7sB,YAAM,WADD;AAEL+B,cAAQ,EAAE2d,IAAI,KAAKoB,WAAL,EAAN,EAFH;AAGL5iB,eAASA;AAHJ,KAAP;AAKD,GApTuC;;AAsTxC4vB,wBAAsB,gCAAY;AAChC,SAAKhd,MAAL,IAAe,KAAKA,MAAL,CAAYxE,GAAZ,CAAgB,aAAhB,EAA+B,KAAKT,GAAL,CAAS,aAAT,CAA/B,CAAf;AACD,GAxTuC;;AA0TxCmU,kBAAgB,0BAAY;AAC1BsM,sBAAkBluB,SAAlB,CAA4B4hB,cAA5B,CAA2C3hB,IAA3C,CAAgD,IAAhD;AACD,GA5TuC;;AA8TxC0vB,iBAAe,yBAAY;AACzB,SAAKd,OAAL,CAAa3gB,GAAb,CAAiB;AACfugB,cAAQ,KAAKhhB,GAAL,CAAS,QAAT,CADO;AAEfqhB,YAAM,KAAKrhB,GAAL,CAAS,MAAT;AAFS,KAAjB,EAGG,EAAErM,QAAQ,IAAV,EAHH;;AAKA,SAAKytB,OAAL,CAAa6D,MAAb,CAAoB,KAAKjlB,GAAL,CAAS,KAAT,CAApB;AACD,GArUuC;;AAuUxC2hB,wBAAsB,8BAAU/nB,IAAV,EAAgB0J,KAAhB,EAAuB;AAC3C,QAAIwa,QAAQxa,MAAMtD,GAAN,CAAU,OAAV,CAAZ;AACA,QAAIse,MAAMhb,MAAMtD,GAAN,CAAU,KAAV,CAAV;;AAEA,QAAIhO,EAAEmf,QAAF,CAAW2M,KAAX,KAAqB9rB,EAAEmf,QAAF,CAAWmN,GAAX,CAAzB,EAA0C;AACxC,WAAK7d,GAAL,CAAS;AACPqd,eAAOA,KADA;AAEPQ,aAAKA;AAFE,OAAT;AAID;;AAED,SAAK7d,GAAL,CAAS;AACPsd,mBAAaza,MAAMtD,GAAN,CAAU,aAAV,KAA4B,MADlC;AAEPghB,cAAQ1d,MAAMtD,GAAN,CAAU,QAAV,KAAuB,CAFxB;AAGPqhB,YAAM/d,MAAMtD,GAAN,CAAU,MAAV,CAHC;AAIPrL,aAAO2O,MAAMtD,GAAN,CAAU,OAAV;AAJA,KAAT,EAKG,EAAErM,QAAQ,IAAV,EALH;;AAOA,QAAIuxB,cAAc,KAAlB;;AAEA,QAAI,KAAKllB,GAAL,CAAS,aAAT,MAA4B,MAA5B,KAAuChO,EAAE4jB,GAAF,CAAM,KAAKuJ,OAAX,EAAoB,aAApB,KAAsCntB,EAAE4jB,GAAF,CAAM,KAAKuJ,OAAX,EAAoB,QAApB,CAA7E,CAAJ,EAAiH;AAC/G+F,oBAAc,IAAd;AACD,KAFD,MAEO,IAAI,KAAKllB,GAAL,CAAS,aAAT,MAA4B,QAA5B,IAAwChO,EAAE4jB,GAAF,CAAM,KAAKuJ,OAAX,EAAoB,MAApB,CAA5C,EAAyE;AAC9E+F,oBAAc,IAAd;AACD;;AAEDA,kBACI,KAAKC,oBAAL,EADJ,GAEI,KAAK1yB,KAAL,EAFJ;AAGD,GApWuC;;AAsWxCuvB,oBAAkB,4BAAY;AAC5B,SAAKoD,kBAAL;;AAEA,QAAI,CAAC7H,OAAO0B,gBAAP,CAAwB,CAAC,MAAD,EAAS,aAAT,EAAwB,QAAxB,CAAxB,EAA2D,KAAKE,OAAhE,CAAL,EAA+E;AAC7E;AACD;;AAED,QAAIkG,gCAAgCrzB,EAAE4jB,GAAF,CAAM,KAAKuJ,OAAX,EAAoB,aAApB,KAAsCntB,EAAEsM,WAAF,CAAc,KAAK6gB,OAAL,CAAapB,WAA3B,CAA1E;;AAEA;AACA;AACA;AACA,QAAI,KAAK/d,GAAL,CAAS,aAAT,MAA4B,QAA5B,IAAwC,CAACqlB,6BAA7C,EAA4E;AAC1E,WAAKjE,OAAL,CAAa3gB,GAAb,CAAiB,MAAjB,EAAyB,KAAKT,GAAL,CAAS,MAAT,CAAzB;AACD;AACD,QAAI,KAAKA,GAAL,CAAS,aAAT,MAA4B,MAAhC,EAAwC;AACtC,UAAI,KAAKslB,UAAL,CAAgB,aAAhB,CAAJ,EAAoC;AAClC,aAAKC,YAAL;AACD;AACD,WAAKnE,OAAL,CAAa3gB,GAAb,CAAiB;AACfugB,gBAAQ,KAAKhhB,GAAL,CAAS,QAAT,CADO;AAEf+d,qBAAa,KAAK/d,GAAL,CAAS,aAAT;AAFE,OAAjB;AAID;AACF,GA9XuC;;AAgYxColB,sBAAoB,8BAAY;AAC9B,QAAMtH,QAAQ,KAAK9d,GAAL,CAAS,OAAT,CAAd;AACA,QAAMse,MAAM,KAAKte,GAAL,CAAS,KAAT,CAAZ;;AAEA,QAAMwlB,kBAAkBjI,OAAO0B,gBAAP,CAAwB,CAAC,OAAD,EAAU,KAAV,CAAxB,EAA0C,KAAKE,OAA/C,CAAxB;AACA,QAAMsG,gBAAgBzzB,EAAEmf,QAAF,CAAW2M,KAAX,KAAqB9rB,EAAEmf,QAAF,CAAWmN,GAAX,CAA3C;AACA,QAAMoH,qBAAqB,KAAKtE,OAAL,CAAaphB,GAAb,CAAiB,OAAjB,MAA8B8d,KAA9B,IAAuC,KAAKsD,OAAL,CAAaphB,GAAb,CAAiB,KAAjB,MAA4Bse,GAA9F;;AAEA,QAAIkH,mBAAmBC,aAAnB,IAAoCC,kBAAxC,EAA4D;AAC1D,WAAKtE,OAAL,CAAa3gB,GAAb,CAAiB,EAAEqd,YAAF,EAASQ,QAAT,EAAjB;AACA,WAAK8C,OAAL,CAAahN,OAAb;AACD;AACF,GA5YuC;;AA8YxC+Q,wBAAsB,gCAAY;AAChC,SAAKI,YAAL;AACA,SAAK9yB,KAAL;AACD,GAjZuC;;AAmZxC8yB,gBAAc,wBAAY;AACxB,SAAKnD,aAAL;AACA,SAAKnd,MAAL,IAAe,KAAKA,MAAL,CAAY0gB,UAAZ,EAAf;AACD,GAtZuC;;AAwZxC7D,kBAAgB,wBAAUxe,KAAV,EAAiB3O,KAAjB,EAAwB;AACtC,QAAI8B,cAAc9B,SAAS,KAAKwhB,WAAL,CAAiBxhB,KAAjB,CAA3B;;AAEA,QAAI8B,eAAeA,YAAYrC,OAAZ,KAAwB,OAA3C,EAAoD;AAClD,WAAK4gB,mBAAL,CAAyBve,WAAzB;AACD;AACF,GA9ZuC;;AAgaxCwqB,oBAAkB,4BAAY;AAC5B,WAAO,KAAKjhB,GAAL,CAAS,eAAT,IACH,KAAKkhB,YADF,GAEH,KAAKlhB,GAAL,CAAS,QAAT,CAFJ;AAGD;AApauC,CAAzB;;AAuaf;AACF;AACE6V,eAAa4K,kBAAkB5K,WAAlB,CAA8B7S,MAA9B,CAAqC,CAChD,QADgD,EAEhD,aAFgD,EAGhD,MAHgD,EAIhD,KAJgD,EAKhD,KALgD,EAMhD,aANgD,EAOhD,QAPgD,CAArC;AADf,CAxaiB,CAAjB,C;;;;;;;;;ACRA,IAAI/Q,WAAWF,mBAAOA,CAAC,CAAR,CAAf;AACA,IAAIC,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAI6zB,oBAAoB7zB,mBAAOA,CAAC,EAAR,CAAxB;AACA,IAAI8zB,yBAAyB,OAA7B;;AAEA;;;;;;AAMA9xB,OAAOC,OAAP,GAAiB/B,SAASiR,UAAT,CAAoB/Q,MAApB,CAA2B;AAC1CmR,SAAOsiB,iBADmC;;AAG1CxzB,cAAY,oBAAU0zB,MAAV,EAAkBzzB,OAAlB,EAA2B;AACrC,SAAK0zB,gBAAL,GAAwB1zB,QAAQ0zB,gBAAhC;AACA,SAAKhI,WAAL,GAAmB1rB,QAAQ0zB,gBAAR,CAAyB/lB,GAAzB,CAA6B,aAA7B,CAAnB;AACD,GANyC;;AAQ1CwN,SAAO,eAAUsY,MAAV,EAAkBzzB,OAAlB,EAA2B;AAChC,QAAI,KAAK0zB,gBAAL,CAAsB/lB,GAAtB,CAA0B,aAA1B,MAA6C6lB,sBAAjD,EAAyE;AACvEC,eAAS9zB,EAAEiT,MAAF,CAAS6gB,MAAT,EAAiB,UAAUE,QAAV,EAAoB;AAC5C,YAAIC,UAAUD,oBAAoB/zB,SAASC,KAA3C;AACA,YAAI0P,QAAQqkB,UAAUD,SAAShmB,GAAT,CAAa,OAAb,CAAV,GAAkCgmB,SAASpkB,KAAvD;AACA,eAAOA,SAAS,IAAhB;AACD,OAJQ,CAAT;AAKD;AACD3P,aAASiR,UAAT,CAAoB3Q,SAApB,CAA8Bib,KAA9B,CAAoChb,IAApC,CAAyC,IAAzC,EAA+CszB,MAA/C,EAAuDzzB,OAAvD;AACD,GAjByC;;AAmB1C6zB,cAAY,oBAAUnC,CAAV,EAAaoC,CAAb,EAAgB;AAC1B,QAAIpC,EAAE/jB,GAAF,CAAM,MAAN,MAAkB,OAAtB,EAA+B;AAC7B,aAAO,CAAP;AACD,KAFD,MAEO,IAAImmB,EAAEnmB,GAAF,CAAM,MAAN,MAAkB,OAAtB,EAA+B;AACpC,aAAO,CAAC,CAAR;AACD,KAFM,MAEA,IAAI+jB,EAAE/jB,GAAF,CAAM,OAAN,MAAmBmmB,EAAEnmB,GAAF,CAAM,OAAN,CAAvB,EAAuC;AAC5C,aAAQ+jB,EAAE/jB,GAAF,CAAM,UAAN,IAAoBmmB,EAAEnmB,GAAF,CAAM,UAAN,CAArB,GAA0C,CAA1C,GAA8C,CAAC,CAAtD;AACD,KAFM,MAEA;AACL,aAAQ+jB,EAAE/jB,GAAF,CAAM,OAAN,IAAiBmmB,EAAEnmB,GAAF,CAAM,OAAN,CAAlB,GAAoC,CAApC,GAAwC,CAAC,CAAhD;AACD;AACF,GA7ByC;;AA+B1ComB,oBAAkB,4BAAY;AAC5B,WAAO,KAAKC,KAAL,CAAW;AAChB5tB,WAAK,IADW;AAEhB/C,YAAM;AAFU,KAAX,EAGJ4D,MAHI,GAGK,CAHZ;AAID;;AApCyC,CAA3B,CAAjB,C;;;;;;ACXA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAKqB;AAC3B,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,kBAAkB;;AAElB,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B,0BAA0B,EAAE;AAC5B,0BAA0B,EAAE;AAC5B;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA,CAAC;AACD,gC;;;;;;;;;ACjrBA,IAAI0Y,uBAAuBjgB,mBAAOA,CAAC,EAAR,CAA3B;;AAEA,SA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ACA,CAAC;;;ACpBc;AACf;AACA,CAAC;;;ACFc;AACf;AACA,CAAC;;;ACF6B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AChCiC;;AAEnB;AACf,UAAU,QAAQ;AAClB;AACA,CAAC;;;ACLc;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACpCD,IAAI,WAAK;;AAEF,YAAY,WAAK;AACjB,UAAU,WAAK;;;ACHP;AACf;AACA;AACA;AACA,CAAC;;;ACJc;AACf;AACA,CAAC;;;ACFc;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;ACZD;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClDe;AACf;AACA,CAAC;;;ACF6B;AACA;AACI;AACJ;AACI;AACN;AACK;AACS;;AAE3B;AACf,cAAc,QAAQ;AACtB,eAAe,MAAM;AACrB,kBAAkB,OAAO;;AAEzB;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK,wDAAwD;AACxE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,QAAQ;AAC7E;;AAEA;AACA,sEAAsE,QAAQ;AAC9E;;AAEA;AACA,4FAA4F,QAAQ,CAAC,KAAK,YAAY,QAAQ;AAC9H;;AAEA;AACA,CAAC;;;AC1E6B;;AAEf;AACf,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACb4B;AACQ;AACN;AACI;;AAEpB;AACf,WAAW,GAAG,cAAc,MAAM,OAAO,SAAS;AAClD,uCAAuC,QAAQ,iBAAiB,QAAQ;AACxE,CAAC;;;ACRoC;;AAEtB;AACf,wCAAwC,SAAS;AACjD,CAAC;;;ACJc;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACjC6B;;AAEf;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;;AAEA;AACA,CAAC;;;ACxBmC;AACN;AACI;;AAEnB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;;AAEA,SAAS,QAAQ,cAAc,SAAS;AACxC,CAAC;;;AC3Bc;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACpBc;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;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N,oBAAvC;AACD,CAFD;;AAIAF,eAAehiD,SAAf,CAAyBmiD,iBAAzB,GAA6C,UAAUzmB,OAAV,EAAmB;AAC9D,SAAO,KAAK4mB,YAAL,IAAqB,KAAKA,YAAL,CAAkB1xC,MAAlB,CAAyB8qB,OAAzB,CAA5B;AACD,CAFD;;AAIAsmB,eAAehiD,SAAf,CAAyBoiD,kBAAzB,GAA8C,UAAU1+B,QAAV,EAAoB;AAChE,SAAOjkB,EAAE+yB,OAAF,CAAU,KAAK+vB,aAAf,EAA8B7+B,QAA9B,CAAP;AACD,CAFD;;AAIAliB,OAAOC,OAAP,GAAiBugD,cAAjB,C;;;;;;AC9CA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL,KAAK;AACL,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA,IAAI;AACJ,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,GAAG;AACH,cAAc,SAAS;AACvB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAA2C;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA,oBAAoB,sCAAsC;AAC1D;AACA;AACA,qBAAqB,sCAAsC;AAC3D;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kCAAkC;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mLAAmL;AACzM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4XAA4X;AAC5X;AACA,+XAA+X;AAC/X;AACA,yXAAyX,0LAA0L;AACnjB,yWAAyW;AACzW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;;;AAGxB;AACA;AACA,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;ACxyHA,IAAIziD,IAAIC,mBAAOA,CAAC,EAAR,CAAR;AACA,IAAIC,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIkjD,OAAOljD,mBAAOA,CAAC,GAAR,CAAX;AACA,IAAIgH,OAAOhH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EAArC;AACA,WAAOy1C,SAAP;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;;AAED/jD,OAAOC,OAAP,GAAiB;AACfqd,aAAWA;AADI,CAAjB,C;;;;;;;ACPa;;AAEb,cAAc,mBAAO,CAAC,EAAW;;AAEjC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AC/FA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1Ca;;AAEb,cAAc,mBAAO,CAAC,EAAW;AACjC,oBAAoB,mBAAO,CAAC,GAAkB;;AAE9C;AACA;AACA;;;;;;;;;;ACPA,IAAIrf,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIyoB,kBAAkBzoB,mBAAOA,CAAC,EAAR,CAAtB;;AAEA;;;;AAIA,SAASsf,SAAT,CAAoBuK,gBAApB,EAAsCC,mBAAtC,EAA2D;AACzD,MAAIE,eAAevB,gBAAgBwB,eAAhB,CAAgCJ,gBAAhC,EAAkDC,mBAAlD,CAAnB;AACA,SAAOymC,4BAA4BvmC,YAA5B,CAAP;AACD;;AAED;;;AAGA,SAASumC,2BAAT,CAAsCvmC,YAAtC,EAAoD;AAClD,MAAIwmC,cAAc,EAAlB;AACA,SAAOvwD,EAAEkxB,MAAF,CAASnH,YAAT,EAAuB,UAAUmD,IAAV,EAAgB/pB,QAAhB,EAA0B;AACtD,QAAI,CAACotD,YAAYptD,SAAS6K,GAAT,CAAa,IAAb,CAAZ,CAAD,IAAoC,CAACwiD,+BAA+BrtD,QAA/B,EAAyC4mB,YAAzC,CAAzC,EAAiG;AAC/FwmC,kBAAYptD,SAAS6K,GAAT,CAAa,IAAb,CAAZ,IAAkC,IAAlC,CAD+F,CACvD;AACxCkf,WAAK3lB,IAAL,CAAUpE,SAASkN,MAAT,EAAV;AACD;AACD,WAAO6c,IAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD;;AAED;;;;AAIA,SAASsjC,8BAAT,CAAyCrtD,QAAzC,EAAmD4mB,YAAnD,EAAiE;AAC/D,SAAO/pB,EAAEywC,GAAF,CAAM1mB,YAAN,EAAoB,UAAU0mC,kBAAV,EAA8B;AACvD,QAAI,CAACttD,SAASgO,MAAT,CAAgBs/C,kBAAhB,CAAL,EAA0C;AACxC,aAAOA,mBAAmBnhD,gBAAnB,CAAoCnM,SAAS6K,GAAT,CAAa,IAAb,CAApC,CAAP;AACD;AACD,WAAO,KAAP;AACD,GALM,CAAP;AAMD;;AAEDjM,OAAOC,OAAP,GAAiB;AACfqd,aAAWA;AADI,CAAjB,C;;;;;;;;;ACvCA,IAAIqxC,qBAAqB3wD,mBAAOA,CAAC,GAAR,CAAzB;AACA,IAAI4wD,qBAAqB5wD,mBAAOA,CAAC,GAAR,CAAzB;AACA,IAAI6wD,kBAAkB7wD,mBAAOA,CAAC,GAAR,CAAtB;;AAEA;;;AAGA,SAASsf,SAAT,CAAoBuK,gBAApB,EAAsCC,mBAAtC,EAA2D;AACzD,SAAO;AACL+9B,gBAAY,EAAEC,KAAK,CAAP,EADP;AAEL3kD,YAAQ0tD,gBAAgBvxC,SAAhB,CAA0BuK,gBAA1B,CAFH;AAGLk8B,eAAW6K,mBAAmBtxC,SAAnB,CAA6BwK,mBAA7B,CAHN;AAIL5B,cAAUyoC,mBAAmBrxC,SAAnB,CAA6BuK,gBAA7B,EAA+CC,mBAA/C;AAJL,GAAP;AAMD;;AAED9nB,OAAOC,OAAP,GAAiB;AACfqd,aAAWA;AADI,CAAjB,C;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAyC;AAC/C,IAAI,iCAAO,CAAC,sBAAY,EAAE,sBAAU,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AAC/C;AACA,OAAO,EAKJ;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA,OAA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A;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;ACzLD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,mBAAO,CAAC,GAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA,+EAA+E,kBAAkB,EAAE;AACnG;AACA;AACA;;AAEA;AACA;AACA,iEAAiE;AACjE;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,CAAC;;;;;;;;ACxOD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,SAAS;AACT;AACA,SAAS;AACT,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,CAAC;;;;;;;;;;ACjdD;;;;;;;;;;;;;;;;;;;AAmBA;AACAnzD,mBAAOA,CAAC,GAAR;AACA;AACA,IAAI+6B,UAAU/6B,mBAAOA,CAAC,GAAR,CAAd;AACA,IAAI,CAAC8H,OAAOizB,OAAZ,EAAqB;AACnBjzB,SAAOizB,OAAP,GAAiBA,OAAjB;AACD;;AAED,IAAIo4B,SAASnzD,mBAAOA,CAAC,GAAR,CAAb;AACA,IAAImE,SAASnE,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAI0vC,QAAQ1vC,mBAAOA,CAAC,EAAR,CAAZ;AACA,IAAIgE,QAAQhE,mBAAOA,CAAC,EAAR,CAAZ;AACA,IAAIyqB,WAAWzqB,mBAAOA,CAAC,EAAR,CAAf;AACA,IAAIkT,SAASlT,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAI0lB,SAAS1lB,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAIglC,YAAYhlC,mBAAOA,CAAC,CAAR,CAAhB;;AAEA,IAAI20D,QAAQ;AACV5pD,WAAS/K,mBAAOA,CAAC,EAAR,EAAiC+K,OADhC;AAEVpE,eAAaq+B,UAAUr+B,WAFb;AAGVwsD,UAAQA,MAHE;AAIVhvD,UAAQA,MAJE;AAKVurC,SAAOA,KALG;AAMV1rC,SAAOA,KANG;AAOVymB,YAAUA,QAPA;AAQVvX,UAAQA,MARE;AASVwS,UAAQA,MATE;AAUV3gB,aAAWigC,UAAUjgC;AAVX,CAAZ;;AAaA/C,OAAOC,OAAP,GAAiB0yD,KAAjB,C","file":"carto.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"carto\"] = factory();\n\telse\n\t\troot[\"carto\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 150);\n","// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define === 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}.call(this));\n","// Backbone.js 1.2.3\n\n// (c) 2010-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = (typeof self == 'object' && self.self == self && self) ||\n (typeof global == 'object' && global.global == global && global);\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch(e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));\n }\n\n}(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.2.3';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return _[method](this[attribute]);\n };\n case 2: return function(value) {\n return _[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return _[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return _[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return _[method].apply(_, args);\n };\n }\n };\n var addUnderscoreMethods = function(Class, methods, attribute) {\n _.each(methods, function(length, method) {\n if (_[method]) Class.prototype[method] = addMethod(length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n return internalOn(this, name, callback, context);\n };\n\n // Guard the `listening` argument from the public API.\n var internalOn = function(obj, name, callback, context, listening) {\n obj._events = eventsApi(onApi, obj._events || {}, name, callback, {\n context: context,\n ctx: obj,\n listening: listening\n });\n\n if (listening) {\n var listeners = obj._listeners || (obj._listeners = {});\n listeners[listening.id] = listening;\n }\n\n return obj;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n var thisId = this._listenId || (this._listenId = _.uniqueId('l'));\n listening = listeningTo[id] = {obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0};\n }\n\n // Bind callbacks on obj, and keep track of them on listening.\n internalOn(obj, name, callback, this, listening);\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({ callback: callback, context: context, ctx: context || ctx, listening: listening });\n }\n return events;\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var i = 0, listening;\n var context = options.context, listeners = options.listeners;\n\n // Delete all events listeners and \"drop\" events.\n if (!name && !callback && !context) {\n var ids = _.keys(listeners);\n for (; i < ids.length; i++) {\n listening = listeners[ids[i]];\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n return;\n }\n\n var names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Replace events if there are any remaining. Otherwise, clean up.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n listening = handler.listening;\n if (listening && --listening.count === 0) {\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n }\n }\n\n // Update tail event if the list has any events. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n if (_.size(events)) return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));\n return this.on(events, void 0, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.stopListening, this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, cb, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n attrs = _.defaults({}, attrs, _.result(this, 'defaults'));\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n this.id = this.get(this.idAttribute);\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n }\n return _.size(changed) ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else {\n if (!this._validate(attrs, options)) return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update');\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.defaults({validate: true}, options));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = { keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1 };\n\n // Mix in each Underscore method as a proxy to `Model#attributes`.\n addUnderscoreMethods(Model, modelMethods, 'attributes');\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n for (var i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : _.clone(models);\n var removed = this._removeModels(models, options);\n if (!options.silent && removed) this.trigger('update', this, options);\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.defaults({}, options, setOptions);\n if (options.parse && !this._isModel(models)) models = this.parse(models, options);\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && (at == null) && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model;\n for (var i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length != set.length || _.some(this.models, function(model, index) {\n return model !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length) this.trigger('update', this, options);\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id.\n get: function(obj) {\n if (obj == null) return void 0;\n var id = this.modelId(this._isModel(obj) ? obj.attributes : obj);\n return this._byId[obj] || this._byId[id] || this._byId[obj.cid];\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = _.bind(comparator, this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return _.invoke(this.models, 'get', attr);\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(model, resp, callbackOpts) {\n if (wait) collection.add(model, callbackOpts);\n if (success) success.call(callbackOpts.context, model, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function (attrs) {\n return attrs[this.model.prototype.idAttribute || 'id'];\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed.length ? removed : false;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function (model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'change') {\n var prevId = this.modelId(model.previousAttributes());\n var id = this.modelId(model.attributes);\n if (prevId !== id) {\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = { forEach: 3, each: 3, map: 3, collect: 3, reduce: 4,\n foldl: 4, inject: 4, reduceRight: 4, foldr: 4, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n addUnderscoreMethods(Collection, collectionMethods, 'models');\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], _.bind(method, this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = _.bind(this.checkUrl, this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var root = path.slice(0, this.root.length - 1) + '/';\n return root === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var root = this.root.slice(0, -1) || '/';\n this.location.replace(root + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function (eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function (eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var root = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n root = root.slice(0, -1) || '/';\n }\n var url = root + fragment;\n\n // Strip the hash and decode for matching.\n fragment = this.decodeFragment(fragment.replace(pathStripper, ''));\n\n if (this.fragment === fragment) return;\n this.fragment = fragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && (fragment !== this.getHash(this.iframe.contentWindow))) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent` constructor function.\n var Surrogate = function(){ this.constructor = child; };\n Surrogate.prototype = parent.prototype;\n child.prototype = new Surrogate;\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) _.extend(child.prototype, protoProps);\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n\n}));\n","var $ = require('jquery');\nvar _ = require('underscore');\nvar Backbone = require('backbone');\n\n/**\n * Base Model for all CartoDB model.\n * DO NOT USE Backbone.Model directly\n */\nvar Model = Backbone.Model.extend({\n\n initialize: function (options) {\n _.bindAll(this, 'fetch', 'save', 'retrigger');\n return Backbone.Model.prototype.initialize.call(this, options);\n },\n /**\n * We are redefining fetch to be able to trigger an event when the ajax call ends, no matter if there's\n * a change in the data or not. Why don't backbone does this by default? ahh, my friend, who knows.\n * @method fetch\n * @param args {Object}\n */\n fetch: function (args) {\n var self = this;\n // var date = new Date();\n this.trigger('loadModelStarted');\n $.when(Backbone.Model.prototype.fetch.call(this, args)).done(function (ev) {\n self.trigger('loadModelCompleted', ev, self);\n // var dateComplete = new Date()\n // console.log('completed in '+(dateComplete - date));\n }).fail(function (ev) {\n self.trigger('loadModelFailed', ev, self);\n });\n },\n /**\n * Changes the attribute used as Id\n * @method setIdAttribute\n * @param attr {String}\n */\n setIdAttribute: function (attr) {\n this.idAttribute = attr;\n },\n /**\n * Listen for an event on another object and triggers on itself, with the same name or a new one\n * @method retrigger\n * @param ev {String} event who triggers the action\n * @param obj {Object} object where the event happens\n * @param obj {Object} [optional] name of the retriggered event\n * @todo [xabel]: This method is repeated here and in the base view definition. There's should be a way to make it unique\n */\n retrigger: function (ev, obj, retrigEvent) {\n if (!retrigEvent) {\n retrigEvent = ev;\n }\n var self = this;\n obj.bind && obj.bind(ev, function () {\n self.trigger(retrigEvent);\n }, self);\n },\n\n /**\n * We need to override backbone save method to be able to introduce new kind of triggers that\n * for some reason are not present in the original library. Because you know, it would be nice\n * to be able to differenciate \"a model has been updated\" of \"a model is being saved\".\n * TODO: remove jquery from here\n * @param {object} opt1\n * @param {object} opt2\n * @return {$.Deferred}\n */\n save: function (opt1, opt2) {\n var self = this;\n if (!opt2 || !opt2.silent) this.trigger('saving');\n var promise = Backbone.Model.prototype.save.apply(this, arguments);\n $.when(promise).done(function () {\n if (!opt2 || !opt2.silent) self.trigger('saved');\n }).fail(function () {\n if (!opt2 || !opt2.silent) self.trigger('errorSaving');\n });\n return promise;\n }\n});\n\nmodule.exports = Model;\n","var CartoError = require('./carto-error');\n\n/**\n * Utility to build a cartoError related to validation errors.\n * @constructor\n *\n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoValidationError (type, message, opts) {\n return new CartoError({\n origin: 'validation',\n type: type,\n message: message\n }, opts);\n}\n\nmodule.exports = CartoValidationError;\n","var errorExtender = require('./carto-error-extender');\nvar errorTracker = require('./error-tracker');\n\nvar UNEXPECTED_ERROR = 'unexpected error';\nvar GENERIC_ORIGIN = 'generic';\n\n/**\n * Build a cartoError from a generic error.\n * @constructor\n *\n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoError (error, opts) {\n opts = opts || {};\n var cartoError = Object.create(Error.prototype);\n cartoError.message = (error && error.message) || UNEXPECTED_ERROR;\n cartoError.origin = (error && error.origin) || GENERIC_ORIGIN;\n cartoError.type = (error && error.type) || '';\n\n if (_isWindshaftError(error)) {\n cartoError = _transformWindshaftError(error, opts.layers, opts.analysis);\n }\n\n if (_isAjaxError(error)) {\n cartoError = _transformAjaxError(error);\n }\n\n // Add extra fields\n var extraFields = errorExtender.getExtraFields(cartoError);\n cartoError.message = extraFields.friendlyMessage;\n cartoError.errorCode = extraFields.errorCode;\n\n // Final properties\n cartoError.name = 'CartoError';\n cartoError.stack = (new Error()).stack;\n cartoError.originalError = error;\n\n errorTracker.track(cartoError);\n\n return cartoError;\n}\n\n// Windshaft should have been parsed already\nfunction _isWindshaftError (error) {\n return error && error.origin === 'windshaft';\n}\n\nfunction _isAjaxError (error) {\n return error && error.responseText;\n}\n\nfunction _transformWindshaftError (error, layers, analysis) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = error.message;\n cartoError.origin = error.origin;\n cartoError.type = error.type;\n\n if (error.type === 'layer' && layers) {\n cartoError.layer = layers.findById(error.layerId);\n }\n if (error.type === 'analysis') {\n if (analysis) {\n cartoError.source = analysis;\n cartoError.sourceId = analysis.getId && analysis.getId();\n }\n if (error.analysisId) {\n cartoError.sourceId = error.analysisId;\n }\n }\n\n return cartoError;\n}\n\nfunction _transformAjaxError (error) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = _handleAjaxResponse(error);\n cartoError.origin = 'ajax';\n cartoError.type = error.statusText;\n\n return cartoError;\n}\n\nfunction _handleAjaxResponse (error) {\n var errorMessage = '';\n\n try {\n var parsedError = JSON.parse(error.responseText);\n errorMessage = parsedError.errors[0];\n } catch (exc) {\n // Swallow parse error\n }\n return errorMessage || UNEXPECTED_ERROR;\n}\n\nmodule.exports = CartoError;\n\n/**\n * Represents an error in the carto library.\n *\n * Some actions like adding a layer to a map are asynchronous and require a server round trip.\n * If some error happens during this communnication with the server, an error with a `CartoError` object\n * will be fired.\n *\n * CartoErrors can be obtained by listening to the client 'error' `client.on('error', callback);`,\n * through any async action or by listening to 'error' events on particular objects (eg: dataviews).\n *\n * Promises are also rejected with a CartoError.\n * @example\n * // Listen when a layer has been added or there has been an error.\n * client.addLayer(layerWithErrors)\n * .then(()=> console.log('Layer added succesfully'))\n * .catch(cartoError => console.error(cartoError.message))\n * @example\n * // Events also will be registered here when the map changes.\n * client.on('success', function () {\n * console.log('Client reloaded');\n * });\n *\n * client.on('error', function (clientError) {\n * console.error(clientError.message);\n * });\n * @example\n * // Listen when there is an error in a dataview\n * dataview.on('error', function (error) {\n * console.error(error.message);\n * });\n *\n * @typedef {object} CartoError\n * @property {string} message - A short error description\n * @property {string} name - The name of the error \"CartoError\"\n * @property {string} origin - Where the error was originated: 'windshaft' | 'ajax' | 'validation'\n * @property {object} originalError - An object containing the internal/original error\n * @property {object} stack - Error stack trace\n * @property {string} type - Error type\n * @property {string} sourceId - Available if the error is related to a source object. Indicates the ID of the source that has a problem.\n * @api\n */\n","var _ = require('underscore');\n/**\n * Constants module for dataviews\n */\n\n/**\n * Enum for operation values.\n *\n * @enum {string} carto.operation\n * @readonly\n * @memberof carto\n * @api\n */\nvar operation = {\n /** Number of elements */\n COUNT: 'count',\n /** Sum */\n SUM: 'sum',\n /** Average */\n AVG: 'avg',\n /** Maximum */\n MAX: 'max',\n /** Minimum */\n MIN: 'min'\n};\n\nfunction isValidOperation (op) {\n return _.contains(operation, op);\n}\n\n/**\n * Enum for dataview status values.\n *\n * @enum {string} carto.dataview.status\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar status = {\n /** Not fetched with the server */\n NOT_LOADED: 'notLoaded',\n /** Fetching with the server */\n LOADING: 'loading',\n /** Fetch completed */\n LOADED: 'loaded',\n /** Error in fetch */\n ERROR: 'error'\n};\n\n/**\n * Enum for dataview time aggregations.\n *\n * @enum {string} carto.dataview.timeAggregation\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar timeAggregation = {\n /** Auto */\n AUTO: 'auto',\n /** Millennium */\n MILLENNIUM: 'millennium',\n /** Century */\n CENTURY: 'century',\n /** Decade */\n DECADE: 'decade',\n /** Year */\n YEAR: 'year',\n /** Quarter */\n QUARTER: 'quarter',\n /** Month */\n MONTH: 'month',\n /** Week */\n WEEK: 'week',\n /** Day */\n DAY: 'day',\n /** Hour */\n HOUR: 'hour',\n /** Minute */\n MINUTE: 'minute'\n};\n\nfunction isValidTimeAggregation (agg) {\n return _.contains(timeAggregation, agg);\n}\n\n/**\n * ATTRIBUTION constant\n *\n * © OpenStreetMap contributors, © CARTO\n *\n * @type {string}\n * @constant\n * @memberof carto\n * @api\n */\nvar ATTRIBUTION = '© OpenStreetMap contributors, © CARTO';\n\nmodule.exports = {\n operation: operation,\n status: status,\n timeAggregation: timeAggregation,\n isValidOperation: isValidOperation,\n isValidTimeAggregation: isValidTimeAggregation,\n ATTRIBUTION: ATTRIBUTION\n};\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar CartoValidationError = require('../error-handling/carto-validation-error');\n\n/**\n * Base filter object\n *\n * @constructor\n * @abstract\n * @memberof carto.filter\n * @api\n */\nfunction Base () {}\n\n_.extend(Base.prototype, Backbone.Events);\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('filter', code);\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when bounds have changed. Handler gets a parameter with the new bounds.\n *\n * @event boundsChanged\n * @type {carto.filter.Bounds}\n * @api\n */\n\n/**\n * Fired when circle filter has changed. Handler gets a parameter with the new circle.\n *\n * @event circleChanged\n * @type {carto.filter.CircleData}\n * @api\n */\n\n/**\n * Fired when polygon filter has changed. Handler gets a parameter with the new polygon.\n *\n * @event polygonChanged\n * @type {carto.filter.PolygonData}\n * @api\n */\n","var _ = require('underscore');\n\nvar util = {};\n\nutil.isCORSSupported = function () {\n return 'withCredentials' in new XMLHttpRequest();\n};\n\nutil.array2hex = function (byteArr) {\n var encoded = [];\n for (var i = 0; i < byteArr.length; ++i) {\n encoded.push(String.fromCharCode(byteArr[i] + 128));\n }\n return util.btoa(encoded.join(''));\n};\n\nutil.btoa = function (data) {\n if (typeof window['btoa'] === 'function') {\n return util.encodeBase64Native(data);\n }\n\n return util.encodeBase64(data);\n};\n\nutil.encodeBase64Native = function (input) {\n return btoa(input);\n};\n\n// ie7 btoa,\n// from http://phpjs.org/functions/base64_encode/\nutil.encodeBase64 = function (data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits;\n var i = 0;\n var ac = 0;\n var enc = '';\n var tmpArr = [];\n\n if (!data) {\n return data;\n }\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = (o1 << 16) | (o2 << 8) | o3;\n\n h1 = (bits >> 18) & 0x3f;\n h2 = (bits >> 12) & 0x3f;\n h3 = (bits >> 6) & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmpArr[ac++] =\n b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmpArr.join('');\n\n var r = data.length % 3;\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n};\n\nutil.uniqueCallbackName = function (str) {\n util._callback_c = util._callback_c || 0;\n ++util._callback_c;\n return util.crc32(str) + '_' + util._callback_c;\n};\n\nutil.crc32 = function (str) {\n var crcTable = util._crcTable || (util._crcTable = util._makeCRCTable());\n var crc = 0 ^ -1;\n\n for (var i = 0, l = str.length; i < l; ++i) {\n crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nutil._makeCRCTable = function () {\n var c;\n var crcTable = [];\n for (var n = 0; n < 256; ++n) {\n c = n;\n for (var k = 0; k < 8; ++k) {\n c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n};\n\nutil._inferBrowser = function (ua) {\n var browser = {};\n ua =\n ua || (typeof window !== 'undefined' && window.navigator.userAgent) || '';\n function detectIE () {\n var msie = ua.indexOf('MSIE ');\n var trident = ua.indexOf('Trident/');\n if (msie > -1 || trident > -1) return true;\n return false;\n }\n\n function getIEVersion () {\n if (!document.compatMode) return 5;\n if (!window.XMLHttpRequest) return 6;\n if (!document.querySelector) return 7;\n if (!document.addEventListener) return 8;\n if (!window.atob) return 9;\n if (document.all) return 10;\n else return 11;\n }\n\n if (detectIE()) {\n browser.ie = { version: getIEVersion() };\n } else if (ua.indexOf('Edge/') > -1) browser.edge = ua;\n else if (ua.indexOf('Chrome') > -1) browser.chrome = ua;\n else if (ua.indexOf('Firefox') > -1) browser.firefox = ua;\n else if (ua.indexOf('Opera') > -1) browser.opera = ua;\n else if (ua.indexOf('Safari') > -1) browser.safari = ua;\n return browser;\n};\n\nutil.browser = util._inferBrowser();\n\nutil.isMobileDevice = function () {\n return /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n};\n\nutil.supportsTouch = function () {\n return 'ontouchstart' in window || navigator.msMaxTouchPoints;\n};\n\nvar webGLSupportedAndEnabled = null;\nutil.isWebGLSupported = function () {\n if (webGLSupportedAndEnabled === null) {\n var canvas = document.createElement('canvas');\n webGLSupportedAndEnabled =\n !!window.WebGLRenderingContext &&\n !!(canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));\n }\n return webGLSupportedAndEnabled;\n};\n\n/**\n * Returns true if the string ends with provided suffix\n */\nutil.endsWith = function (str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n};\n\nutil.checkRequiredOpts = function (actualOpts, requiredOpts, from) {\n _.each(requiredOpts, function (item) {\n if (_.isUndefined(actualOpts[item])) {\n throw new Error(\n item + ' is required' + (from ? ' to initialize ' + from : '')\n );\n }\n });\n};\n\n/**\n * Checks that the correct Leaflet version is loaded\n */\nutil.isLeafletLoaded = function () {\n if (!window.L) {\n throw new Error('Leaflet is required');\n }\n if (window.L.version < '1.0.0') {\n throw new Error('Leaflet +1.0 is required');\n }\n};\n\n/**\n * Checks that the correct Google Maps version is loaded\n */\nutil.isGoogleMapsLoaded = function () {\n if (!window.google) {\n throw new Error('Google Maps is required');\n }\n if (!window.google.maps) {\n throw new Error('Google Maps is required');\n }\n if (window.google.maps.version < '3.31.0') {\n throw new Error('Google Maps version should be >= 3.31');\n }\n};\n\nmodule.exports = util;\n","/**\n * Types of spatial filters\n */\nvar types = {\n BBOX: 'bbox',\n CIRCLE: 'circle',\n POLYGON: 'polygon'\n};\n\nmodule.exports = types;\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar Model = require('../core/model');\nvar util = require('../core/util');\n\nvar REQUIRED_OPTS = [\n 'camshaftReference',\n 'engine'\n];\n\nvar STATUS = {\n PENDING: 'pending',\n WAITING: 'waiting',\n RUNNING: 'running',\n FAILED: 'failed',\n READY: 'ready'\n};\n\nvar AnalysisModel = Model.extend({\n\n initialize: function (attrs, opts) {\n opts = opts || {};\n util.checkRequiredOpts(opts, REQUIRED_OPTS, 'AnalysisModel');\n\n this._camshaftReference = opts.camshaftReference;\n this._engine = opts.engine;\n\n this._initBinds();\n\n // A hash that tracks which models (layers / dataviews) have\n // this analysis model as their \"source\"\n this._referencedBy = {};\n },\n\n url: function () {\n var url = this.get('url');\n if (url) {\n if (this.get('apiKey')) {\n url += '?api_key=' + this.get('apiKey');\n } else if (this.get('authToken')) {\n var authToken = this.get('authToken');\n if (authToken instanceof Array) {\n var tokens = _.map(authToken, function (token) {\n return 'auth_token[]=' + token;\n });\n url += '?' + tokens.join('&');\n } else {\n url += '?auth_token=' + authToken;\n }\n }\n return url;\n }\n },\n\n setOk: function () {\n this.unset('error');\n },\n\n setError: function (error) {\n this.set({\n error: error,\n status: STATUS.FAILED\n });\n },\n\n _initBinds: function () {\n this.bind('change:type', function () {\n this.unbind(null, null, this);\n this._initBinds();\n this._reload();\n }, this);\n\n _.each(this.getParamNames(), function (paramName) {\n this.bind('change:' + paramName, this._reload, this);\n }, this);\n\n this.bind('change:status', function () {\n // If the status changed from any other status to \"ready\"\n // and this analysis is the \"source\" of any layer or dataview,\n // vis has to be reloaded.\n if (this._hadStatus() && this.isReady() && this.isSourceOfAnyModel()) {\n this._reload();\n }\n }, this);\n },\n\n _hadStatus: function () {\n return this.previous('status');\n },\n\n _reload: function () {\n this._engine.reload({\n error: this._onMapReloadError.bind(this)\n });\n },\n\n _onMapReloadError: function () {\n this.set('status', STATUS.FAILED);\n },\n\n remove: function () {\n this.trigger('destroy', this);\n this.stopListening();\n },\n\n findAnalysisById: function (analysisId) {\n if (this.get('id') === analysisId) {\n return this;\n }\n var sources = _.chain(this._getSourceNames())\n .map(function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n return source.findAnalysisById(analysisId);\n }\n }, this)\n .compact()\n .value();\n\n return sources[0];\n },\n\n _getSourceNames: function () {\n return this._camshaftReference.getSourceNamesForAnalysisType(this.get('type'));\n },\n\n isDone: function () {\n return this._hasStatus([ STATUS.READY, STATUS.FAILED ]);\n },\n\n isLoading: function () {\n return this._hasStatus([ STATUS.PENDING, STATUS.WAITING, STATUS.RUNNING ]);\n },\n\n isReady: function () {\n return this._hasStatus(STATUS.READY);\n },\n\n isFailed: function () {\n return this._hasStatus(STATUS.FAILED);\n },\n\n _hasStatus: function (statuses) {\n if (!_.isArray(statuses)) {\n statuses = [ statuses ];\n }\n return _.contains(statuses, this._getStatus());\n },\n\n _getStatus: function () {\n return this.get('status');\n },\n\n toJSON: function () {\n var json = _.pick(this.attributes, 'id', 'type');\n json.params = _.pick(this.attributes, this.getParamNames());\n var sourceNames = this._getSourceNames();\n _.each(sourceNames, function (sourceName) {\n var source = {};\n var sourceInfo = this.get(sourceName);\n if (sourceInfo) {\n source[sourceName] = sourceInfo.toJSON();\n _.extend(json.params, source);\n }\n }, this);\n\n return json;\n },\n\n getParamNames: function () {\n return this._camshaftReference.getParamNamesForAnalysisType(this.get('type'));\n },\n\n /**\n * Return an Array with the complete node list for this analysis.\n */\n getNodes: function () {\n // Add current node to the list\n var nodes = [this];\n // Recursively iterate through the inputs ( source nodes have no inputs )\n if (this.get('type') !== 'source') {\n _.forEach(this._getSourceNames(), function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n nodes = nodes.concat(source.getNodes());\n }\n }, this);\n }\n return nodes;\n },\n\n /**\n * Return a Collection with the complete node list for this analysis.\n */\n getNodesCollection: function () {\n return new Backbone.Collection(this.getNodes());\n },\n\n /**\n * Compare two analysisModels.\n */\n equals: function (analysisModel) {\n if (!(analysisModel instanceof AnalysisModel)) {\n return false;\n }\n // Since all analysis are created using the analysisFactory different ids ensure different nodes.\n return this.get('id') === analysisModel.get('id');\n },\n\n markAsSourceOf: function (model) {\n this._referencedBy[model.cid] = true;\n },\n\n isSourceOfAnyModel: function () {\n return Object.keys(this._referencedBy).length > 0;\n },\n\n isSourceOf: function (model) {\n return !!this._referencedBy[model.cid];\n },\n\n unmarkAsSourceOf: function (model) {\n delete this._referencedBy[model.cid];\n }\n}, {\n STATUS: STATUS\n});\n\nmodule.exports = AnalysisModel;\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar status = require('../constants').status;\nvar SourceBase = require('../source/base');\nvar FilterBase = require('../filter/base');\nvar SQLFilterBase = require('../filter/base-sql');\nvar SpatialFilterTypes = require('../filter/spatial-filter-types');\nvar CartoError = require('../error-handling/carto-error');\nvar CartoValidationError = require('../error-handling/carto-validation-error');\n\n/**\n * Base class for dataview objects.\n *\n * Dataviews are a way to extract data from a CARTO account in predefined ways\n * (eg: a list of categories, the result of a formula operation, etc.).\n *\n * **This object should not be used directly**\n *\n * The data used in a dataviews cames from a {@link carto.source.Base|source} that might change\n * due to different reasons (eg: SQL query changed).\n *\n * When dataview data changes the dataview will trigger events to notify subscribers when new data is available.\n *\n * @example\n * // Keep your widget data sync. Remember each dataview has his own data format.\n * dataview.on('dataChanged', newData => {\n * renderWidget(newData);\n * })\n *\n * @constructor\n * @abstract\n * @memberof carto.dataview\n * @fires dataChanged\n * @fires columnChanged\n * @fires statusChanged\n * @fires error\n * @api\n */\nfunction Base () { }\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * Return the current dataview status.\n *\n * @return {carto.dataview.status} Current dataview status\n * @api\n */\nBase.prototype.getStatus = function () {\n return this._status;\n};\n\n/**\n * Return true is the current status is loading.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoading = function () {\n return this._status === status.LOADING;\n};\n\n/**\n * Return true is the current status is loaded.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoaded = function () {\n return this._status === status.LOADED;\n};\n\n/**\n * Return true is the current status is error.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.hasError = function () {\n return this._status === status.ERROR;\n};\n\n/**\n * Enable the dataview. When enabled, a dataview fetches new data\n * when the map changes (changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.enable = function () {\n return this._setEnabled(true);\n};\n\n/**\n * Disable the dataview. This stops the dataview from fetching new\n * data when there is a map change (like changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.disable = function () {\n return this._setEnabled(false);\n};\n\n/**\n * Return true if the dataview is enabled.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isEnabled = function () {\n return this._enabled;\n};\n\n/**\n * Return the current source where the dataview gets the data from.\n *\n * @return {carto.source.Base} Current source object\n * @api\n */\nBase.prototype.getSource = function () {\n return this._source;\n};\n\n/**\n * Set the dataview column.\n *\n * @param {string} column\n * @fires columnChanged\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.setColumn = function (column) {\n this._checkColumn(column);\n this._column = column;\n if (this._internalModel) {\n this._internalModel.set('column', this._column);\n }\n return this;\n};\n\n/**\n * Return the current dataview column where the dataview is applied.\n *\n * @return {string} Current dataview column\n * @api\n */\nBase.prototype.getColumn = function () {\n return this._column;\n};\n\n/**\n * Add a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._checkFilter(filter);\n this._addSpatialFilter(filter);\n return this;\n};\n\n/**\n * Remove a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._checkFilter(filter);\n this._removeSpatialFilter(filter);\n return this;\n};\n\n/**\n * Check if a {@link carto.filter.Base|filter} exists in the dataview.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.hasFilter = function (filter) {\n this._checkFilter(filter);\n var hasBBoxFilter = (filter === this._boundingBoxFilter) &&\n (this._internalModel && this._internalModel.get('sync_on_bbox_change'));\n\n var hasCircleFilter = (filter === this._circleFilter) &&\n (this._internalModel && this._internalModel.get('sync_on_circle_change'));\n\n var hasPolygonFilter = (filter === this._polygonFilter) &&\n (this._internalModel && this._internalModel.get('sync_on_polygon_change'));\n\n return hasBBoxFilter || hasCircleFilter || hasPolygonFilter;\n};\n\nBase.prototype.getData = function () {\n throw new Error('getData must be implemented by the particular dataview.');\n};\n\n// Protected methods\n\nBase.prototype.DEFAULTS = {};\n\n/**\n * Initialize dataview.\n *\n * @param {carto.source.Base} source - The source where the dataview will fetch the data\n * @param {string} column - The column name to get the data\n * @param {object} options - It depends on the instance\n */\nBase.prototype._initialize = function (source, column, options) {\n options = _.defaults(options || {}, this.DEFAULTS);\n\n this._checkSource(source);\n this._checkColumn(column);\n this._checkOptions(options);\n\n this._source = source;\n this._column = column;\n this._options = options;\n\n this._status = status.NOT_LOADED;\n this._enabled = true;\n this._boundingBoxFilter = null;\n};\n\nBase.prototype._checkSource = function (source) {\n if (!(source instanceof SourceBase)) {\n throw this._getValidationError('sourceRequired');\n }\n};\n\nBase.prototype._checkColumn = function (column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n};\n\nBase.prototype._checkOptions = function (options) {\n throw new Error('_checkOptions must be implemented by the particular dataview.');\n};\n\nBase.prototype._checkFilter = function (filter) {\n if (!(filter instanceof FilterBase) || filter instanceof SQLFilterBase) {\n throw this._getValidationError('filterRequired');\n }\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular dataview.');\n};\n\nBase.prototype._setEnabled = function (enabled) {\n this._enabled = enabled;\n if (this._internalModel) {\n this._internalModel.set('enabled', enabled);\n }\n return this;\n};\n\nBase.prototype._listenToInternalModelSharedEvents = function () {\n if (this._internalModel) {\n this.listenTo(this._internalModel, 'change:data', this._onDataChanged);\n this.listenTo(this._internalModel, 'change:column', this._onColumnChanged);\n this.listenTo(this._internalModel, 'loading', this._onStatusLoading);\n this.listenTo(this._internalModel, 'loaded', this._onStatusLoaded);\n this.listenTo(this._internalModel, 'statusError', this._onStatusError);\n }\n};\n\nBase.prototype._onDataChanged = function () {\n this.trigger('dataChanged', this.getData());\n};\n\nBase.prototype._onColumnChanged = function () {\n if (this._internalModel) {\n this._column = this._internalModel.get('column');\n }\n this.trigger('columnChanged', this._column);\n};\n\nBase.prototype._onStatusLoading = function () {\n this._status = status.LOADING;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusLoaded = function () {\n this._status = status.LOADED;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusError = function (model, error) {\n this._status = status.ERROR;\n this.trigger('statusChanged', this._status, error);\n this._triggerError(this, error);\n};\n\nBase.prototype._changeProperty = function (key, value, internalKey) {\n var prevValue = this['_' + key];\n this['_' + key] = value;\n if (prevValue === value) {\n return;\n }\n this._triggerChange(key, value);\n if (this._internalModel) {\n this._internalModel.set(internalKey || key, value);\n }\n};\n\nBase.prototype._changeProperties = function (properties) {\n _.each(properties, (value, key) => {\n const prevValue = this[`_${key}`];\n\n if (prevValue !== value) {\n this[`_${key}`] = value;\n this._triggerChange(key, value);\n }\n });\n\n if (this._internalModel) {\n this._internalModel.set(properties);\n }\n};\n\nBase.prototype._triggerChange = function (key, value) {\n this.trigger(key + 'Changed', value);\n};\n\n/**\n * Fire a CartoError event from a internalDataviewError.\n */\nBase.prototype._triggerError = function (model, internalDataviewError) {\n this.trigger('error', new CartoError(internalDataviewError));\n};\n\nBase.prototype._addSpatialFilter = function (spatialFilter) {\n switch (spatialFilter.type) {\n case SpatialFilterTypes.BBOX:\n this._addBoundingBoxFilter(spatialFilter);\n break;\n case SpatialFilterTypes.CIRCLE:\n this._addCircleFilter(spatialFilter);\n break;\n case SpatialFilterTypes.POLYGON:\n this._addPolygonFilter(spatialFilter);\n break;\n default:\n throw new Error('The filter is not a valid spatial filter.');\n }\n};\n\nBase.prototype._removeSpatialFilter = function (spatialFilter) {\n switch (spatialFilter.type) {\n case SpatialFilterTypes.BBOX:\n if (spatialFilter === this._boundingBoxFilter) {\n this._removeBoundingBoxFilter();\n }\n break;\n case SpatialFilterTypes.CIRCLE:\n if (spatialFilter === this._circleFilter) {\n this._removeCircleFilter();\n }\n break;\n case SpatialFilterTypes.POLYGON:\n if (spatialFilter === this._polygonFilter) {\n this._removePolygonFilter();\n }\n break;\n default:\n throw new Error('The filter is not a valid spatial filter.');\n }\n};\n\nBase.prototype._addBoundingBoxFilter = function (bboxFilter) {\n if (bboxFilter === this._boundingBoxFilter) {\n return;\n }\n\n this._boundingBoxFilter = bboxFilter;\n if (this._internalModel) {\n this._internalModel.addBBoxFilter(this._boundingBoxFilter.$getInternalModel());\n this._internalModel.set('sync_on_bbox_change', true);\n }\n};\n\nBase.prototype._removeBoundingBoxFilter = function () {\n this._boundingBoxFilter = null;\n if (this._internalModel) {\n this._internalModel.removeBBoxFilter();\n this._internalModel.set('sync_on_bbox_change', false);\n }\n};\n\nBase.prototype._addCircleFilter = function (circleFilter) {\n if (circleFilter === this._circleFilter) {\n return;\n }\n\n this._circleFilter = circleFilter;\n if (this._internalModel) {\n this._internalModel.addCircleFilter(this._circleFilter.$getInternalModel());\n this._internalModel.set('sync_on_circle_change', true);\n }\n};\n\nBase.prototype._removeCircleFilter = function () {\n this._circleFilter = null;\n if (this._internalModel) {\n this._internalModel.removeCircleFilter();\n this._internalModel.set('sync_on_circle_change', false);\n }\n};\n\nBase.prototype._addPolygonFilter = function (polygonFilter) {\n if (polygonFilter === this._polygonFilter) {\n return;\n }\n\n this._polygonFilter = polygonFilter;\n if (this._internalModel) {\n this._internalModel.addPolygonFilter(this._polygonFilter.$getInternalModel());\n this._internalModel.set('sync_on_polygon_change', true);\n }\n};\n\nBase.prototype._removePolygonFilter = function () {\n this._polygonFilter = null;\n if (this._internalModel) {\n this._internalModel.removePolygonFilter();\n this._internalModel.set('sync_on_polygon_change', false);\n }\n};\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('dataview', code);\n};\n\n// Internal public methods\n\nBase.prototype.$setEngine = function (engine) {\n this._source.$setEngine(engine);\n if (!this._internalModel) {\n this._createInternalModel(engine);\n this._listenToInternalModelSharedEvents();\n }\n};\n\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when the column name has changed. Handler gets a parameter with the new column name.\n *\n * @event columnChanged\n * @type {string}\n * @api\n */\n\n/**\n * Fired when the status has changed. Handler gets a parameter with the new status.\n *\n * Contains a single argument with the new status.\n *\n * @event statusChanged\n * @type {carto.dataview.status}\n * @api\n */\n\n/**\n * Fired when the data has changed. Handler gets an object with specific data for the type\n * of dataview that triggered the event.\n *\n * @event dataChanged\n * @type {carto.dataview.CategoryData|carto.dataview.FormulaData|carto.dataview.HistogramData|carto.dataview.TimeSeriesData}\n * @api\n */\n","const _ = require('underscore');\nconst Base = require('./base');\nconst getObjectValue = require('../../../../src/util/get-object-value');\n\nconst ALLOWED_OPTIONS = ['includeNull'];\nconst DEFAULT_JOIN_OPERATOR = 'AND';\n\n/**\n * SQL Filter\n *\n * A SQL filter is the base for all the SQL filters such as the Category Filter or the Range filter\n *\n * @param {string} column - The filtering will be performed against this column\n * @param {object} [options={}]\n * @param {boolean} [options.includeNull] - Include null rows when returning data\n *\n * @class SQLBase\n * @extends carto.filter.Base\n * @memberof carto.filter\n */\nclass SQLBase extends Base {\n constructor (column, options = {}) {\n super();\n\n this._checkColumn(column);\n this._checkOptions(options);\n\n this._column = column;\n this._filters = {};\n this._options = options;\n }\n\n /**\n * Set any of the filter conditions, overwriting the previous one.\n * @param {string} filterType - The filter type that you want to set\n * @param {string} filterValue - The value of the filter\n */\n set (filterType, filterValue) {\n if (!filterType || !filterValue || !_.isString(filterType)) {\n return;\n }\n\n const newFilter = { [filterType]: filterValue };\n\n this._checkFilters(newFilter);\n this._filters[filterType] = filterValue;\n\n this.trigger('change:filters', newFilter);\n }\n\n /**\n * Set the filter conditions, overriding all the previous ones.\n * @param {object} filters - The object containing all the new filters to apply.\n */\n setFilters (filters) {\n if (!filters || !_.isObject(filters)) {\n return;\n }\n\n this._checkFilters(filters);\n this._filters = filters;\n\n this.trigger('change:filters', filters);\n }\n\n /**\n * Remove all conditions from current filter\n */\n resetFilters () {\n this.setFilters({});\n }\n\n $getSQL () {\n const filters = Object.keys(this._filters);\n let sql = filters\n .map(filterType => this._interpolateFilter(filterType, this._filters[filterType]))\n .filter(filter => Boolean(filter))\n .join(` ${DEFAULT_JOIN_OPERATOR} `);\n\n if (this._options.includeNull) {\n this._includeNullInQuery(sql);\n }\n\n if (filters.length > 1) {\n return `(${sql})`;\n }\n\n return sql;\n }\n\n _checkColumn (column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n }\n\n _checkFilters (filters) {\n Object.keys(filters).forEach(filter => {\n const isFilterValid = _.contains(this.ALLOWED_FILTERS, filter);\n\n if (!isFilterValid) {\n throw this._getValidationError(`invalidFilter${filter}`);\n }\n\n const parameters = this.PARAMETER_SPECIFICATION[filter].parameters;\n const haveCorrectType = parameters.every(\n parameter => {\n const parameterValue = getObjectValue(filters, parameter.name);\n return parameter.allowedTypes.some(type => parameterIsOfType(type, parameterValue));\n }\n );\n\n if (!haveCorrectType) {\n throw this._getValidationError(`invalidParameterType${filter}`);\n }\n });\n }\n\n _checkOptions (options) {\n Object.keys(options).forEach(option => {\n const isOptionValid = _.contains(ALLOWED_OPTIONS, option);\n\n if (!isOptionValid) {\n throw this._getValidationError(`invalidOption${option}`);\n }\n });\n }\n\n _convertValueToSQLString (filterValue) {\n if (_.isDate(filterValue)) {\n return `'${filterValue.toISOString()}'`;\n }\n\n if (_.isArray(filterValue)) {\n return filterValue\n .map(value => this._convertValueToSQLString(value))\n .join(',');\n }\n\n if (_.isObject(filterValue)) {\n Object\n .keys(filterValue)\n .forEach(key => {\n if (key === 'query') {\n return;\n }\n\n filterValue[key] = this._convertValueToSQLString(filterValue[key]);\n });\n\n return filterValue;\n }\n\n if (_.isNumber(filterValue)) {\n return filterValue;\n }\n\n return `'${normalizeString(filterValue.toString())}'`;\n }\n\n _interpolateFilter (filterType, filterValues) {\n const sqlString = _.template(this.SQL_TEMPLATES[filterType]);\n const value = this._convertValueToSQLString(filterValues);\n\n return sqlString({ column: this._column, value });\n }\n\n _includeNullInQuery (sql) {\n const filters = Object.keys(this._filters);\n\n if (filters.length > 1) {\n sql = `(${sql})`;\n }\n\n return `(${sql} OR ${this._column} IS NULL)`;\n }\n}\n\nconst parameterIsOfType = function (parameterType, parameterValue) {\n return _[`is${parameterType}`](parameterValue);\n};\n\nconst normalizeString = function (value) {\n return value.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"').replace(/'/g, \"''\");\n};\n\nmodule.exports = SQLBase;\n","const _ = require('underscore');\nconst Backbone = require('backbone');\nconst CartoError = require('../error-handling/carto-error');\nconst FiltersCollection = require('../filter/filters-collection');\nconst EVENTS = require('../events');\n\n/**\n * Base data source object.\n *\n * The methods listed in the {@link carto.source.Base|source.Base} object are available in all source objects.\n *\n * Use a source to reference the data used in a {@link carto.dataview.Base|dataview} or a {@link carto.layer.Base|layer}.\n *\n * {@link carto.source.Base} should not be used directly use {@link carto.source.Dataset} or {@link carto.source.SQL} instead.\n *\n * @constructor\n * @fires error\n * @abstract\n * @memberof carto.source\n * @api\n */\nfunction Base () {\n this._id = Base.$generateId();\n this._hasFiltersApplied = false;\n this._appliedFilters = new FiltersCollection();\n}\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * The instance id will be autogenerated by incrementing this variable.\n */\nBase.$nextId = 0;\n\n/**\n * Static funciton used internally to autogenerate source ids.\n */\nBase.$generateId = function () {\n return 'S' + ++Base.$nextId;\n};\n\n/**\n * Return a unique autogenerated id.\n *\n * @return {string} Unique autogenerated id\n */\nBase.prototype.getId = function () {\n return this._id;\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular source');\n};\n\n/**\n * Fire a CartoError event from a internalError\n */\nBase.prototype._triggerError = function (model, internalError) {\n this.trigger(EVENTS.ERROR, new CartoError(internalError, { analysis: this }));\n};\n\nBase.prototype.$setEngine = function (engine) {\n if (!this._internalModel) {\n this._internalModel = this._createInternalModel(engine);\n this._internalModel.on('change:error', this._triggerError, this);\n }\n};\n\n/**\n * Return the engine form the source internal model\n */\nBase.prototype.$getEngine = function (engine) {\n if (this._internalModel) {\n return this._internalModel._engine;\n }\n};\n\n/**\n * Return the real CARTO.js model used by the source.\n */\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\n/**\n * Get added filters\n *\n * @returns {Array} Added filters\n * @api\n */\nBase.prototype.getFilters = function () {\n return this._appliedFilters.getFilters();\n};\n\n/**\n * Add new filter to the source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._hasFiltersApplied = true;\n this._appliedFilters.addFilter(filter);\n};\n\n/**\n * Add new filters to the source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.addFilters = function (filters) {\n filters.forEach(filter => this.addFilter(filter));\n};\n\n/**\n * Remove an existing filter from source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._appliedFilters.removeFilter(filter);\n this._hasFiltersApplied = Boolean(this._appliedFilters.count());\n};\n\n/**\n * Remove existing filters from source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.removeFilters = function (filters) {\n filters.forEach(filter => this.removeFilter(filter));\n};\n\nmodule.exports = Base;\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar Engine = require('../../../engine');\n\nvar NON_RESETEABLE_DEFAULT_ATTRS = ['state', 'visible'];\n\nvar LegendModelBase = Backbone.Model.extend({\n defaults: function () {\n return {\n visible: false,\n title: '',\n preHTMLSnippet: '',\n postHTMLSnippet: '',\n state: this.constructor.STATE_LOADING\n };\n },\n\n initialize: function (attrs, deps) {\n if (!deps.engine) throw new Error('engine is required');\n\n deps.engine.on(Engine.Events.RELOAD_STARTED, this._onEngineReloadStarted, this);\n },\n\n _onEngineReloadStarted: function () {\n this.set('state', this.constructor.STATE_LOADING);\n },\n\n isLoading: function () {\n return this.get('state') === this.constructor.STATE_LOADING;\n },\n\n isError: function () {\n return this.get('state') === this.constructor.STATE_ERROR;\n },\n\n isSuccess: function () {\n return this.get('state') === this.constructor.STATE_SUCCESS;\n },\n\n show: function () {\n this.set('visible', true);\n },\n\n hide: function () {\n this.set('visible', false);\n },\n\n isVisible: function () {\n return this.get('visible');\n },\n\n update: function (attrs) {\n this.set(attrs);\n },\n\n getNonResettableAttrs: function () {\n return NON_RESETEABLE_DEFAULT_ATTRS;\n },\n\n reset: function () {\n var defaults = _.omit(this.defaults(),\n this.getNonResettableAttrs()\n );\n this.set(defaults);\n },\n\n isAvailable: function () {\n return false;\n }\n}, {\n STATE_LOADING: 'loading',\n STATE_SUCCESS: 'success',\n STATE_ERROR: 'error'\n});\n\nmodule.exports = LegendModelBase;\n","/**\n * Fired when something went wrong on the server side.\n *\n * @event error\n * @type {CartoError}\n * @api\n */\n\n/**\n * Fired when a request to the server completed successfully.\n *\n * @event success\n * @api\n */\n\nmodule.exports = {\n SUCCESS: 'success',\n ERROR: 'error'\n};\n","var _ = require('underscore');\n\nvar PROPERTY_KEY = 'prop';\nvar MAPPING_KEY = 'mapping';\n\nvar RANGE_FILTER_TYPE = 'range';\nvar CATEGORY_FILTER_TYPE = 'category';\nvar DEFAULT_FILTER_TYPE = 'default';\n\nvar Rule = function (rule) {\n this._rule = rule;\n};\n\nRule.prototype.matchesAnyProperty = function (props) {\n return this._matches(this._rule[PROPERTY_KEY], props);\n};\n\nRule.prototype.matchesAnyMapping = function (mappings) {\n return this._matches(this._rule[MAPPING_KEY], mappings);\n};\n\nRule.prototype._matches = function (value, acceptedValues) {\n if (_.isString(acceptedValues)) {\n acceptedValues = [ acceptedValues ];\n }\n return _.contains(acceptedValues, value);\n};\n\nRule.prototype.getBucketsWithRangeFilter = function () {\n return this._getBucketsByFilterType(RANGE_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithCategoryFilter = function () {\n return this._getBucketsByFilterType(CATEGORY_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithDefaultFilter = function () {\n return this._getBucketsByFilterType(DEFAULT_FILTER_TYPE);\n};\n\nRule.prototype._getBucketsByFilterType = function (filterType) {\n if (this._rule) {\n return _.select(this._rule.buckets, function (bucket) {\n return bucket.filter.type === filterType;\n });\n }\n return [];\n};\n\nRule.prototype.getColumn = function () {\n return this._rule.column;\n};\n\nRule.prototype.getMapping = function () {\n return this._rule.mapping;\n};\n\nRule.prototype.getProperty = function () {\n return this._rule.prop;\n};\n\nRule.prototype.getFilterAvg = function () {\n return this._rule.stats.filter_avg;\n};\n\nmodule.exports = Rule;\n","var TILED_LAYER_TYPE = 'Tiled';\nvar PLAIN_LAYER_TYPE = 'Plain';\nvar WMS_LAYER_TYPE = 'WMS';\nvar GMAPS_BASE_LAYER_TYPE = 'GMapsBase';\nvar CARTODB_LAYER_TYPE = 'CartoDB';\nvar TORQUE_LAYER_TYPE = 'torque';\n\nvar isLayerOfType = function (layerModel, layerType) {\n return layerModel.get('type').toLowerCase() === layerType.toLowerCase();\n};\n\nmodule.exports = {\n isTiledLayer: function (layerModel) {\n return isLayerOfType(layerModel, TILED_LAYER_TYPE);\n },\n\n isPlainLayer: function (layerModel) {\n return isLayerOfType(layerModel, PLAIN_LAYER_TYPE);\n },\n\n isWMSLayer: function (layerModel) {\n return isLayerOfType(layerModel, WMS_LAYER_TYPE);\n },\n\n isGoogleMapsBaseLayer: function (layerModel) {\n return isLayerOfType(layerModel, GMAPS_BASE_LAYER_TYPE);\n },\n\n isCartoDBLayer: function (layerModel) {\n return isLayerOfType(layerModel, CARTODB_LAYER_TYPE);\n },\n\n isTorqueLayer: function (layerModel) {\n return isLayerOfType(layerModel, TORQUE_LAYER_TYPE);\n }\n};\n","/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:01Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\n\nvar arr = [];\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\tversion = \"2.1.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the function hasn't returned already, we're confident that\n\t\t// |obj| is a plain object, created by {} or constructed with new Object\n\t\treturn true;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf(\"use strict\") === 1 ) {\n\t\t\t\tscript = document.createElement(\"script\");\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t// and removal by using an indirect global eval\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[0] === \"<\" && selector[ selector.length - 1 ] === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\ttruncate = until !== undefined;\n\n\t\twhile ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatched.push( elem );\n\t\t\t}\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar matched = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tmatched.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn matched;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\twhile ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.unique( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\twindow.removeEventListener( \"load\", completed, false );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// We once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[0], key ) : emptyGet;\n};\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( owner ) {\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\nfunction Data() {\n\t// Support: Android<4,\n\t// Old WebKit does not have Object.preventExtensions/freeze method,\n\t// return new empty object instead with no [[set]] accessor\n\tObject.defineProperty( this.cache = {}, 0, {\n\t\tget: function() {\n\t\t\treturn {};\n\t\t}\n\t});\n\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\nData.accepts = jQuery.acceptData;\n\nData.prototype = {\n\tkey: function( owner ) {\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return the key for a frozen object.\n\t\tif ( !Data.accepts( owner ) ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar descriptor = {},\n\t\t\t// Check if the owner object already has a cache key\n\t\t\tunlock = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !unlock ) {\n\t\t\tunlock = Data.uid++;\n\n\t\t\t// Secure it in a non-enumerable, non-writable property\n\t\t\ttry {\n\t\t\t\tdescriptor[ this.expando ] = { value: unlock };\n\t\t\t\tObject.defineProperties( owner, descriptor );\n\n\t\t\t// Support: Android<4\n\t\t\t// Fallback to a less secure definition\n\t\t\t} catch ( e ) {\n\t\t\t\tdescriptor[ this.expando ] = unlock;\n\t\t\t\tjQuery.extend( owner, descriptor );\n\t\t\t}\n\t\t}\n\n\t\t// Ensure the cache object\n\t\tif ( !this.cache[ unlock ] ) {\n\t\t\tthis.cache[ unlock ] = {};\n\t\t}\n\n\t\treturn unlock;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\t// There may be an unlock assigned to this node,\n\t\t\t// if there is no entry for this \"owner\", create one inline\n\t\t\t// and set the unlock as though an owner entry had always existed\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\t\t\t// Fresh assignments by object are shallow copied\n\t\t\tif ( jQuery.isEmptyObject( cache ) ) {\n\t\t\t\tjQuery.extend( this.cache[ unlock ], data );\n\t\t\t// Otherwise, copy the properties one-by-one to the cache object\n\t\t\t} else {\n\t\t\t\tfor ( prop in data ) {\n\t\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\t// Either a valid cache is found, or will be created.\n\t\t// New caches will be created and the unlock returned,\n\t\t// allowing direct access to the newly created\n\t\t// empty data object. A valid owner object must be provided.\n\t\tvar cache = this.cache[ this.key( owner ) ];\n\n\t\treturn key === undefined ?\n\t\t\tcache : cache[ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t((key && typeof key === \"string\") && value === undefined) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase(key) );\n\t\t}\n\n\t\t// [*]When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.cache[ unlock ] = {};\n\n\t\t} else {\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\treturn !jQuery.isEmptyObject(\n\t\t\tthis.cache[ owner[ this.expando ] ] || {}\n\t\t);\n\t},\n\tdiscard: function( owner ) {\n\t\tif ( owner[ this.expando ] ) {\n\t\t\tdelete this.cache[ owner[ this.expando ] ];\n\t\t}\n\t}\n};\nvar data_priv = new Data();\n\nvar data_user = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdata_user.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend({\n\thasData: function( elem ) {\n\t\treturn data_user.hasData( elem ) || data_priv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn data_user.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdata_user.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to data_priv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn data_priv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdata_priv.remove( elem, name );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = data_user.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !data_priv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata_priv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tdata_user.set( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data,\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = data_user.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = data_user.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each(function() {\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = data_user.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdata_user.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf(\"-\") !== -1 && data !== undefined ) {\n\t\t\t\t\tdata_user.set( this, key, value );\n\t\t\t\t}\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tdata_user.remove( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = data_priv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = data_priv.access( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn data_priv.get( elem, key ) || data_priv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tdata_priv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = data_priv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n})();\nvar strundefined = typeof undefined;\n\n\n\nsupport.focusinBubbles = \"onfocusin\" in window;\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.hasData( elem ) && data_priv.get( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\t\t\tdata_priv.remove( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( data_priv.get( cur, \"events\" ) || {} )[ event.type ] && data_priv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( data_priv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG