@hpcc-js/ddl-shim 2.17.20 → 2.17.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +35 -15
- package/dist/cli.js.map +1 -1
- package/dist/index.es6.js +284 -290
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +288 -294
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +3 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +16 -16
- package/src/__package__.ts +2 -2
- package/types/__package__.d.ts +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/ddl/v1.ts","../src/ddl/v2.ts","../../../node_modules/tslib/tslib.es6.js","../src/dermatology.ts","../src/upgrade.ts","../../../node_modules/uri-js/src/util.ts","../../../node_modules/uri-js/src/regexps-uri.ts","../../../node_modules/uri-js/src/regexps-iri.ts","../../../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../../../node_modules/uri-js/src/uri.ts","../../../node_modules/uri-js/src/schemes/http.ts","../../../node_modules/uri-js/src/schemes/https.ts","../../../node_modules/uri-js/src/schemes/ws.ts","../../../node_modules/uri-js/src/schemes/wss.ts","../../../node_modules/uri-js/src/schemes/mailto.ts","../../../node_modules/uri-js/src/schemes/urn.ts","../../../node_modules/uri-js/src/schemes/urn-uuid.ts","../../../node_modules/uri-js/src/index.ts","../../../node_modules/ajv/node_modules/fast-deep-equal/index.js","../../../node_modules/ajv/lib/compile/ucs2length.js","../../../node_modules/ajv/lib/compile/util.js","../../../node_modules/ajv/lib/compile/schema_obj.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.js","../../../node_modules/ajv/lib/compile/error_classes.js","../../../node_modules/fast-json-stable-stringify/index.js","../../../node_modules/ajv/lib/dotjs/validate.js","../../../node_modules/ajv/lib/compile/index.js","../../../node_modules/ajv/lib/cache.js","../../../node_modules/ajv/lib/compile/formats.js","../../../node_modules/ajv/lib/dotjs/ref.js","../../../node_modules/ajv/lib/dotjs/allOf.js","../../../node_modules/ajv/lib/dotjs/anyOf.js","../../../node_modules/ajv/lib/dotjs/comment.js","../../../node_modules/ajv/lib/dotjs/const.js","../../../node_modules/ajv/lib/dotjs/contains.js","../../../node_modules/ajv/lib/dotjs/dependencies.js","../../../node_modules/ajv/lib/dotjs/enum.js","../../../node_modules/ajv/lib/dotjs/format.js","../../../node_modules/ajv/lib/dotjs/if.js","../../../node_modules/ajv/lib/dotjs/items.js","../../../node_modules/ajv/lib/dotjs/_limit.js","../../../node_modules/ajv/lib/dotjs/_limitItems.js","../../../node_modules/ajv/lib/dotjs/_limitLength.js","../../../node_modules/ajv/lib/dotjs/_limitProperties.js","../../../node_modules/ajv/lib/dotjs/multipleOf.js","../../../node_modules/ajv/lib/dotjs/not.js","../../../node_modules/ajv/lib/dotjs/oneOf.js","../../../node_modules/ajv/lib/dotjs/pattern.js","../../../node_modules/ajv/lib/dotjs/properties.js","../../../node_modules/ajv/lib/dotjs/propertyNames.js","../../../node_modules/ajv/lib/dotjs/required.js","../../../node_modules/ajv/lib/dotjs/uniqueItems.js","../../../node_modules/ajv/lib/dotjs/index.js","../../../node_modules/ajv/lib/compile/rules.js","../../../node_modules/ajv/lib/data.js","../../../node_modules/ajv/lib/compile/async.js","../../../node_modules/ajv/lib/dotjs/custom.js","../../../node_modules/ajv/lib/keyword.js","../../../node_modules/ajv/lib/ajv.js","../src/validate.ts","../src/index.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/ddl-shim\";\r\nexport const PKG_VERSION = \"2.17.20\";\r\nexport const BUILD_VERSION = \"2.94.0\";\r\n","export type StringStringDict = { [key: string]: string; };\n\n// Datasource ===============================================================\nexport type IFilterRule = \"==\" | \"!=\" | \"<\" | \"<=\" | \">\" | \">=\" | \"set\" | \"notequals\";\nexport interface IFilter {\n fieldid: string;\n nullable: boolean;\n rule: IFilterRule;\n minid?: string;\n maxid?: string;\n}\n\nexport interface IOutput {\n id: string;\n from?: string;\n filter?: IFilter[];\n notify?: string[];\n}\n\nexport interface IDatasource {\n id: string;\n filter?: IFilter[];\n outputs: IOutput[];\n}\n\nexport interface IWorkunitDatasource extends IDatasource {\n WUID: boolean;\n}\nexport function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource {\n return (ref as IWorkunitDatasource).WUID !== undefined;\n}\n\nexport interface IDatabombDatasource extends IDatasource {\n databomb: true;\n}\nexport function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource {\n return (ref as IDatabombDatasource).databomb === true;\n}\n\nexport interface IHipieDatasource extends IDatasource {\n URL: string;\n}\nexport function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource {\n return (ref as IHipieDatasource).URL !== undefined;\n}\n\nexport type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource;\n// Event ====================================================================\nexport interface IEventUpdate {\n visualization: string;\n instance?: string;\n datasource: string;\n col?: string;\n merge: boolean;\n mappings?: StringStringDict;\n}\n\nexport interface IEvent {\n mappings?: StringStringDict; // Legacy\n updates: IEventUpdate[];\n}\n\n// Mappings =================================================================\nexport interface IPieMapping {\n label: string;\n weight: string;\n}\n\nexport interface ILineMapping {\n x: string[];\n y: string[];\n}\n\nexport interface ITableMapping {\n value: string[];\n}\n\nexport interface IChoroMapping {\n weight: string | string[];\n}\n\nexport interface IChoroUSStateMapping extends IChoroMapping {\n state: string;\n}\n\nexport interface IChoroUSCountyMapping extends IChoroMapping {\n county: string;\n}\n\nexport interface IChoroGeohashMapping extends IChoroMapping {\n geohash: string;\n}\n\nexport interface IGraphMapping {\n uid: string;\n label: string;\n weight: string;\n flags: string;\n}\n\nexport interface IGraphLinkMapping {\n uid: string;\n}\n\nexport interface IHeatMapMapping {\n x: string;\n y: string;\n weight: string;\n}\n\nexport interface ISliderMapping {\n label: string;\n}\n// Source ===================================================================\nexport interface ISource {\n id: string;\n output: string;\n sort?: string[];\n first?: string | number;\n reverse?: boolean;\n properties?: StringStringDict; // TODO Needed?\n}\n\nexport interface IPieSource extends ISource {\n mappings: IPieMapping;\n}\n\nexport interface ILineSource extends ISource {\n mappings: ILineMapping;\n}\n\nexport interface ITableSource extends ISource {\n mappings: ITableMapping;\n}\n\nexport interface IGraphLink {\n mappings: IGraphLinkMapping;\n childfile: string;\n}\n\nexport interface IGraphSource extends ISource {\n mappings: IGraphMapping;\n link: IGraphLink;\n}\n\nexport interface IHeatMapSource extends ISource {\n mappings: IHeatMapMapping;\n}\n\nexport interface IChoroSource extends ISource {\n mappings: IAnyChoroMapping;\n}\n\nexport interface ISliderSource extends ISource {\n mappings: ISliderMapping;\n}\n\n// Visualization ============================================================\nexport type VisualizationType = \"PIE\" | \"LINE\" | \"BAR\" | \"TABLE\" | \"CHORO\" | \"GRAPH\" | \"HEAT_MAP\" | \"SLIDER\" | \"SUMMARY\" | \"FORM\" | \"2DCHART\" | \"WORD_CLOUD\" | \"BUBBLE\";\nexport type VisualizationFieldDataType = \"bool\" | \"boolean\" | \"integer\" | \"integer4\" | \"integer8\" | \"unsigned\" | \"unsigned4\" | \"unsigned8\" | \"float\" | \"double\" | \"real\" | \"real4\" | \"real8\" | \"string\" | \"date\" | \"time\" | \"geohash\" | \"dataset\" | \"visualization\";\nexport type VisualizationFieldType = VisualizationFieldDataType | \"range\";\nexport type VisualizationFieldFuncitonType = \"SUM\" | \"AVE\" | \"MIN\" | \"MAX\" | \"SCALE\";\n\nexport interface IVisualizationField {\n id: string;\n properties: {\n label?: string;\n datatype: VisualizationFieldDataType;\n default?: any[];\n function?: VisualizationFieldFuncitonType;\n params?: {\n param1: string;\n param2: string;\n }\n type: VisualizationFieldType;\n };\n}\n\nexport interface IVisualization {\n id: string;\n title?: string;\n type: VisualizationType;\n fields?: IVisualizationField[];\n properties?: {\n charttype?: string,\n\n // TODO Split Known Properties ---\n [key: string]: any\n };\n events?: { [key: string]: IEvent };\n onSelect?: any; // legacy\n color?: any; // legacy\n}\n\nexport interface IPieVisualization extends IVisualization {\n type: \"PIE\" | \"BAR\";\n source: IPieSource;\n}\nexport function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization {\n return (viz as IPieVisualization).type === \"PIE\" || (viz as IPieVisualization).type === \"BAR\";\n}\n\nexport interface ILineVisualization extends IVisualization {\n type: \"LINE\";\n source: ILineSource;\n}\nexport function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization {\n return (viz as ILineVisualization).type === \"LINE\";\n}\n\nexport type ChoroColor = \"default\" | \"YlGn\" | \"YlGnBu\" | \"GnBu\" | \"BuGn\" | \"PuBuGn\" | \"PuBu\" | \"BuPu\" | \"RdPu\" | \"PuRd\" | \"OrRd\" | \"YlOrRd\" | \"YlOrBr\" | \"Purples\" | \"Blues\" | \"Greens\" | \"Oranges\" | \"Reds\" | \"Greys\" | \"PuOr\" | \"BrBG\" | \"PRGn\" | \"PiYG\" | \"RdBu\" | \"RdGy\" | \"RdYlBu\" | \"Spectral\" | \"RdYlGn\" | \"RdWhGr\";\nexport interface IChoroVisualization extends IVisualization {\n type: \"CHORO\";\n source: IChoroSource;\n\n visualizations?: IChoroVisualization[];\n color?: ChoroColor;\n}\nexport function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization {\n return (viz as IChoroVisualization).type === \"CHORO\";\n}\n\nexport interface ITableVisualization extends IVisualization {\n type: \"TABLE\";\n label: string[];\n source: ITableSource;\n}\nexport function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization {\n return (viz as ITableVisualization).type === \"TABLE\";\n}\n\nexport interface ISliderVisualization extends IVisualization {\n type: \"SLIDER\";\n source: ISliderSource;\n range?: number[];\n}\nexport function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization {\n return (viz as ISliderVisualization).type === \"SLIDER\";\n}\n\nexport interface IIcon {\n [id: string]: string | number | boolean;\n}\n\nexport type IValueMappings = { [key: string]: IIcon; };\n\nexport interface IVisualizationIcon {\n fieldid?: string;\n faChar?: string;\n valuemappings?: IValueMappings;\n}\n\nexport interface IGraphVisualization extends IVisualization {\n type: \"GRAPH\";\n source: IGraphSource;\n\n label: string[];\n icon: IVisualizationIcon;\n flag: IVisualizationIcon[];\n}\nexport function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization {\n return (viz as IGraphVisualization).type === \"GRAPH\";\n}\n\nexport interface IHeatMapVisualization extends IVisualization {\n type: \"HEAT_MAP\";\n source: IHeatMapSource;\n}\nexport function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization {\n return (viz as IHeatMapVisualization).type === \"HEAT_MAP\";\n}\n\nexport interface IFormVisualization extends IVisualization {\n type: \"FORM\";\n}\nexport function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization {\n return (viz as IFormVisualization).type === \"FORM\";\n}\n\n// Dashboard ================================================================\nexport interface IDashboard {\n id?: string;\n title?: string;\n enable?: string;\n label?: string;\n primary?: boolean;\n visualizations: IAnyVisualization[];\n}\n\nexport interface IDDL {\n dashboards: IDashboard[];\n datasources: IAnyDatasource[];\n hipieversion: string;\n visualizationversion: string;\n}\n\n// DDL ======================================================================\nexport type DDLSchema = IDDL;\n\n// Helpers ==================================================================\nexport type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping;\nexport function isUSStateMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSStateMapping).state !== undefined;\n}\nexport function isUSCountyMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSCountyMapping).county !== undefined;\n}\nexport function isGeohashMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroGeohashMapping).geohash !== undefined;\n}\nexport type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping;\nexport type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource;\nexport type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;\n","export type RowType = { [key: string]: any; };\n\n// Fields ==============================================================\nexport type Number64 = string;\nexport type Range = [number | string, number | string];\nexport type Dataset = any[];\nexport type IFieldType = \"boolean\" | \"number\" | \"number64\" | \"string\" | \"range\" | \"dataset\" | \"set\" | \"object\";\n\nexport interface IFieldBoolean {\n type: \"boolean\";\n id: string;\n default?: boolean;\n}\n\nexport interface IFieldNumber {\n type: \"number\";\n id: string;\n default?: number;\n}\n\nexport interface IFieldNumber64 {\n type: \"number64\";\n id: string;\n default?: Number64;\n}\n\nexport interface IFieldString {\n type: \"string\";\n id: string;\n default?: string;\n}\n\nexport interface IFieldRange {\n type: \"range\";\n id: string;\n default?: Range;\n}\n\nexport interface IFieldDataset {\n type: \"dataset\";\n id: string;\n default?: Dataset;\n children: IField[];\n}\n\nexport interface IFieldSet {\n type: \"set\";\n id: string;\n default?: Array<string | number>;\n fieldType: \"string\" | \"number\";\n}\n\nexport interface IFieldObject {\n type: \"object\";\n id: string;\n default?: object;\n fields: { [key: string]: IField };\n}\n\nexport type IField = IFieldBoolean | IFieldNumber | IFieldNumber64 | IFieldString | IFieldRange | IFieldDataset | IFieldSet | IFieldObject;\n\n// Datasources ==============================================================\nexport type IDatasourceType = \"wuresult\" | \"logicalfile\" | \"roxie\" | \"hipie\" | \"rest\" | \"form\" | \"databomb\";\nexport type DatasourceType = IWUResult | ILogicalFile | IRoxieService | IHipieService | IRestService | IForm | IDatabomb;\n\nexport interface IDatasource {\n type: IDatasourceType;\n id: string;\n}\n\nexport interface IService extends IDatasource {\n url: string;\n}\n\nexport interface IOutput {\n fields: IField[];\n}\n\nexport type OutputDict = { [key: string]: IOutput };\n\nexport interface IWUResult extends IService {\n type: \"wuresult\";\n wuid: string;\n outputs: OutputDict;\n}\n\nexport interface ILogicalFile extends IService {\n type: \"logicalfile\";\n logicalFile: string;\n fields: IField[];\n}\n\nexport interface IRoxieService extends IService {\n type: \"roxie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IHipieService extends IService {\n type: \"hipie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IRestService extends IService {\n type: \"rest\";\n action: string;\n mode?: \"get\" | \"post\";\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IForm extends IDatasource {\n type: \"form\";\n fields: IField[];\n}\n\nexport type IDatabombFormat = \"csv\" | \"tsv\" | \"json\";\nexport interface IDatabomb extends IDatasource {\n type: \"databomb\";\n fields: IField[];\n format: IDatabombFormat;\n payload?: string;\n}\n\n// IDatasorceRef ---\nexport interface IDatasourceBaseRef {\n id: string;\n}\n\nexport interface IDatabombRef extends IDatasourceBaseRef {\n}\n\nexport interface IWUResultRef extends IDatasourceBaseRef {\n output: string;\n}\n\nexport interface IRestResultRef extends IDatasourceBaseRef {\n responseField: string;\n}\n\nexport interface IHipieSqlRef extends IDatasourceBaseRef {\n}\n\nexport interface IRequestField {\n localFieldID: string;\n source: string;\n remoteFieldID: string;\n value: string;\n}\n\nexport interface IRoxieServiceRef extends IDatasourceBaseRef {\n request: IRequestField[];\n output: string;\n}\n\nexport type IDatasourceRef = IDatabombRef | IWUResultRef | IRoxieServiceRef | IHipieSqlRef;\n\nexport function isDatabombRef(ref: IDatasourceRef): ref is IDatabombRef {\n return !isWUResultRef(ref) && !isRoxieServiceRef(ref);\n}\n\nexport function isWUResultRef(ref: IDatasourceRef): ref is IWUResultRef {\n return (ref as IWUResultRef).output !== undefined && !isRoxieServiceRef(ref);\n}\n\nexport function isRoxieServiceRef(ref: IDatasourceRef): ref is IRoxieServiceRef {\n return (ref as IRoxieServiceRef).request !== undefined;\n}\n\n// Activities ===============================================================\nexport type IActivityType = \"filter\" | \"project\" | \"groupby\" | \"sort\" | \"limit\" | \"mappings\";\nexport type ActivityType = IFilter | IProject | IGroupBy | ISort | ILimit | IMappings;\n\nexport interface IActivity {\n type: IActivityType;\n}\n\n// Filter ===================================================================\nexport type IMappingConditionType = \"==\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"range\" | \"in\";\nexport interface IMapping {\n remoteFieldID: string;\n localFieldID: string;\n condition: IMappingConditionType;\n nullable: boolean;\n}\n\nexport interface IFilterCondition {\n viewID: string;\n mappings: IMapping[];\n}\n\nexport interface IFilterStaticCondition {\n localFieldID: string;\n condition: IMappingConditionType;\n value: string | number;\n}\n\nexport type FilterCondition = IFilterCondition | IFilterStaticCondition;\nexport function isIFilterCondition(fc: FilterCondition): fc is IFilterCondition {\n return !!(fc as IFilterCondition).viewID;\n}\n\nexport interface IFilter extends IActivity {\n type: \"filter\";\n conditions: FilterCondition[];\n}\nexport function isFilterActivity(activity: IActivity): activity is IFilter {\n return activity.type === \"filter\";\n}\n\n// Project ==================================================================\nexport interface IEquals {\n fieldID: string;\n type: \"=\";\n sourceFieldID: string;\n transformations?: MultiTransformationType[];\n}\nexport type ICalculatedType = \"+\" | \"-\" | \"*\" | \"/\";\nexport interface ICalculated {\n fieldID: string;\n type: ICalculatedType;\n sourceFieldID1: string;\n sourceFieldID2: string;\n}\n\nexport interface IScale {\n fieldID: string;\n type: \"scale\";\n sourceFieldID: string;\n factor: number;\n}\n\nexport interface ITemplate {\n fieldID: string;\n type: \"template\";\n template: string;\n}\n\nexport interface IMapMapping {\n value: any;\n newValue: any;\n}\n\nexport interface IMap {\n fieldID: string;\n type: \"map\";\n sourceFieldID: string;\n default: any;\n mappings: IMapMapping[];\n}\n\nexport type MultiTransformationType = IEquals | ICalculated | IScale | ITemplate | IMap;\nexport interface IMulti {\n fieldID: string;\n type: \"multi\";\n transformations: MultiTransformationType[];\n}\n\nexport type ProjectTransformationType = MultiTransformationType | IMulti;\nexport interface IProject extends IActivity {\n type: \"project\";\n transformations: ProjectTransformationType[];\n}\nexport function isProjectActivity(activity: IActivity): activity is IProject {\n return activity.type === \"project\";\n}\nexport interface IMappings extends IActivity {\n type: \"mappings\";\n transformations: ProjectTransformationType[];\n}\nexport function isMappingsActivity(activity: IActivity): activity is IMappings {\n return activity.type === \"mappings\";\n}\n// GroupBy ==================================================================\nexport type IAggregateType = \"min\" | \"max\" | \"sum\" | \"mean\" | \"variance\" | \"deviation\";\nexport interface IAggregate {\n fieldID: string;\n type: IAggregateType;\n inFieldID: string;\n baseCountFieldID?: string;\n}\n\nexport interface ICount {\n fieldID: string;\n type: \"count\";\n}\n\nexport type AggregateType = IAggregate | ICount;\n\nexport interface IGroupBy extends IActivity {\n type: \"groupby\";\n groupByIDs: string[];\n aggregates: AggregateType[];\n}\nexport function isGroupByActivity(activity: IActivity): activity is IGroupBy {\n return activity.type === \"groupby\";\n}\n\n// Sort =====================================================================\nexport interface ISortCondition {\n fieldID: string;\n descending: boolean;\n}\n\nexport interface ISort extends IActivity {\n type: \"sort\";\n conditions: ISortCondition[];\n}\nexport function isSortActivity(activity: IActivity): activity is ISort {\n return activity.type === \"sort\";\n}\n\n// Limit ====================================================================\nexport interface ILimit extends IActivity {\n type: \"limit\";\n limit: number;\n}\nexport function isLimitActivity(activity: IActivity): activity is ILimit {\n return activity.type === \"limit\";\n}\n\n// Visualization ============================================================\nexport interface IWidgetProperties {\n __class: string;\n [propID: string]: string | string[] | number | boolean | undefined | IWidgetProperties | IWidgetProperties[];\n}\n\nexport interface IWidget {\n id: string;\n chartType: string;\n __class: string;\n properties: IWidgetProperties;\n}\n\nexport type VisibilityType = \"normal\" | \"flyout\";\nexport const VisibilitySet: VisibilityType[] = [\"normal\", \"flyout\"];\n\nexport interface IVisualization extends IWidget {\n title: string;\n description?: string;\n visibility: VisibilityType;\n mappings: IMappings;\n secondaryDataviewID?: string;\n}\n\n// View =====================================================================\nexport interface IView {\n id: string;\n datasource: IDatasourceRef;\n activities: ActivityType[];\n visualization: IVisualization;\n}\n\n// DDL ======================================================================\nexport interface IProperties {\n [propID: string]: any;\n}\n\nexport interface Schema {\n version: \"2.2.1\";\n createdBy: {\n name: string;\n version: string;\n };\n datasources: DatasourceType[];\n dataviews: IView[];\n properties?: IProperties;\n hipieProperties?: IProperties;\n\n // The following defs are only provided to assist the Java code generation (from the the generated schema) ---\n defs?: {\n fieldTypes: {\n number64: Number64;\n range: Range;\n dataset: Dataset;\n fieldType: IFieldType;\n fieldBoolean: IFieldBoolean;\n fieldNumber: IFieldNumber;\n fieldNumber64: IFieldNumber64\n fieldString: IFieldString;\n fieldRange: IFieldRange;\n fieldDataset: IFieldDataset;\n fieldSet: IFieldSet;\n fieldObject: IFieldObject;\n field: IField;\n };\n datasourceTypes: {\n datasource: IDatasource;\n logicalFile: ILogicalFile;\n form: IForm;\n databomb: IDatabomb;\n wuresult: IWUResult;\n hipieService: IHipieService;\n roxieService: IRoxieService;\n };\n datasourceRefTypes: {\n wuResultRef: IWUResultRef;\n roxieServiceRef: IRoxieServiceRef;\n };\n activityTypes: {\n filter: IFilter;\n project: IProject;\n groupby: IGroupBy;\n sort: ISort;\n limit: ILimit;\n mappings: IMappings;\n };\n aggregateTypes: {\n aggregate: IAggregate;\n count: ICount;\n };\n transformationTypes: {\n equals: IEquals;\n calculated: ICalculated;\n scale: IScale;\n template: ITemplate;\n map: IMap;\n multi: IMulti;\n };\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import * as DDL2 from \"./ddl/v2\";\n\nconst classMappings: any = {\n c3chart_Bar: \"chart_Bar\",\n c3chart_Column: \"chart_Column\",\n c3chart_Pie: \"chart_Pie\",\n c3chart_Area: \"chart_Area\",\n c3chart_Line: \"chart_Line\",\n amchart_Bar: \"chart_Bar\",\n amchart_Column: \"chart_Column\",\n amchart_Pie: \"chart_Pie\",\n amchart_Area: \"chart_Area\",\n amchart_Line: \"chart_Line\",\n google_Bar: \"chart_Bar\",\n google_Column: \"chart_Column\",\n google_Pie: \"chart_Pie\",\n google_Area: \"chart_Area\",\n google_Line: \"chart_Line\",\n other_Table: \"dgrid_Table\"\n};\nconst propertyMappings: any = {\n xAxisLabelRotation: [\n { name: \"xAxisOverlapMode\", transform: (n: any) => \"rotate\" },\n { name: \"xAxisLabelRotation\", transform: (n: any) => n }\n ],\n tooltipLabelColor: {\n name: \"tooltipLabelColor\"\n },\n tooltipSeriesColor: {\n name: \"tooltipSeriesColor\"\n },\n tooltipValueColor: {\n name: \"tooltipValueColor\"\n },\n tooltipValueFormat: {\n name: \"tooltipValueFormat\"\n },\n timePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n smoothLines: {\n name: \"interpolate\",\n transform: (n: any) => {\n if (n === false) return \"linear\";\n return \"catmullRom\";\n }\n },\n holePercent: {\n name: \"innerRadius\"\n },\n flip: {\n name: \"orientation\",\n transform: (n: any) => n ? \"vertical\" : \"horizontal\"\n },\n bottomText: {\n name: \"xAxisTitle\"\n },\n xAxisTypeTimePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n yAxisTypeTimePattern: {\n name: \"yAxisTypeTimePattern\"\n },\n valueFormat: {\n name: \"tooltipValueFormat\"\n },\n stacked: {\n name: \"yAxisStacked\"\n },\n showYGrid: {\n name: \"yAxisGuideLines\"\n },\n showXGrid: {\n name: \"xAxisGuideLines\"\n },\n showValueLabel: {\n name: \"showValue\"\n },\n low: {\n name: \"yAxisDomainLow\"\n },\n high: {\n name: \"yAxisDomainHigh\"\n },\n fillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n areaFillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n showToolbar: {\n name: \"titleVisible\"\n },\n showCSV: {\n name: \"downloadButtonVisible\"\n }\n};\n\nfunction findKeyVal(object: any, key: any, val: any): any {\n let value;\n\n for (const k in object) {\n if (k === key && object[k] === val) {\n value = object;\n break;\n }\n if (object[k] && typeof object[k] === \"object\") {\n value = findKeyVal(object[k], key, val);\n if (value !== undefined) {\n break;\n }\n }\n }\n return value;\n}\n\nfunction apply_to_dataviews(ddl2: DDL2.Schema, dermObj: any) {\n\n ddl2.dataviews.forEach(apply_to_dataview);\n\n function apply_to_dataview(dv: any) {\n const widgetId = dv.id;\n const dermPanelObj: any = findKeyVal(dermObj, \"__id\", widgetId);\n if (dermPanelObj) {\n const dermPanelProps: any = dermPanelObj.__properties;\n const dermWidgetObj: any = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;\n const dermWidgetProps: any = dermWidgetObj.__properties;\n apply_class_mapping(dermWidgetObj);\n apply_panel_property_mapping(dermPanelProps, dermWidgetProps);\n apply_widget_property_mapping(dermPanelProps, dermWidgetProps);\n if (dv.visualization.properties.chartType) {\n dv.visualization.properties.charttype = dv.visualization.properties.chartType;\n }\n } else {\n console.warn(widgetId + \" not found in dermObj\");\n }\n\n function apply_class_mapping(dermWidgetObj: any) {\n dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);\n dv.visualization.properties.__class = \"marshaller_VizChartPanel\";\n if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};\n dv.visualization.properties.widget.__class = dv.visualization.__class;\n\n function swap_with_supported_class(_class: string): string {\n return classMappings[_class] ? classMappings[_class] : _class;\n }\n }\n function apply_panel_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dermPanelProps.title || \"\";\n dv.visualization.description = \"\";\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermPanelProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n const newPropName = propertyMappings[propName].name;\n\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);\n } else {\n dv.visualization.properties[newPropName] = dermPanelProps[propName];\n }\n\n }\n }\n if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {\n dv.visualization.properties.legendVisible = true;\n }\n }\n function apply_widget_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dv.visualization.title || dermWidgetProps.title || \"\";\n dv.visualization.description = \"\"; // TODO - should this map to anything?\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermWidgetProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n if (propertyMappings[propName] instanceof Array) {\n propertyMappings[propName].forEach((p: any) => {\n const newPropName = p.name;\n dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n } else {\n dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];\n }\n });\n } else {\n const newPropName = propertyMappings[propName].name;\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n }\n }\n }\n }\n }\n}\n\ntype CellPosition = {\n id: string;\n position: [number, number, number, number];\n};\n\ntype DDLProperties = {\n layout: CellPosition[]\n};\n\nfunction apply_to_properties_layout(ddl2: DDL2.Schema, dermObj: any) {\n const retVal: DDLProperties = {\n layout: []\n };\n if (!dermObj || !dermObj.__properties) return;\n dermObj.__properties.content.forEach((cell: any) => {\n const cellPosition: CellPosition = {\n // TODO - if \"id\" could be avoided then layouts could apply to any dashboard with the same number of widgets\n id: cell.__properties.widget.__id,\n position: [\n cell.__properties.gridCol,\n cell.__properties.gridRow,\n cell.__properties.gridColSpan,\n cell.__properties.gridRowSpan\n ]\n };\n retVal.layout.push(cellPosition);\n });\n return retVal;\n}\n\nexport function upgrade(ddl2: DDL2.Schema, dermObj: any) {\n apply_to_dataviews(ddl2, dermObj);\n return apply_to_properties_layout(ddl2, dermObj);\n}\n","import { PKG_NAME, PKG_VERSION } from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nimport { upgrade as dermatologyUpgrade } from \"./dermatology\";\n\ninterface IDatasourceOutput {\n datasource: DDL1.IAnyDatasource;\n output: DDL1.IOutput;\n}\n\ninterface IDatasourceOutputFilter extends IDatasourceOutput {\n filter: DDL1.IFilter;\n}\n\nconst UPGRADE_HEX_CHAR: boolean = false;\nfunction faCharFix(faChar: any): string | undefined {\n if (UPGRADE_HEX_CHAR && typeof faChar === \"string\") {\n return String.fromCharCode(parseInt(faChar));\n }\n return faChar;\n}\n\nclass DDLUpgrade {\n _ddl: DDL1.IDDL;\n _baseUrl: string;\n _wuid?: string;\n _toLowerCase: boolean;\n\n _datasources: { [id: string]: DDL1.IAnyDatasource } = {};\n _datasourceUpdates: { [id: string]: { id: string, output?: string } } = {};\n _visualizations: { [id: string]: DDL1.IAnyVisualization } = {};\n\n _ddl2Datasources: { [id: string]: DDL2.DatasourceType } = {};\n _ddl2DatasourceFields: { [dsid: string]: { [outputID: string]: { [fieldID: string]: DDL2.IField } } } = {};\n\n _ddl2Dataviews: { [id: string]: DDL2.IView } = {};\n _ddl2DataviewActivities: {\n [viewID: string]: {\n project: DDL2.IProject,\n filters: DDL2.IFilter,\n sort: DDL2.ISort,\n groupBy: DDL2.IGroupBy,\n limit: DDL2.ILimit,\n mappings: DDL2.IMappings\n }\n } = {};\n\n constructor(ddl: DDL1.IDDL, baseUrl: string = \"http://localhost:8010\", wuid: string = \"WUID\", toLowerCase = true) {\n this._ddl = ddl;\n this._baseUrl = baseUrl;\n this._wuid = wuid;\n this._toLowerCase = toLowerCase;\n\n this.indexDDL();\n this.readDDL();\n }\n\n toLowerCase(s: string): string {\n return this._toLowerCase ? s.toLowerCase() : s;\n }\n\n isVizDatasourceRoxie(viz: DDL1.IAnyVisualization): boolean {\n if ((viz as any).source) {\n const ds = this._datasources[(viz as any).source.id];\n if (DDL1.isHipieDatasource(ds)) {\n return true;\n }\n }\n return false;\n }\n\n getDatasourceOutputs(dsID: string, vizID: string): IDatasourceOutput[] {\n const retVal: IDatasourceOutput[] = [];\n const datasource = this._datasources[dsID];\n for (const output of datasource.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n if (notify === vizID) {\n retVal.push({\n datasource,\n output\n });\n }\n }\n }\n }\n return retVal;\n }\n\n getDatasourceFilters(dsID: string, vizID: string): { [id: string]: IDatasourceOutputFilter } {\n const retVal: { [id: string]: IDatasourceOutputFilter } = {};\n for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {\n if (dsOut.output.filter) {\n for (const filter of dsOut.output.filter) {\n retVal[filter.fieldid] = {\n datasource: dsOut.datasource,\n output: dsOut.output,\n filter\n };\n }\n }\n }\n return retVal;\n }\n\n indexDDL() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n this._visualizations[viz.id] = viz;\n }\n }\n\n for (const ds of this._ddl.datasources) {\n this._datasources[ds.id] = ds;\n for (const output of ds.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n this._datasourceUpdates[notify] = {\n id: ds.id,\n output: output.from || output.id\n };\n }\n }\n }\n }\n }\n\n readDDL() {\n for (const ds of this._ddl.datasources) {\n if (DDL1.isWorkunitDatasource(ds)) {\n const ddl2DS: DDL2.IWUResult = {\n type: \"wuresult\",\n id: ds.id,\n url: this._baseUrl,\n wuid: this._wuid!,\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n } else if (DDL1.isDatabombDatasource(ds)) {\n } else {\n const urlParts = ds.URL!.split(\"/WsEcl/submit/query/\");\n const hostParts = urlParts[0];\n const roxieParts = urlParts[1].split(\"/\");\n const ddl2DS: DDL2.IHipieService = {\n type: \"hipie\",\n id: ds.id,\n url: hostParts,\n querySet: roxieParts[0],\n queryID: roxieParts[1],\n inputs: [],\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n }\n }\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.type === \"FORM\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n } else if (viz.type === \"SLIDER\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields, true)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n }\n\n this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);\n }\n }\n\n this.readGroupBy();\n this.readFilters();\n this.readSort();\n this.readMappings();\n }\n\n readGroupBy() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.fields) {\n const projectTransformations: DDL2.ProjectTransformationType[] = [];\n const groupByColumns: string[] = [];\n const aggrFields: DDL2.IAggregate[] = [];\n for (const field of viz.fields) {\n if (field.properties && field.properties.function) {\n switch (field.properties.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"AVE\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n baseCountFieldID: field.properties.params!.param2 ? this.toLowerCase(field.properties.params!.param2) : undefined,\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"SCALE\":\n if (typeof field.properties.params!.param1 === \"object\") {\n const props: any = field.properties.params!.param1;\n switch (props.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(props.function),\n inFieldID: this.toLowerCase(props.params.param1),\n fieldID: this.toLowerCase(field.id)\n });\n break;\n }\n }\n projectTransformations.push({\n type: \"scale\",\n sourceFieldID: this.toLowerCase(field.id),\n fieldID: this.toLowerCase(field.id),\n factor: +field.properties.params!.param2\n });\n break;\n default:\n groupByColumns.push(this.toLowerCase(field.id));\n throw new Error(`Unhandled field function: ${field.properties.function}`);\n }\n } else {\n groupByColumns.push(this.toLowerCase(field.id));\n }\n }\n if (projectTransformations.length) {\n this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;\n }\n if (aggrFields.length) {\n this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];\n this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;\n }\n }\n }\n }\n }\n\n func2aggr(func: DDL1.VisualizationFieldFuncitonType): DDL2.IAggregateType {\n switch (func) {\n case \"SUM\":\n return \"sum\";\n case \"AVE\":\n return \"mean\";\n case \"MIN\":\n return \"min\";\n case \"MAX\":\n return \"max\";\n }\n throw new Error(`Unknown DDL1 Function Type: ${func}`);\n }\n\n readMappings() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (DDL1.isFormVisualization(viz)) {\n } else if (DDL1.isPieVisualization(viz)) {\n this.readPieMappings(viz);\n } else if (DDL1.isChoroVisualization(viz)) {\n this.readChoroMappings(viz);\n } else if (DDL1.isLineVisualization(viz)) {\n this.readLineMappings(viz);\n } else if (DDL1.isTableVisualization(viz)) {\n this.readTableMappings(viz);\n } else if (DDL1.isGraphVisualization(viz)) {\n this.readGraphMappings(viz);\n } else if (DDL1.isSliderVisualization(viz)) {\n this.readSliderMappings(viz);\n } else {\n throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);\n }\n }\n }\n }\n\n readPieMappings(viz: DDL1.IPieVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n readChoroMappings(viz: DDL1.IChoroVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n anyChoroMapping2label(mapping: any) {\n return mapping.state || mapping.county || mapping.geohash;\n }\n\n readLineMappings(viz: DDL1.ILineVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: viz.source.mappings.x[0],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])\n });\n for (let i = 0; i < viz.source.mappings.y.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.source.mappings.y[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])\n });\n }\n }\n\n readTableMappings(viz: DDL1.ITableVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n for (let i = 0; i < viz.label.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.label[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])\n });\n }\n }\n\n readGraphEnums(valueMappings?: DDL1.IValueMappings, annotation: boolean = false): DDL2.IMapMapping[] {\n const retVal: DDL2.IMapMapping[] = [];\n if (valueMappings) {\n for (const value in valueMappings) {\n const newValue: { [key: string]: string | number | boolean | undefined } = {};\n for (const key in valueMappings[value]) {\n if (key === \"faChar\") {\n newValue[key] = faCharFix(valueMappings[value][key]);\n } else if (annotation && key.indexOf(\"icon_\") === 0) {\n console.log(\"Deprecated flag property: \" + key);\n newValue[key.split(\"icon_\")[1]] = valueMappings[value][key];\n } else {\n newValue[key] = valueMappings[value][key];\n }\n }\n // remove v1.x \"0\" annotations as they equated to \"nothing\" ---\n if (!annotation || value !== \"0\") {\n retVal.push({\n value,\n newValue\n });\n }\n }\n }\n return retVal;\n }\n\n readGraphMappings(viz: DDL1.IGraphVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.uid)\n });\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n if (viz.icon.fieldid) {\n mappings.transformations.push({\n fieldID: \"icon\",\n type: \"map\",\n sourceFieldID: this.toLowerCase(viz.icon.fieldid),\n default: { fachar: faCharFix(viz.icon.faChar) },\n mappings: this.readGraphEnums(viz.icon.valuemappings)\n });\n }\n let idx = 0;\n if (viz.flag) {\n for (const flag of viz.flag) {\n if (flag.fieldid) {\n mappings.transformations.push({\n fieldID: `annotation_${idx++}`,\n type: \"map\",\n sourceFieldID: this.toLowerCase(flag.fieldid),\n default: {},\n mappings: this.readGraphEnums(flag.valuemappings, true)\n });\n }\n }\n }\n mappings.transformations.push({\n fieldID: \"links\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.childfile),\n transformations: [{\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)\n }]\n });\n }\n\n readSliderMappings(viz: DDL1.ISliderVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n }\n\n readFilters() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.events) {\n for (const eventID in viz.events) {\n const event = viz.events[eventID];\n for (const update of event.updates) {\n const otherViz = this._ddl2Dataviews[update.visualization];\n const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);\n if (update.mappings) {\n if (DDL2.isRoxieServiceRef(otherViz.datasource)) {\n for (const key in update.mappings) {\n otherViz.datasource.request.push({\n source: viz.id,\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key])\n } as DDL2.IRequestField);\n }\n } else {\n const condition: DDL2.IFilterCondition = {\n viewID: viz.id,\n mappings: []\n };\n for (const key in update.mappings) {\n const mapping = update.mappings[key];\n const dsFilter = (mapping && dsFilters[mapping]) ? dsFilters[mapping].filter : undefined;\n if (!dsFilter) {\n console.warn(`Select Mapping \"${mapping}\" in viz \"${viz.id}\" not found in filters for \"${otherViz.id}\"`);\n } else {\n condition.mappings.push({\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key]),\n condition: this.rule2condition(dsFilter.rule),\n nullable: dsFilter.nullable\n });\n }\n }\n this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);\n }\n }\n }\n }\n }\n }\n }\n }\n\n rule2condition(_: DDL1.IFilterRule): DDL2.IMappingConditionType {\n switch (_) {\n case \"set\":\n return \"in\";\n case \"notequals\":\n return \"!=\";\n }\n return _;\n }\n\n readSort() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if ((viz as any).source) {\n if ((viz as any).source.sort) {\n const vizSort = this._ddl2DataviewActivities[viz.id].sort;\n vizSort.conditions = ((viz as any).source.sort as string[]).map(s => {\n if (s.indexOf(\"-\") === 0) {\n return {\n fieldID: this.toLowerCase(s.substr(1)),\n descending: true\n } as DDL2.ISortCondition;\n }\n return {\n fieldID: this.toLowerCase(s),\n descending: false\n } as DDL2.ISortCondition;\n });\n }\n if ((viz as any).source.first) {\n const vizLimit = this._ddl2DataviewActivities[viz.id].limit;\n vizLimit.limit = +(viz as any).source.first;\n }\n }\n }\n }\n }\n\n anyViz2view(viz: DDL1.IAnyVisualization): DDL2.IView {\n const project: DDL2.IProject = {\n type: \"project\",\n transformations: []\n };\n const filters: DDL2.IFilter = {\n type: \"filter\",\n conditions: []\n };\n const groupBy: DDL2.IGroupBy = {\n type: \"groupby\",\n groupByIDs: [],\n aggregates: []\n };\n const sort: DDL2.ISort = {\n type: \"sort\",\n conditions: []\n };\n const limit: DDL2.ILimit = {\n type: \"limit\",\n limit: 0\n };\n const mappings: DDL2.IMappings = {\n type: \"mappings\",\n transformations: []\n };\n this._ddl2DataviewActivities[viz.id] = {\n project,\n filters,\n sort,\n groupBy,\n limit,\n mappings\n };\n const datasourceRef: DDL2.IDatasourceBaseRef | DDL2.IRoxieServiceRef = this.isVizDatasourceRoxie(viz) ? {\n id: this._datasourceUpdates[viz.id].id,\n request: [],\n output: this._datasourceUpdates[viz.id].output\n } : {\n id: this._datasourceUpdates[viz.id].id,\n output: this._datasourceUpdates[viz.id].output\n };\n return {\n id: viz.id,\n datasource: datasourceRef,\n activities: [\n project,\n filters,\n sort,\n groupBy,\n limit\n ],\n visualization: {\n id: viz.id,\n title: viz.title || \"\",\n description: \"\",\n visibility: viz.properties && viz.properties.flyout === true ? \"flyout\" : \"normal\",\n ...this.type2chartType(viz.type),\n mappings,\n properties: (viz.properties || {}) as DDL2.IWidgetProperties\n }\n };\n }\n\n type2chartType(chartType: DDL1.VisualizationType): { chartType: string, __class: string } {\n switch (chartType) {\n case \"LINE\":\n return { chartType: \"Line\", __class: \"chart_Line\" };\n case \"BUBBLE\":\n return { chartType: \"Bubble\", __class: \"chart_Bubble\" };\n case \"PIE\":\n return { chartType: \"Pie\", __class: \"chart_Pie\" };\n case \"BAR\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"FORM\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"WORD_CLOUD\":\n return { chartType: \"WordCloud\", __class: \"chart_WordCloud\" };\n case \"CHORO\":\n return { chartType: \"ChoroplethStates\", __class: \"map_ChoroplethStates\" };\n case \"SUMMARY\":\n return { chartType: \"Summary\", __class: \"chart_Summary\" };\n case \"SLIDER\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"HEAT_MAP\":\n return { chartType: \"HeatMap\", __class: \"other_HeatMap\" };\n case \"2DCHART\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"GRAPH\":\n return { chartType: \"AdjacencyGraph\", __class: \"graph_AdjacencyGraph\" };\n case \"TABLE\":\n default:\n return { chartType: \"Table\", __class: \"dgrid_Table\" };\n }\n }\n\n formFields2field(fields?: DDL1.IVisualizationField[], slider: boolean = false): DDL2.IField[] {\n if (!fields) return [];\n return fields.map(field => {\n switch (field.properties.type) {\n case \"range\":\n return {\n type: \"range\",\n id: field.id,\n default: (field.properties.default ? field.properties.default as DDL2.Range : undefined)\n };\n case \"dataset\":\n return {\n type: \"dataset\",\n id: field.id,\n default: [],\n children: []\n };\n default:\n return {\n type: this.formFieldType2fieldType(field.properties.datatype, slider),\n id: field.id,\n default: field.properties.default ? field.properties.default[0] : undefined\n };\n }\n });\n }\n\n formFieldType2fieldType(fieldType: DDL1.VisualizationFieldType, slider: boolean): \"string\" | \"number\" | \"boolean\" {\n switch (fieldType) {\n case \"bool\":\n case \"boolean\":\n return \"boolean\";\n case \"integer\":\n case \"unsigned\":\n case \"float\":\n case \"double\":\n case \"real\":\n return \"number\";\n case \"string\":\n return \"string\";\n default:\n return slider ? \"number\" : \"string\";\n }\n }\n\n output2output(output: DDL1.IOutput, target: DDL2.OutputDict) {\n target[output.from || output.id] = {\n fields: this.filters2fields(output.filter)\n };\n }\n\n filters2fields(filters?: DDL1.IFilter[]): DDL2.IField[] {\n if (!filters) return [];\n return filters.filter(filter => {\n const idParts = filter.fieldid.split(\"-\");\n return idParts.length === 1 || idParts[1] === \"range\";\n }).map(filter => {\n const idParts = filter.fieldid.split(\"-\");\n const retVal: DDL2.IFieldString = {\n type: \"string\",\n id: idParts[0]\n };\n return retVal;\n });\n }\n\n getVizField(vizID: string, fieldID: string): DDL2.IField {\n return {\n type: \"string\",\n id: \"\",\n default: \"\"\n };\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const id in this._ddl2Datasources) {\n retVal.push(this._ddl2Datasources[id]);\n }\n return retVal;\n }\n\n writeDataviews(): DDL2.IView[] {\n const retVal: DDL2.IView[] = [];\n for (const id in this._ddl2Dataviews) {\n retVal.push(this._ddl2Dataviews[id]);\n }\n return retVal;\n }\n\n writeProperties(): DDL2.IProperties | undefined {\n return {\n // TODO\n };\n }\n\n write(): DDL2.Schema {\n return {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDataviews(),\n properties: this.writeProperties()\n };\n }\n}\n\nexport function upgrade(ddl: DDL1.IDDL, baseUrl?: string, wuid?: string, toLowerCase: boolean = true, dermatologyJson = {}): DDL2.Schema {\n const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);\n const retVal = ddlUp.write();\n retVal.properties = dermatologyUpgrade(retVal, dermatologyJson);\n return retVal;\n}\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n cleanUpCode: cleanUpCode,\n finalCleanUpCode: finalCleanUpCode,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nvar EMPTY_ELSE = /else\\s*{\\s*}/g\n , EMPTY_IF_NO_ELSE = /if\\s*\\([^)]+\\)\\s*\\{\\s*\\}(?!\\s*else)/g\n , EMPTY_IF_WITH_ELSE = /if\\s*\\(([^)]+)\\)\\s*\\{\\s*\\}\\s*else(?!\\s*if)/g;\nfunction cleanUpCode(out) {\n return out.replace(EMPTY_ELSE, '')\n .replace(EMPTY_IF_NO_ELSE, '')\n .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');\n}\n\n\nvar ERRORS_REGEXP = /[^v.]errors/g\n , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g\n , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g\n , RETURN_VALID = 'return errors === 0;'\n , RETURN_TRUE = 'validate.errors = null; return true;'\n , RETURN_ASYNC = /if \\(errors === 0\\) return data;\\s*else throw new ValidationError\\(vErrors\\);/\n , RETURN_DATA_ASYNC = 'return data;'\n , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g\n , REMOVE_ROOTDATA = /if \\(rootData === undefined\\) rootData = data;/;\n\nfunction finalCleanUpCode(out, async) {\n var matches = out.match(ERRORS_REGEXP);\n if (matches && matches.length == 2) {\n out = async\n ? out.replace(REMOVE_ERRORS_ASYNC, '')\n .replace(RETURN_ASYNC, RETURN_DATA_ASYNC)\n : out.replace(REMOVE_ERRORS, '')\n .replace(RETURN_VALID, RETURN_TRUE);\n }\n\n matches = out.match(ROOTDATA_REGEXP);\n if (!matches || matches.length !== 3) return out;\n return out.replace(REMOVE_ROOTDATA, '');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/' \\+ '/g, '');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [undefined];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \\'array\\'; ';\n }\n out += ' var ' + ($coerced) + ' = undefined; ';\n var $bracesCoercion = '';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($i) {\n out += ' if (' + ($coerced) + ' === undefined) { ';\n $bracesCoercion += '}';\n }\n if (it.opts.coerceTypes == 'array' && $type != 'array') {\n out += ' if (' + ($dataType) + ' == \\'array\\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } ';\n }\n if ($type == 'string') {\n out += ' if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n out = it.util.cleanUpCode(out);\n if ($top) {\n out = it.util.finalCleanUpCode(out, $async);\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d:\\d\\d)?$/i;\nvar HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: hostname,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nfunction hostname(str) {\n // https://tools.ietf.org/html/rfc1034#section-3.5\n // https://tools.ietf.org/html/rfc1123#section-2\n return str.length <= 255 && HOSTNAME.test(str);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return it.util.schemaHasRules($sch, it.RULES.all);\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n out = it.util.cleanUpCode(out);\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all);\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && it.util.schemaHasRules($thenSch, it.RULES.all),\n $elsePresent = $elseSch !== undefined && it.util.schemaHasRules($elseSch, it.RULES.all),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n out = it.util.cleanUpCode(out);\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if (it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if (it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required);\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if (it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && it.util.schemaHasRules($propertySch, it.RULES.all))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n","'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\nvar definitionSchema = {\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","import * as _Ajv from \"ajv\";\nimport * as DDL from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\n\nconst Ajv = (_Ajv as any).default || _Ajv;\n\nexport const ddl2Schema: object = _ddl2Schema;\n\nconst options: _Ajv.Options = {\n allErrors: false,\n verbose: true,\n jsonPointers: false\n};\n\nfunction doValidate(ddl: DDL.DDLSchema | DDL2.Schema, schema: DDL.DDLSchema | DDL2.Schema) {\n const ajv: _Ajv.Ajv = new Ajv(options);\n const validate = ajv.compile(schema);\n const success = validate(ddl);\n return {\n success,\n errors: validate.errors\n };\n}\n\n/* Not needed ---\n// @ts-ignore\nimport * as ddlSchema from \"../schema/v1.json\";\n\nexport function validate(ddl: DDL.DDLSchema) {\n return doValidate(ddl, ddlSchema);\n}\n*/\n\n// @ts-ignore\nimport * as _ddl2Schema from \"../schema/v2.json\";\n\nexport function validate2(ddl: DDL2.Schema) {\n return doValidate(ddl, _ddl2Schema);\n}\n","export * from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nexport * from \"./upgrade\";\nexport * from \"./validate\";\n\nexport { DDL1, DDL2 };\n\nexport function isDDL2Schema(ref: DDL1.DDLSchema | DDL2.Schema): ref is DDL2.Schema {\n return (ref as DDL2.Schema).version !== undefined && (ref as DDL2.Schema).datasources !== undefined && (ref as DDL2.Schema).dataviews !== undefined;\n}\n"],"names":["DDL1.isHipieDatasource","DDL1.isWorkunitDatasource","DDL1.isDatabombDatasource","DDL1.isFormVisualization","DDL1.isPieVisualization","DDL1.isChoroVisualization","DDL1.isLineVisualization","DDL1.isTableVisualization","DDL1.isGraphVisualization","DDL1.isSliderVisualization","DDL2.isRoxieServiceRef","upgrade","dermatologyUpgrade","merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","IDENTIFIER","customRuleCode","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","Ajv","_Ajv.default"],"mappings":";;;;;;QAAa,QAAQ,GAAG,oBAAoB;QAC/B,WAAW,GAAG,UAAU;QACxB,aAAa,GAAG;;aC0Bb,oBAAoB,CAAC,GAAmB;QACpD,OAAQ,GAA2B,CAAC,IAAI,KAAK,SAAS,CAAC;IAC3D,CAAC;aAKe,oBAAoB,CAAC,GAAmB;QACpD,OAAQ,GAA2B,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1D,CAAC;aAKe,iBAAiB,CAAC,GAAmB;QACjD,OAAQ,GAAwB,CAAC,GAAG,KAAK,SAAS,CAAC;IACvD,CAAC;aA0Je,kBAAkB,CAAC,GAAsB;QACrD,OAAQ,GAAyB,CAAC,IAAI,KAAK,KAAK,IAAK,GAAyB,CAAC,IAAI,KAAK,KAAK,CAAC;IAClG,CAAC;aAMe,mBAAmB,CAAC,GAAsB;QACtD,OAAQ,GAA0B,CAAC,IAAI,KAAK,MAAM,CAAC;IACvD,CAAC;aAUe,oBAAoB,CAAC,GAAsB;QACvD,OAAQ,GAA2B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;aAOe,oBAAoB,CAAC,GAAsB;QACvD,OAAQ,GAA2B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;aAOe,qBAAqB,CAAC,GAAsB;QACxD,OAAQ,GAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC3D,CAAC;aAsBe,oBAAoB,CAAC,GAAsB;QACvD,OAAQ,GAA2B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;aAMe,sBAAsB,CAAC,GAAsB;QACzD,OAAQ,GAA6B,CAAC,IAAI,KAAK,UAAU,CAAC;IAC9D,CAAC;aAKe,mBAAmB,CAAC,GAAsB;QACtD,OAAQ,GAA0B,CAAC,IAAI,KAAK,MAAM,CAAC;IACvD,CAAC;aAwBe,gBAAgB,CAAC,QAA0B;QACvD,OAAQ,QAAiC,CAAC,KAAK,KAAK,SAAS,CAAC;IAClE,CAAC;aACe,iBAAiB,CAAC,QAA0B;QACxD,OAAQ,QAAkC,CAAC,MAAM,KAAK,SAAS,CAAC;IACpE,CAAC;aACe,gBAAgB,CAAC,QAA0B;QACvD,OAAQ,QAAiC,CAAC,OAAO,KAAK,SAAS,CAAC;IACpE;;;;;;;;;;;;;;;;;;;;aCnJgB,aAAa,CAAC,GAAmB;QAC7C,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;aAEe,aAAa,CAAC,GAAmB;QAC7C,OAAQ,GAAoB,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;aAEe,iBAAiB,CAAC,GAAmB;QACjD,OAAQ,GAAwB,CAAC,OAAO,KAAK,SAAS,CAAC;IAC3D,CAAC;aA+Be,kBAAkB,CAAC,EAAmB;QAClD,OAAO,CAAC,CAAE,EAAuB,CAAC,MAAM,CAAC;IAC7C,CAAC;aAMe,gBAAgB,CAAC,QAAmB;QAChD,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;IACtC,CAAC;aAuDe,iBAAiB,CAAC,QAAmB;QACjD,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;IACvC,CAAC;aAKe,kBAAkB,CAAC,QAAmB;QAClD,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC;IACxC,CAAC;aAsBe,iBAAiB,CAAC,QAAmB;QACjD,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;IACvC,CAAC;aAYe,cAAc,CAAC,QAAmB;QAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;IACpC,CAAC;aAOe,eAAe,CAAC,QAAmB;QAC/C,OAAO,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;IACrC,CAAC;IAgBM,IAAM,aAAa,GAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;;;ICpVnE;IACA;AACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AAiBA;IACO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;AA2HD;IACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;IAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IACjC;;IC1KA,IAAM,aAAa,GAAQ;QACvB,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,cAAc;QAC9B,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,cAAc;QAC9B,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,aAAa;KAC7B,CAAC;IACF,IAAM,gBAAgB,GAAQ;QAC1B,kBAAkB,EAAE;YAChB,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAC,CAAM,IAAK,OAAA,QAAQ,GAAA,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAC,CAAM,IAAK,OAAA,CAAC,GAAA,EAAE;SAC3D;QACD,iBAAiB,EAAE;YACf,IAAI,EAAE,mBAAmB;SAC5B;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,oBAAoB;SAC7B;QACD,iBAAiB,EAAE;YACf,IAAI,EAAE,mBAAmB;SAC5B;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,oBAAoB;SAC7B;QACD,WAAW,EAAE;YACT,IAAI,EAAE,sBAAsB;SAC/B;QACD,WAAW,EAAE;YACT,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,UAAC,CAAM;gBACd,IAAI,CAAC,KAAK,KAAK;oBAAE,OAAO,QAAQ,CAAC;gBACjC,OAAO,YAAY,CAAC;aACvB;SACJ;QACD,WAAW,EAAE;YACT,IAAI,EAAE,aAAa;SACtB;QACD,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,UAAC,CAAM,IAAK,OAAA,CAAC,GAAG,UAAU,GAAG,YAAY,GAAA;SACvD;QACD,UAAU,EAAE;YACR,IAAI,EAAE,YAAY;SACrB;QACD,oBAAoB,EAAE;YAClB,IAAI,EAAE,sBAAsB;SAC/B;QACD,oBAAoB,EAAE;YAClB,IAAI,EAAE,sBAAsB;SAC/B;QACD,WAAW,EAAE;YACT,IAAI,EAAE,oBAAoB;SAC7B;QACD,OAAO,EAAE;YACL,IAAI,EAAE,cAAc;SACvB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,iBAAiB;SAC1B;QACD,SAAS,EAAE;YACP,IAAI,EAAE,iBAAiB;SAC1B;QACD,cAAc,EAAE;YACZ,IAAI,EAAE,WAAW;SACpB;QACD,GAAG,EAAE;YACD,IAAI,EAAE,gBAAgB;SACzB;QACD,IAAI,EAAE;YACF,IAAI,EAAE,iBAAiB;SAC1B;QACD,WAAW,EAAE;YACT,IAAI,EAAE,wBAAwB;SACjC;QACD,eAAe,EAAE;YACb,IAAI,EAAE,wBAAwB;SACjC;QACD,WAAW,EAAE;YACT,IAAI,EAAE,cAAc;SACvB;QACD,OAAO,EAAE;YACL,IAAI,EAAE,uBAAuB;SAChC;KACJ,CAAC;IAEF,SAAS,UAAU,CAAC,MAAW,EAAE,GAAQ,EAAE,GAAQ;QAC/C,IAAI,KAAK,CAAC;QAEV,KAAK,IAAM,CAAC,IAAI,MAAM,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAChC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM;aACT;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC5C,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxC,IAAI,KAAK,KAAK,SAAS,EAAE;oBACrB,MAAM;iBACT;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAiB,EAAE,OAAY;QAEvD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE1C,SAAS,iBAAiB,CAAC,EAAO;YAC9B,IAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC;YACvB,IAAM,YAAY,GAAQ,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,YAAY,EAAE;gBACd,IAAM,cAAc,GAAQ,YAAY,CAAC,YAAY,CAAC;gBACtD,IAAM,aAAa,GAAQ,YAAY,CAAC,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC;gBAChI,IAAM,eAAe,GAAQ,aAAa,CAAC,YAAY,CAAC;gBACxD,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBACnC,4BAA4B,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;gBAC9D,6BAA6B,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;gBAC/D,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE;oBACvC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC;iBACjF;aACJ;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,CAAC;aACpD;YAED,SAAS,mBAAmB,CAAC,aAAkB;gBAC3C,EAAE,CAAC,aAAa,CAAC,OAAO,GAAG,yBAAyB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5E,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,GAAG,0BAA0B,CAAC;gBACjE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM;oBAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjF,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;gBAEtE,SAAS,yBAAyB,CAAC,MAAc;oBAC7C,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;iBACjE;aACJ;YACD,SAAS,4BAA4B,CAAC,cAAmB,EAAE,eAAoB;gBAC3E,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;gBAClC,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;gBAC7F,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,KAAK,IAAM,QAAQ,IAAI,cAAc,EAAE;oBACnC,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;wBACnD,IAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;wBAEpD,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,KAAK,UAAU,EAAE;4BAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;yBAC7G;6BAAM;4BACH,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;yBACvE;qBAEJ;iBACJ;gBACD,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE;oBAC9E,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;iBACpD;aACJ;YACD,SAAS,6BAA6B,CAAC,cAAmB,EAAE,eAAoB;gBAC5E,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/E,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;gBAClC,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;gBAC7F,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wCACzD,QAAQ;oBACf,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;wBACnD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,KAAK,EAAE;4BAC7C,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,CAAM;gCACtC,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;gCAC3B,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACzF,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,KAAK,UAAU,EAAE;oCAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;iCACrH;qCAAM;oCACH,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;iCAC/E;6BACJ,CAAC,CAAC;yBACN;6BAAM;4BACH,IAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;4BACpD,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;yBACrH;qBACJ;;gBAhBL,KAAK,IAAM,QAAQ,IAAI,eAAe;4BAA3B,QAAQ;iBAiBlB;aACJ;SACJ;IACL,CAAC;IAWD,SAAS,0BAA0B,CAAC,IAAiB,EAAE,OAAY;QAC/D,IAAM,MAAM,GAAkB;YAC1B,MAAM,EAAE,EAAE;SACb,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO;QAC9C,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAS;YAC3C,IAAM,YAAY,GAAiB;;gBAE/B,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI;gBACjC,QAAQ,EAAE;oBACN,IAAI,CAAC,YAAY,CAAC,OAAO;oBACzB,IAAI,CAAC,YAAY,CAAC,OAAO;oBACzB,IAAI,CAAC,YAAY,CAAC,WAAW;oBAC7B,IAAI,CAAC,YAAY,CAAC,WAAW;iBAChC;aACJ,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,OAAO,CAAC,IAAiB,EAAE,OAAY;QACnD,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD;;ICrNA,SAAS,SAAS,CAAC,MAAW;QAI1B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;QAyBI,oBAAY,GAAc,EAAE,OAAyC,EAAE,IAAqB,EAAE,WAAkB;YAApF,wBAAA,EAAA,iCAAyC;YAAE,qBAAA,EAAA,aAAqB;YAAE,4BAAA,EAAA,kBAAkB;YAnBhH,iBAAY,GAA0C,EAAE,CAAC;YACzD,uBAAkB,GAAsD,EAAE,CAAC;YAC3E,oBAAe,GAA6C,EAAE,CAAC;YAE/D,qBAAgB,GAA0C,EAAE,CAAC;YAC7D,0BAAqB,GAAmF,EAAE,CAAC;YAE3G,mBAAc,GAAiC,EAAE,CAAC;YAClD,4BAAuB,GASnB,EAAE,CAAC;YAGH,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAEhC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;QAED,gCAAW,GAAX,UAAY,CAAS;YACjB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SAClD;QAED,yCAAoB,GAApB,UAAqB,GAA2B;YAC5C,IAAK,GAAW,CAAC,MAAM,EAAE;gBACrB,IAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAE,GAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAIA,iBAAsB,CAAC,EAAE,CAAC,EAAE;oBAC5B,OAAO,IAAI,CAAC;iBACf;aACJ;YACD,OAAO,KAAK,CAAC;SAChB;QAED,yCAAoB,GAApB,UAAqB,IAAY,EAAE,KAAa;YAC5C,IAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,IAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAqB,UAAkB,EAAlB,KAAA,UAAU,CAAC,OAAO,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;gBAApC,IAAM,MAAM,SAAA;gBACb,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,KAAqB,UAAa,EAAb,KAAA,MAAM,CAAC,MAAM,EAAb,cAAa,EAAb,IAAa,EAAE;wBAA/B,IAAM,MAAM,SAAA;wBACb,IAAI,MAAM,KAAK,KAAK,EAAE;4BAClB,MAAM,CAAC,IAAI,CAAC;gCACR,UAAU,YAAA;gCACV,MAAM,QAAA;6BACT,CAAC,CAAC;yBACN;qBACJ;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;SACjB;QAED,yCAAoB,GAApB,UAAqB,IAAY,EAAE,KAAa;YAC5C,IAAM,MAAM,GAA8C,EAAE,CAAC;YAC7D,KAAoB,UAAsC,EAAtC,KAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAtC,cAAsC,EAAtC,IAAsC,EAAE;gBAAvD,IAAM,KAAK,SAAA;gBACZ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;oBACrB,KAAqB,UAAmB,EAAnB,KAAA,KAAK,CAAC,MAAM,CAAC,MAAM,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;wBAArC,IAAM,MAAM,SAAA;wBACb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;4BACrB,UAAU,EAAE,KAAK,CAAC,UAAU;4BAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,MAAM,QAAA;yBACT,CAAC;qBACL;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;SACjB;QAED,6BAAQ,GAAR;YACI,KAAmB,UAAoB,EAApB,KAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,cAAoB,EAApB,IAAoB,EAAE;gBAApC,IAAM,IAAI,SAAA;gBACX,KAAkB,UAAmB,EAAnB,KAAA,IAAI,CAAC,cAAc,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;oBAAlC,IAAM,GAAG,SAAA;oBACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;iBACtC;aACJ;YAED,KAAiB,UAAqB,EAArB,KAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAArB,cAAqB,EAArB,IAAqB,EAAE;gBAAnC,IAAM,EAAE,SAAA;gBACT,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBAC9B,KAAqB,UAAU,EAAV,KAAA,EAAE,CAAC,OAAO,EAAV,cAAU,EAAV,IAAU,EAAE;oBAA5B,IAAM,MAAM,SAAA;oBACb,IAAI,MAAM,CAAC,MAAM,EAAE;wBACf,KAAqB,UAAa,EAAb,KAAA,MAAM,CAAC,MAAM,EAAb,cAAa,EAAb,IAAa,EAAE;4BAA/B,IAAM,MAAM,SAAA;4BACb,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG;gCAC9B,EAAE,EAAE,EAAE,CAAC,EAAE;gCACT,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE;6BACnC,CAAC;yBACL;qBACJ;iBACJ;aACJ;SACJ;QAED,4BAAO,GAAP;YACI,KAAiB,UAAqB,EAArB,KAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAArB,cAAqB,EAArB,IAAqB,EAAE;gBAAnC,IAAM,EAAE,SAAA;gBACT,IAAIC,oBAAyB,CAAC,EAAE,CAAC,EAAE;oBAC/B,IAAM,MAAM,GAAmB;wBAC3B,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,EAAE,CAAC,EAAE;wBACT,GAAG,EAAE,IAAI,CAAC,QAAQ;wBAClB,IAAI,EAAE,IAAI,CAAC,KAAM;wBACjB,OAAO,EAAE,EAAE;qBACd,CAAC;oBACF,KAAqB,UAAU,EAAV,KAAA,EAAE,CAAC,OAAO,EAAV,cAAU,EAAV,IAAU,EAAE;wBAA5B,IAAM,MAAM,SAAA;wBACb,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;qBAC9C;oBACD,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;iBACzC;qBAAM,IAAIC,oBAAyB,CAAC,EAAE,CAAC,EAAE,CACzC;qBAAM;oBACH,IAAM,QAAQ,GAAG,EAAE,CAAC,GAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBACvD,IAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC1C,IAAM,MAAM,GAAuB;wBAC/B,IAAI,EAAE,OAAO;wBACb,EAAE,EAAE,EAAE,CAAC,EAAE;wBACT,GAAG,EAAE,SAAS;wBACd,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;wBACvB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;wBACtB,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;qBACd,CAAC;oBACF,KAAqB,UAAU,EAAV,KAAA,EAAE,CAAC,OAAO,EAAV,cAAU,EAAV,IAAU,EAAE;wBAA5B,IAAM,MAAM,SAAA;wBACb,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;qBAC9C;oBACD,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;iBACzC;aACJ;YACD,KAAmB,UAAoB,EAApB,KAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,cAAoB,EAApB,IAAoB,EAAE;gBAApC,IAAM,IAAI,SAAA;gBACX,KAAkB,UAAmB,EAAnB,KAAA,IAAI,CAAC,cAAc,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;oBAAlC,IAAM,GAAG,SAAA;oBACV,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;wBACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;4BAC5B,IAAI,EAAE,MAAM;4BACZ,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;yBAC5C,CAAC;wBACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;qBACpD;yBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC9B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;4BAC5B,IAAI,EAAE,MAAM;4BACZ,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;yBAClD,CAAC;wBACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;qBACpD;oBAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;iBACvD;aACJ;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;QAED,gCAAW,GAAX;YACI,KAAmB,UAAoB,EAApB,KAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,cAAoB,EAApB,IAAoB,EAAE;gBAApC,IAAM,IAAI,SAAA;gBACX,KAAkB,UAAmB,EAAnB,KAAA,IAAI,CAAC,cAAc,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;oBAAlC,IAAM,GAAG,SAAA;oBACV,IAAI,GAAG,CAAC,MAAM,EAAE;wBACZ,IAAM,sBAAsB,GAAqC,EAAE,CAAC;wBACpE,IAAM,cAAc,GAAa,EAAE,CAAC;wBACpC,IAAM,UAAU,GAAsB,EAAE,CAAC;wBACzC,KAAoB,UAAU,EAAV,KAAA,GAAG,CAAC,MAAM,EAAV,cAAU,EAAV,IAAU,EAAE;4BAA3B,IAAM,KAAK,SAAA;4BACZ,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;gCAC/C,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ;oCAC7B,KAAK,KAAK,CAAC;oCACX,KAAK,KAAK,CAAC;oCACX,KAAK,KAAK;wCACN,UAAU,CAAC,IAAI,CAAC;4CACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;4CAC/C,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC;4CAC5D,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;yCACnB,CAAC,CAAC;wCACtB,MAAM;oCACV,KAAK,KAAK;wCACN,UAAU,CAAC,IAAI,CAAC;4CACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;4CAC/C,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC;4CAC5D,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC,GAAG,SAAS;4CACjH,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;yCACnB,CAAC,CAAC;wCACtB,MAAM;oCACV,KAAK,OAAO;wCACR,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;4CACrD,IAAM,KAAK,GAAQ,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC;4CACnD,QAAQ,KAAK,CAAC,QAAQ;gDAClB,KAAK,KAAK,CAAC;gDACX,KAAK,KAAK,CAAC;gDACX,KAAK,KAAK;oDACN,UAAU,CAAC,IAAI,CAAC;wDACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;wDACpC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;wDAChD,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;qDACtC,CAAC,CAAC;oDACH,MAAM;6CACb;yCACJ;wCACD,sBAAsB,CAAC,IAAI,CAAC;4CACxB,IAAI,EAAE,OAAO;4CACb,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;4CACzC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;4CACnC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM;yCAC3C,CAAC,CAAC;wCACH,MAAM;oCACV;wCACI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;wCAChD,MAAM,IAAI,KAAK,CAAC,+BAA6B,KAAK,CAAC,UAAU,CAAC,QAAU,CAAC,CAAC;iCACjF;6BACJ;iCAAM;gCACH,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;6BACnD;yBACJ;wBACD,IAAI,sBAAsB,CAAC,MAAM,EAAE;4BAC/B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,GAAG,sBAAsB,CAAC;yBACzF;wBACD,IAAI,UAAU,CAAC,MAAM,EAAE;4BACnB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,qBAAO,cAAc,CAAC,CAAC;4BAC9E,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;yBACxE;qBACJ;iBACJ;aACJ;SACJ;QAED,8BAAS,GAAT,UAAU,IAAyC;YAC/C,QAAQ,IAAI;gBACR,KAAK,KAAK;oBACN,OAAO,KAAK,CAAC;gBACjB,KAAK,KAAK;oBACN,OAAO,MAAM,CAAC;gBAClB,KAAK,KAAK;oBACN,OAAO,KAAK,CAAC;gBACjB,KAAK,KAAK;oBACN,OAAO,KAAK,CAAC;aACpB;YACD,MAAM,IAAI,KAAK,CAAC,kCAAgC,IAAM,CAAC,CAAC;SAC3D;QAED,iCAAY,GAAZ;YACI,KAAmB,UAAoB,EAApB,KAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,cAAoB,EAApB,IAAoB,EAAE;gBAApC,IAAM,IAAI,SAAA;gBACX,KAAkB,UAAmB,EAAnB,KAAA,IAAI,CAAC,cAAc,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;oBAAlC,IAAM,GAAG,SAAA;oBACV,IAAIC,mBAAwB,CAAC,GAAG,CAAC,EAAE,CAClC;yBAAM,IAAIC,kBAAuB,CAAC,GAAG,CAAC,EAAE;wBACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;qBAC7B;yBAAM,IAAIC,oBAAyB,CAAC,GAAG,CAAC,EAAE;wBACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;qBAC/B;yBAAM,IAAIC,mBAAwB,CAAC,GAAG,CAAC,EAAE;wBACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;qBAC9B;yBAAM,IAAIC,oBAAyB,CAAC,GAAG,CAAC,EAAE;wBACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;qBAC/B;yBAAM,IAAIC,oBAAyB,CAAC,GAAG,CAAC,EAAE;wBACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;qBAC/B;yBAAM,IAAIC,qBAA0B,CAAC,GAAG,CAAC,EAAE;wBACxC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;qBAChC;yBAAM;wBACH,MAAM,IAAI,KAAK,CAAC,gCAA8B,GAAG,CAAC,IAAM,CAAC,CAAC;qBAC7D;iBACJ;aACJ;SACJ;QAED,oCAAe,GAAf,UAAgB,GAA2B;YACvC,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC7D,CAAC,CAAC;YACH,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACjE,CAAC,CAAC;SACN;QAED,sCAAiB,GAAjB,UAAkB,GAA6B;YAC3C,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACnF,CAAC,CAAC;YACH,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACjE,CAAC,CAAC;SACN;QAED,0CAAqB,GAArB,UAAsB,OAAY;YAC9B,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;SAC7D;QAED,qCAAgB,GAAhB,UAAiB,GAA4B;YACzC,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBACnD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,EAAE,GAAG;oBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5D,CAAC,CAAC;aACN;SACJ;QAED,sCAAiB,GAAjB,UAAkB,GAA6B;YAC3C,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBACvC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrB,IAAI,EAAE,GAAG;oBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAChE,CAAC,CAAC;aACN;SACJ;QAED,mCAAc,GAAd,UAAe,aAAmC,EAAE,UAA2B;YAA3B,2BAAA,EAAA,kBAA2B;YAC3E,IAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,IAAI,aAAa,EAAE;gBACf,KAAK,IAAM,KAAK,IAAI,aAAa,EAAE;oBAC/B,IAAM,QAAQ,GAA6D,EAAE,CAAC;oBAC9E,KAAK,IAAM,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;wBACpC,IAAI,GAAG,KAAK,QAAQ,EAAE;4BAClB,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;yBACxD;6BAAM,IAAI,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACjD,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;4BACjD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;yBAC/D;6BAAM;4BACH,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;yBAC7C;qBACJ;;oBAED,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,GAAG,EAAE;wBAC9B,MAAM,CAAC,IAAI,CAAC;4BACR,KAAK,OAAA;4BACL,QAAQ,UAAA;yBACX,CAAC,CAAC;qBACN;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;SACjB;QAED,sCAAiB,GAAjB,UAAkB,GAA6B;YAC3C,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC3D,CAAC,CAAC;YACH,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC7D,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;gBAClB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE,KAAK;oBACX,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;oBACjD,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC/C,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;iBACxD,CAAC,CAAC;aACN;YACD,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,CAAC,IAAI,EAAE;gBACV,KAAmB,UAAQ,EAAR,KAAA,GAAG,CAAC,IAAI,EAAR,cAAQ,EAAR,IAAQ,EAAE;oBAAxB,IAAM,IAAI,SAAA;oBACX,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;4BAC1B,OAAO,EAAE,gBAAc,GAAG,EAAI;4BAC9B,IAAI,EAAE,KAAK;4BACX,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;4BAC7C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;yBAC1D,CAAC,CAAC;qBACN;iBACJ;aACJ;YACD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1D,eAAe,EAAE,CAAC;wBACd,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,GAAG;wBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;qBAChE,CAAC;aACL,CAAC,CAAC;SACN;QAED,uCAAkB,GAAlB,UAAmB,GAA8B;YAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC7D,CAAC,CAAC;SACN;QAED,gCAAW,GAAX;YACI,KAAmB,UAAoB,EAApB,KAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,cAAoB,EAApB,IAAoB,EAAE;gBAApC,IAAM,IAAI,SAAA;gBACX,KAAkB,UAAmB,EAAnB,KAAA,IAAI,CAAC,cAAc,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;oBAAlC,IAAM,GAAG,SAAA;oBACV,IAAI,GAAG,CAAC,MAAM,EAAE;wBACZ,KAAK,IAAM,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE;4BAC9B,IAAM,OAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAClC,KAAqB,UAAa,EAAb,KAAA,OAAK,CAAC,OAAO,EAAb,cAAa,EAAb,IAAa,EAAE;gCAA/B,IAAM,MAAM,SAAA;gCACb,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gCAC3D,IAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gCAC5E,IAAI,MAAM,CAAC,QAAQ,EAAE;oCACjB,IAAIC,iBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;wCAC7C,KAAK,IAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;4CAC/B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;gDAC7B,MAAM,EAAE,GAAG,CAAC,EAAE;gDACd,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gDACpC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;6CACjC,CAAC,CAAC;yCAC5B;qCACJ;yCAAM;wCACH,IAAM,SAAS,GAA0B;4CACrC,MAAM,EAAE,GAAG,CAAC,EAAE;4CACd,QAAQ,EAAE,EAAE;yCACf,CAAC;wCACF,KAAK,IAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;4CAC/B,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4CACrC,IAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;4CACzF,IAAI,CAAC,QAAQ,EAAE;gDACX,OAAO,CAAC,IAAI,CAAC,sBAAmB,OAAO,oBAAa,GAAG,CAAC,EAAE,sCAA+B,QAAQ,CAAC,EAAE,OAAG,CAAC,CAAC;6CAC5G;iDAAM;gDACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oDACpB,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oDACpC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oDACpD,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;oDAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iDAC9B,CAAC,CAAC;6CACN;yCACJ;wCACD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qCAChF;iCACJ;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;SACJ;QAED,mCAAc,GAAd,UAAe,CAAmB;YAC9B,QAAQ,CAAC;gBACL,KAAK,KAAK;oBACN,OAAO,IAAI,CAAC;gBAChB,KAAK,WAAW;oBACZ,OAAO,IAAI,CAAC;aACnB;YACD,OAAO,CAAC,CAAC;SACZ;QAED,6BAAQ,GAAR;YAAA,iBA0BC;YAzBG,KAAmB,UAAoB,EAApB,KAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,cAAoB,EAApB,IAAoB,EAAE;gBAApC,IAAM,IAAI,SAAA;gBACX,KAAkB,UAAmB,EAAnB,KAAA,IAAI,CAAC,cAAc,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;oBAAlC,IAAM,GAAG,SAAA;oBACV,IAAK,GAAW,CAAC,MAAM,EAAE;wBACrB,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,EAAE;4BAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;4BAC1D,OAAO,CAAC,UAAU,GAAK,GAAW,CAAC,MAAM,CAAC,IAAiB,CAAC,GAAG,CAAC,UAAA,CAAC;gCAC7D,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oCACtB,OAAO;wCACH,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wCACtC,UAAU,EAAE,IAAI;qCACI,CAAC;iCAC5B;gCACD,OAAO;oCACH,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oCAC5B,UAAU,EAAE,KAAK;iCACG,CAAC;6BAC5B,CAAC,CAAC;yBACN;wBACD,IAAK,GAAW,CAAC,MAAM,CAAC,KAAK,EAAE;4BAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;4BAC5D,QAAQ,CAAC,KAAK,GAAG,CAAE,GAAW,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC/C;qBACJ;iBACJ;aACJ;SACJ;QAED,gCAAW,GAAX,UAAY,GAA2B;YACnC,IAAM,OAAO,GAAkB;gBAC3B,IAAI,EAAE,SAAS;gBACf,eAAe,EAAE,EAAE;aACtB,CAAC;YACF,IAAM,OAAO,GAAiB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAM,OAAO,GAAkB;gBAC3B,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAM,IAAI,GAAe;gBACrB,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAM,KAAK,GAAgB;gBACvB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC;aACX,CAAC;YACF,IAAM,QAAQ,GAAmB;gBAC7B,IAAI,EAAE,UAAU;gBAChB,eAAe,EAAE,EAAE;aACtB,CAAC;YACF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;gBACnC,OAAO,SAAA;gBACP,OAAO,SAAA;gBACP,IAAI,MAAA;gBACJ,OAAO,SAAA;gBACP,KAAK,OAAA;gBACL,QAAQ,UAAA;aACX,CAAC;YACF,IAAM,aAAa,GAAoD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG;gBACpG,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;gBACtC,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM;aACjD,GAAG;gBACI,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;gBACtC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM;aACjD,CAAC;YACN,OAAO;gBACH,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,UAAU,EAAE,aAAa;gBACzB,UAAU,EAAE;oBACR,OAAO;oBACP,OAAO;oBACP,IAAI;oBACJ,OAAO;oBACP,KAAK;iBACR;gBACD,aAAa,sBACT,EAAE,EAAE,GAAG,CAAC,EAAE,EACV,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,EACtB,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,IAC/E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAChC,QAAQ,UAAA,EACR,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAA2B,GAC/D;aACJ,CAAC;SACL;QAED,mCAAc,GAAd,UAAe,SAAiC;YAC5C,QAAQ,SAAS;gBACb,KAAK,MAAM;oBACP,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;gBACxD,KAAK,QAAQ;oBACT,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBAC5D,KAAK,KAAK;oBACN,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBACtD,KAAK,KAAK;oBACN,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBAC5D,KAAK,MAAM;oBACP,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBACjE,KAAK,YAAY;oBACb,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAClE,KAAK,OAAO;oBACR,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;gBAC9E,KAAK,SAAS;oBACV,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;gBAC9D,KAAK,QAAQ;oBACT,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBACjE,KAAK,UAAU;oBACX,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;gBAC9D,KAAK,SAAS;oBACV,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBAC5D,KAAK,OAAO;oBACR,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;gBAC5E,KAAK,OAAO,CAAC;gBACb;oBACI,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;aAC7D;SACJ;QAED,qCAAgB,GAAhB,UAAiB,MAAmC,EAAE,MAAuB;YAA7E,iBAyBC;YAzBqD,uBAAA,EAAA,cAAuB;YACzE,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK;gBACnB,QAAQ,KAAK,CAAC,UAAU,CAAC,IAAI;oBACzB,KAAK,OAAO;wBACR,OAAO;4BACH,IAAI,EAAE,OAAO;4BACb,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAqB,GAAG,SAAS,CAAC;yBAC3F,CAAC;oBACN,KAAK,SAAS;wBACV,OAAO;4BACH,IAAI,EAAE,SAAS;4BACf,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;yBACf,CAAC;oBACN;wBACI,OAAO;4BACH,IAAI,EAAE,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;4BACrE,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS;yBAC9E,CAAC;iBACT;aACJ,CAAC,CAAC;SACN;QAED,4CAAuB,GAAvB,UAAwB,SAAsC,EAAE,MAAe;YAC3E,QAAQ,SAAS;gBACb,KAAK,MAAM,CAAC;gBACZ,KAAK,SAAS;oBACV,OAAO,SAAS,CAAC;gBACrB,KAAK,SAAS,CAAC;gBACf,KAAK,UAAU,CAAC;gBAChB,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,CAAC;gBACd,KAAK,MAAM;oBACP,OAAO,QAAQ,CAAC;gBACpB,KAAK,QAAQ;oBACT,OAAO,QAAQ,CAAC;gBACpB;oBACI,OAAO,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;aAC3C;SACJ;QAED,kCAAa,GAAb,UAAc,MAAoB,EAAE,MAAuB;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG;gBAC/B,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;aAC7C,CAAC;SACL;QAED,mCAAc,GAAd,UAAe,OAAwB;YACnC,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM;gBACxB,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;aACzD,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM;gBACT,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAM,MAAM,GAAsB;oBAC9B,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;iBACjB,CAAC;gBACF,OAAO,MAAM,CAAC;aACjB,CAAC,CAAC;SACN;QAED,gCAAW,GAAX,UAAY,KAAa,EAAE,OAAe;YACtC,OAAO;gBACH,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,EAAE;aACd,CAAC;SACL;QAED,qCAAgB,GAAhB;YACI,IAAM,MAAM,GAA0B,EAAE,CAAC;YACzC,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1C;YACD,OAAO,MAAM,CAAC;SACjB;QAED,mCAAc,GAAd;YACI,IAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC;YACD,OAAO,MAAM,CAAC;SACjB;QAED,oCAAe,GAAf;YACI,OAAO;;aAEN,CAAC;SACL;QAED,0BAAK,GAAL;YACI,OAAO;gBACH,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,WAAW;iBACvB;gBACD,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;gBAChC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE;aACrC,CAAC;SACL;QACL,iBAAC;IAAD,CAAC,IAAA;aAEeC,SAAO,CAAC,GAAc,EAAE,OAAgB,EAAE,IAAa,EAAE,WAA2B,EAAE,eAAoB;QAAjD,4BAAA,EAAA,kBAA2B;QAAE,gCAAA,EAAA,oBAAoB;QACtH,IAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,UAAU,GAAGC,OAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC7tBA,SAAAC,KAAA,GAAA;0CAAyBC,IAAzB;gBAAA;;;YACKA,KAAKC,MAAL,GAAc,CAAlB,EAAqB;iBACf,CAAL,IAAUD,KAAK,CAAL,EAAQE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;gBACMC,KAAKH,KAAKC,MAAL,GAAc,CAAzB;iBACK,IAAIG,IAAI,CAAb,EAAgBA,IAAID,EAApB,EAAwB,EAAEC,CAA1B,EAA6B;qBACvBA,CAAL,IAAUJ,KAAKI,CAAL,EAAQF,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;;iBAEIC,EAAL,IAAWH,KAAKG,EAAL,EAASD,KAAT,CAAe,CAAf,CAAX;mBACOF,KAAKK,IAAL,CAAU,EAAV,CAAP;SAPD,MAQO;mBACCL,KAAK,CAAL,CAAP;;;IAIF,SAAAM,MAAA,CAAuBC,GAAvB,EAAA;eACQ,QAAQA,GAAR,GAAc,GAArB;;IAGD,SAAAC,MAAA,CAAuBC,CAAvB,EAAA;eACQA,MAAMC,SAAN,GAAkB,WAAlB,GAAiCD,MAAM,IAAN,GAAa,MAAb,GAAsBE,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BL,CAA/B,EAAkCM,KAAlC,CAAwC,GAAxC,EAA6CC,GAA7C,GAAmDD,KAAnD,CAAyD,GAAzD,EAA8DE,KAA9D,GAAsEC,WAAtE,EAA9D;;IAGD,SAAAC,WAAA,CAA4BZ,GAA5B,EAAA;eACQA,IAAIY,WAAJ,EAAP;;IAGD,SAAAC,OAAA,CAAwBC,GAAxB,EAAA;eACQA,QAAQX,SAAR,IAAqBW,QAAQ,IAA7B,GAAqCA,eAAeC,KAAf,GAAuBD,GAAvB,GAA8B,OAAOA,IAAIpB,MAAX,KAAsB,QAAtB,IAAkCoB,IAAIN,KAAtC,IAA+CM,IAAIE,WAAnD,IAAkEF,IAAIP,IAAtE,GAA6E,CAACO,GAAD,CAA7E,GAAqFC,MAAMV,SAAN,CAAgBV,KAAhB,CAAsBY,IAAtB,CAA2BO,GAA3B,CAAxJ,GAA4L,EAAnM;;IAID,SAAAG,MAAA,CAAuBC,MAAvB,EAAuCC,MAAvC,EAAA;YACOL,MAAMI,MAAZ;YACIC,MAAJ,EAAY;iBACN,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;oBACrBC,GAAJ,IAAWD,OAAOC,GAAP,CAAX;;;eAGKN,GAAP;;;ICnCD,SAAAO,SAAA,CAA0BC,KAA1B,EAAA;YAEEC,UAAU,UADX;YAGCC,UAAU,OAHX;YAKCC,WAAWjC,MAAMgC,OAAN,EAAe,UAAf,CALZ;YAQCE,eAAe3B,OAAOA,OAAO,YAAY0B,QAAZ,GAAuB,GAAvB,GAA6BA,QAA7B,GAAwCA,QAAxC,GAAmD,GAAnD,GAAyDA,QAAzD,GAAoEA,QAA3E,IAAuF,GAAvF,GAA6F1B,OAAO,gBAAgB0B,QAAhB,GAA2B,GAA3B,GAAiCA,QAAjC,GAA4CA,QAAnD,CAA7F,GAA4J,GAA5J,GAAkK1B,OAAO,MAAM0B,QAAN,GAAiBA,QAAxB,CAAzK,CARhB;;uBASgB,yBAThB;YAUCE,eAAe,qCAVhB;YAWCC,aAAapC,MAAMqC,YAAN,EAAoBF,YAApB,CAXd;YAYCG,YAAYR,QAAQ,6EAAR,GAAwF,IAZrG;;qBAacA,QAAQ,mBAAR,GAA8B,IAb5C;;uBAcgB9B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,gBAAxB,EAA0CM,SAA1C,CAdhB;YAeCC,UAAUhC,OAAOwB,UAAU/B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,aAAxB,CAAV,GAAmD,GAA1D,CAfX;YAgBCQ,YAAYjC,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CAhBb;YAkBCO,qBAAqBnC,OAAOA,OAAO,SAAP,IAAoB,GAApB,GAA0BA,OAAO,WAAWyB,OAAlB,CAA1B,GAAuD,GAAvD,GAA6DzB,OAAO,MAAMyB,OAAN,GAAgBA,OAAvB,CAA7D,GAA+F,GAA/F,GAAqGzB,OAAO,YAAYyB,OAAnB,CAArG,GAAmI,OAAnI,GAA6IA,OAApJ,CAlBtB;;uBAmBgBzB,OAAOmC,qBAAqB,KAArB,GAA6BA,kBAA7B,GAAkD,KAAlD,GAA0DA,kBAA1D,GAA+E,KAA/E,GAAuFA,kBAA9F,CAnBhB;YAoBCC,OAAOpC,OAAO0B,WAAW,OAAlB,CApBR;YAqBCW,QAAQrC,OAAOA,OAAOoC,OAAO,KAAP,GAAeA,IAAtB,IAA8B,GAA9B,GAAoCE,YAA3C,CArBT;YAsBCC,gBAAgBvC,OAAmEA,OAAOoC,OAAO,KAAd,IAAuB,KAAvB,GAA+BC,KAAlG,CAtBjB;;wBAuBiBrC,OAAwD,WAAWA,OAAOoC,OAAO,KAAd,CAAX,GAAkC,KAAlC,GAA0CC,KAAlG,CAvBjB;;wBAwBiBrC,OAAOA,OAAwCoC,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAxBjB;;wBAyBiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAzBjB;;wBA0BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CA1BjB;;wBA2BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAAmEA,IAAnE,GAA0E,KAA1E,GAA2FC,KAAlG,CA3BjB;;wBA4BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FC,KAAlG,CA5BjB;;wBA6BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FA,IAAlG,CA7BjB;;wBA8BiBpC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAvD,CA9BjB;;uBA+BgBpC,OAAO,CAACuC,aAAD,EAAgBC,aAAhB,EAA+BC,aAA/B,EAA8CC,aAA9C,EAA6DC,aAA7D,EAA4EC,aAA5E,EAA2FC,aAA3F,EAA0GC,aAA1G,EAAyHC,aAAzH,EAAwIhD,IAAxI,CAA6I,GAA7I,CAAP,CA/BhB;YAgCCiD,UAAUhD,OAAOA,OAAOkC,eAAe,GAAf,GAAqBP,YAA5B,IAA4C,GAAnD,CAhCX;;qBAmCc3B,OAAO,SAAS0B,QAAT,GAAoB,MAApB,GAA6BjC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA7B,GAA0E,GAAjF,CAnCd;;oBAqCa5B,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,CAA5B,IAAiE,GAAxE,CArCb;YAyCCqB,SAASjD,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,UAAlC,CAA5B,CAzCV;YA4CCsB,iBAAiBlD,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CA5ClB;YAmDCuB,SAASnD,OAAOA,OAAOiD,SAAS,GAAT,GAAexD,MAAM,UAAN,EAAkB2D,UAAlB,CAAtB,IAAuD,GAA9D,CAnDV;eAmEO;wBACO,IAAIC,MAAJ,CAAW5D,MAAM,KAAN,EAAa+B,OAAb,EAAsBC,OAAtB,EAA+B,aAA/B,CAAX,EAA0D,GAA1D,CADP;0BAES,IAAI4B,MAAJ,CAAW5D,MAAM,WAAN,EAAmByC,YAAnB,EAAiCN,YAAjC,CAAX,EAA2D,GAA3D,CAFT;sBAGK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAHL;sBAIK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAJL;+BAKc,IAAIyB,MAAJ,CAAW5D,MAAM,cAAN,EAAsByC,YAAtB,EAAoCN,YAApC,CAAX,EAA8D,GAA9D,CALd;uBAMM,IAAIyB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,EAA8DwB,UAA9D,CAAX,EAAsF,GAAtF,CANN;0BAOS,IAAIC,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,CAAX,EAA0E,GAA1E,CAPT;oBAQG,IAAIyB,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2BN,YAA3B,CAAX,EAAqD,GAArD,CARH;wBASO,IAAIyB,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CATP;yBAUQ,IAAImB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BL,UAA9B,CAAX,EAAsD,GAAtD,CAVR;yBAWQ,IAAIwB,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAXR;yBAYQ,IAAI0B,MAAJ,CAAW,OAAOf,YAAP,GAAsB,IAAjC,CAZR;yBAaQ,IAAIe,MAAJ,CAAW,WAAWC,YAAX,GAA0B,GAA1B,GAAgCtD,OAAOA,OAAO,iBAAiB0B,QAAjB,GAA4B,MAAnC,IAA6C,GAA7C,GAAmDsB,OAAnD,GAA6D,GAApE,CAAhC,GAA2G,QAAtH,CAbR;SAAP;;IAiBD,mBAAe1B,UAAU,KAAV,CAAf;;ICrFA,mBAAeA,UAAU,IAAV,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICDA;;IACA,IAAMiC,SAAS,UAAf;;;IAGA,IAAMC,OAAO,EAAb;IACA,IAAMC,OAAO,CAAb;IACA,IAAMC,OAAO,EAAb;IACA,IAAMC,OAAO,EAAb;IACA,IAAMC,OAAO,GAAb;IACA,IAAMC,cAAc,EAApB;IACA,IAAMC,WAAW,GAAjB;IACA,IAAMC,YAAY,GAAlB;;;IAGA,IAAMC,gBAAgB,OAAtB;IACA,IAAMC,gBAAgB,YAAtB;IACA,IAAMC,kBAAkB,2BAAxB;;;IAGA,IAAMC,SAAS;iBACF,iDADE;kBAED,gDAFC;sBAGG;KAHlB;;;IAOA,IAAMC,gBAAgBZ,OAAOC,IAA7B;IACA,IAAMY,QAAQC,KAAKD,KAAnB;IACA,IAAME,qBAAqBC,OAAOC,YAAlC;;;;;;;;;;IAUA,SAASC,OAAT,CAAeC,IAAf,EAAqB;WACd,IAAIC,UAAJ,CAAeT,OAAOQ,IAAP,CAAf,CAAN;;;;;;;;;;;IAWD,SAASE,GAAT,CAAaC,KAAb,EAAoBC,EAApB,EAAwB;SACjBC,SAAS,EAAf;SACIrF,SAASmF,MAAMnF,MAAnB;YACOA,QAAP,EAAiB;aACTA,MAAP,IAAiBoF,GAAGD,MAAMnF,MAAN,CAAH,CAAjB;;YAEMqF,MAAP;;;;;;;;;;;;;IAaD,SAASC,SAAT,CAAmBC,MAAnB,EAA2BH,EAA3B,EAA+B;SACxBI,QAAQD,OAAOzE,KAAP,CAAa,GAAb,CAAd;SACIuE,SAAS,EAAb;SACIG,MAAMxF,MAAN,GAAe,CAAnB,EAAsB;;;eAGZwF,MAAM,CAAN,IAAW,GAApB;eACSA,MAAM,CAAN,CAAT;;;cAGQD,OAAOE,OAAP,CAAelB,eAAf,EAAgC,MAAhC,CAAT;SACMmB,SAASH,OAAOzE,KAAP,CAAa,GAAb,CAAf;SACM6E,UAAUT,IAAIQ,MAAJ,EAAYN,EAAZ,EAAgBhF,IAAhB,CAAqB,GAArB,CAAhB;YACOiF,SAASM,OAAhB;;;;;;;;;;;;;;;;IAgBD,SAASC,UAAT,CAAoBL,MAApB,EAA4B;SACrBM,SAAS,EAAf;SACIC,UAAU,CAAd;SACM9F,SAASuF,OAAOvF,MAAtB;YACO8F,UAAU9F,MAAjB,EAAyB;UAClB+F,QAAQR,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;UACIC,SAAS,MAAT,IAAmBA,SAAS,MAA5B,IAAsCD,UAAU9F,MAApD,EAA4D;;WAErDiG,QAAQV,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;WACI,CAACG,QAAQ,MAAT,KAAoB,MAAxB,EAAgC;;eACxBC,IAAP,CAAY,CAAC,CAACH,QAAQ,KAAT,KAAmB,EAApB,KAA2BE,QAAQ,KAAnC,IAA4C,OAAxD;QADD,MAEO;;;eAGCC,IAAP,CAAYH,KAAZ;;;OARF,MAWO;cACCG,IAAP,CAAYH,KAAZ;;;YAGKF,MAAP;;;;;;;;;;;IAWD,IAAMM,aAAa,SAAbA,UAAa;YAAStB,OAAOuB,aAAP,iCAAwBjB,KAAxB,EAAT;KAAnB;;;;;;;;;;;IAWA,IAAMkB,eAAe,SAAfA,YAAe,CAASC,SAAT,EAAoB;SACpCA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;aACrBA,YAAY,IAAnB;;SAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;aACrBA,YAAY,IAAnB;;SAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;aACrBA,YAAY,IAAnB;;YAEMzC,IAAP;KAVD;;;;;;;;;;;;;IAwBA,IAAM0C,eAAe,SAAfA,YAAe,CAASC,KAAT,EAAgBC,IAAhB,EAAsB;;;YAGnCD,QAAQ,EAAR,GAAa,MAAMA,QAAQ,EAAd,CAAb,IAAkC,CAACC,QAAQ,CAAT,KAAe,CAAjD,CAAP;KAHD;;;;;;;IAWA,IAAMC,QAAQ,SAARA,KAAQ,CAASC,KAAT,EAAgBC,SAAhB,EAA2BC,SAA3B,EAAsC;SAC/CC,IAAI,CAAR;aACQD,YAAYnC,MAAMiC,QAAQ1C,IAAd,CAAZ,GAAkC0C,SAAS,CAAnD;cACSjC,MAAMiC,QAAQC,SAAd,CAAT;mCAC8BD,QAAQlC,gBAAgBV,IAAhB,IAAwB,CAA9D,EAAiE+C,KAAKjD,IAAtE,EAA4E;cACnEa,MAAMiC,QAAQlC,aAAd,CAAR;;YAEMC,MAAMoC,IAAI,CAACrC,gBAAgB,CAAjB,IAAsBkC,KAAtB,IAA+BA,QAAQ3C,IAAvC,CAAV,CAAP;KAPD;;;;;;;;;IAiBA,IAAM+C,SAAS,SAATA,MAAS,CAASC,KAAT,EAAgB;;SAExBnB,SAAS,EAAf;SACMoB,cAAcD,MAAMhH,MAA1B;SACIkH,IAAI,CAAR;SACIC,IAAIhD,QAAR;SACIiD,OAAOlD,WAAX;;;;;;SAMImD,QAAQL,MAAMM,WAAN,CAAkBlD,SAAlB,CAAZ;SACIiD,QAAQ,CAAZ,EAAe;cACN,CAAR;;;UAGI,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,KAApB,EAA2B,EAAEE,CAA7B,EAAgC;;UAE3BP,MAAMhB,UAAN,CAAiBuB,CAAjB,KAAuB,IAA3B,EAAiC;eAC1B,WAAN;;aAEMrB,IAAP,CAAYc,MAAMhB,UAAN,CAAiBuB,CAAjB,CAAZ;;;;;;UAMI,IAAIC,QAAQH,QAAQ,CAAR,GAAYA,QAAQ,CAApB,GAAwB,CAAzC,EAA4CG,QAAQP,WAApD,4BAA4F;;;;;;;UAOvFQ,OAAOP,CAAX;WACK,IAAIQ,IAAI,CAAR,EAAWZ,IAAIjD,IAApB,qBAA8CiD,KAAKjD,IAAnD,EAAyD;;WAEpD2D,SAASP,WAAb,EAA0B;gBACnB,eAAN;;;WAGKT,QAAQH,aAAaW,MAAMhB,UAAN,CAAiBwB,OAAjB,CAAb,CAAd;;WAEIhB,SAAS3C,IAAT,IAAiB2C,QAAQ9B,MAAM,CAACd,SAASsD,CAAV,IAAeQ,CAArB,CAA7B,EAAsD;gBAC/C,UAAN;;;YAGIlB,QAAQkB,CAAb;WACMC,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;;WAEIZ,QAAQmB,CAAZ,EAAe;;;;WAITC,aAAa/D,OAAO8D,CAA1B;WACID,IAAIhD,MAAMd,SAASgE,UAAf,CAAR,EAAoC;gBAC7B,UAAN;;;YAGIA,UAAL;;;UAIKC,MAAMhC,OAAO7F,MAAP,GAAgB,CAA5B;aACO0G,MAAMQ,IAAIO,IAAV,EAAgBI,GAAhB,EAAqBJ,QAAQ,CAA7B,CAAP;;;;UAII/C,MAAMwC,IAAIW,GAAV,IAAiBjE,SAASuD,CAA9B,EAAiC;eAC1B,UAAN;;;WAGIzC,MAAMwC,IAAIW,GAAV,CAAL;WACKA,GAAL;;;aAGOC,MAAP,CAAcZ,GAAd,EAAmB,CAAnB,EAAsBC,CAAtB;;;YAIMtC,OAAOuB,aAAP,eAAwBP,MAAxB,CAAP;KAjFD;;;;;;;;;IA2FA,IAAMkC,SAAS,SAATA,MAAS,CAASf,KAAT,EAAgB;SACxBnB,SAAS,EAAf;;;aAGQD,WAAWoB,KAAX,CAAR;;;SAGIC,cAAcD,MAAMhH,MAAxB;;;SAGImH,IAAIhD,QAAR;SACIwC,QAAQ,CAAZ;SACIS,OAAOlD,WAAX;;;;;;;;2BAG2B8C,KAA3B,8HAAkC;WAAvBgB,cAAuB;;WAC7BA,iBAAe,IAAnB,EAAyB;eACjB9B,IAAP,CAAYtB,mBAAmBoD,cAAnB,CAAZ;;;;;;;;;;;;;;;;;;SAIEC,cAAcpC,OAAO7F,MAAzB;SACIkI,iBAAiBD,WAArB;;;;;;SAMIA,WAAJ,EAAiB;aACT/B,IAAP,CAAY9B,SAAZ;;;;YAIM8D,iBAAiBjB,WAAxB,EAAqC;;;;UAIhCkB,IAAIvE,MAAR;;;;;;6BAC2BoD,KAA3B,mIAAkC;YAAvBgB,YAAuB;;YAC7BA,gBAAgBb,CAAhB,IAAqBa,eAAeG,CAAxC,EAA2C;aACtCH,YAAJ;;;;;;;;;;;;;;;;;;;;;UAMII,wBAAwBF,iBAAiB,CAA/C;UACIC,IAAIhB,CAAJ,GAAQzC,MAAM,CAACd,SAAS+C,KAAV,IAAmByB,qBAAzB,CAAZ,EAA6D;eACtD,UAAN;;;eAGQ,CAACD,IAAIhB,CAAL,IAAUiB,qBAAnB;UACID,CAAJ;;;;;;;6BAE2BnB,KAA3B,mIAAkC;YAAvBgB,aAAuB;;YAC7BA,gBAAeb,CAAf,IAAoB,EAAER,KAAF,GAAU/C,MAAlC,EAA0C;iBACnC,UAAN;;YAEGoE,iBAAgBb,CAApB,EAAuB;;aAElBkB,IAAI1B,KAAR;cACK,IAAIG,IAAIjD,IAAb,qBAAuCiD,KAAKjD,IAA5C,EAAkD;cAC3C8D,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;cACIiB,IAAIV,CAAR,EAAW;;;cAGLW,UAAUD,IAAIV,CAApB;cACMC,aAAa/D,OAAO8D,CAA1B;iBACOzB,IAAP,CACCtB,mBAAmB2B,aAAaoB,IAAIW,UAAUV,UAA3B,EAAuC,CAAvC,CAAnB,CADD;cAGIlD,MAAM4D,UAAUV,UAAhB,CAAJ;;;gBAGM1B,IAAP,CAAYtB,mBAAmB2B,aAAa8B,CAAb,EAAgB,CAAhB,CAAnB,CAAZ;gBACO3B,MAAMC,KAAN,EAAayB,qBAAb,EAAoCF,kBAAkBD,WAAtD,CAAP;iBACQ,CAAR;WACEC,cAAF;;;;;;;;;;;;;;;;;;QAIAvB,KAAF;QACEQ,CAAF;;YAGMtB,OAAOzF,IAAP,CAAY,EAAZ,CAAP;KArFD;;;;;;;;;;;;;IAmGA,IAAMmI,YAAY,SAAZA,SAAY,CAASvB,KAAT,EAAgB;YAC1B1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;aACjClB,cAAcmE,IAAd,CAAmBjD,MAAnB,IACJwB,OAAOxB,OAAOtF,KAAP,CAAa,CAAb,EAAgBgB,WAAhB,EAAP,CADI,GAEJsE,MAFH;MADM,CAAP;KADD;;;;;;;;;;;;;IAmBA,IAAMkD,UAAU,SAAVA,OAAU,CAASzB,KAAT,EAAgB;YACxB1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;aACjCjB,cAAckE,IAAd,CAAmBjD,MAAnB,IACJ,SAASwC,OAAOxC,MAAP,CADL,GAEJA,MAFH;MADM,CAAP;KADD;;;;;IAWA,IAAMmD,WAAW;;;;;;gBAML,OANK;;;;;;;;aAcR;gBACG9C,UADH;gBAEGO;MAhBK;eAkBNY,MAlBM;eAmBNgB,MAnBM;gBAoBLU,OApBK;kBAqBHF;KArBd,CAwBA;;ICvbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwFA,IAAaI,UAA6C,EAAnD;IAEP,SAAAC,UAAA,CAA2BC,GAA3B,EAAA;YACOC,IAAID,IAAI7C,UAAJ,CAAe,CAAf,CAAV;YACI+C,UAAJ;YAEID,IAAI,EAAR,EAAYC,IAAI,OAAOD,EAAElI,QAAF,CAAW,EAAX,EAAeM,WAAf,EAAX,CAAZ,KACK,IAAI4H,IAAI,GAAR,EAAaC,IAAI,MAAMD,EAAElI,QAAF,CAAW,EAAX,EAAeM,WAAf,EAAV,CAAb,KACA,IAAI4H,IAAI,IAAR,EAAcC,IAAI,MAAM,CAAED,KAAK,CAAN,GAAW,GAAZ,EAAiBlI,QAAjB,CAA0B,EAA1B,EAA8BM,WAA9B,EAAN,GAAoD,GAApD,GAA0D,CAAE4H,IAAI,EAAL,GAAW,GAAZ,EAAiBlI,QAAjB,CAA0B,EAA1B,EAA8BM,WAA9B,EAA9D,CAAd,KACA6H,IAAI,MAAM,CAAED,KAAK,EAAN,GAAY,GAAb,EAAkBlI,QAAlB,CAA2B,EAA3B,EAA+BM,WAA/B,EAAN,GAAqD,GAArD,GAA2D,CAAG4H,KAAK,CAAN,GAAW,EAAZ,GAAkB,GAAnB,EAAwBlI,QAAxB,CAAiC,EAAjC,EAAqCM,WAArC,EAA3D,GAAgH,GAAhH,GAAsH,CAAE4H,IAAI,EAAL,GAAW,GAAZ,EAAiBlI,QAAjB,CAA0B,EAA1B,EAA8BM,WAA9B,EAA1H;eAEE6H,CAAP;;IAGD,SAAAC,WAAA,CAA4B1I,GAA5B,EAAA;YACK2I,SAAS,EAAb;YACI/B,IAAI,CAAR;YACMgC,KAAK5I,IAAIN,MAAf;eAEOkH,IAAIgC,EAAX,EAAe;gBACRJ,IAAIK,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAV;gBAEI4B,IAAI,GAAR,EAAa;0BACFjE,OAAOC,YAAP,CAAoBgE,CAApB,CAAV;qBACK,CAAL;aAFD,MAIK,IAAIA,KAAK,GAAL,IAAYA,IAAI,GAApB,EAAyB;oBACxBI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;wBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;8BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,CAAb,GAAmBO,KAAK,EAA5C,CAAV;iBAFD,MAGO;8BACI/I,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;qBAEI,CAAL;aAPI,MASA,IAAI4B,KAAK,GAAT,EAAc;oBACbI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;wBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;wBACMoC,KAAKH,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;8BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,EAAb,GAAoB,CAACO,KAAK,EAAN,KAAa,CAAjC,GAAuCC,KAAK,EAAhE,CAAV;iBAHD,MAIO;8BACIhJ,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;qBAEI,CAAL;aARI,MAUA;0BACM5G,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;qBACK,CAAL;;;eAIK+B,MAAP;;IAGD,SAAAM,2BAAA,CAAqCC,UAArC,EAA+DC,QAA/D,EAAA;iBACAC,gBAAC,CAA0BpJ,GAA1B,EAAD;gBACQqJ,SAASX,YAAY1I,GAAZ,CAAf;mBACQ,CAACqJ,OAAOC,KAAP,CAAaH,SAASI,UAAtB,CAAD,GAAqCvJ,GAArC,GAA2CqJ,MAAnD;;YAGGH,WAAWM,MAAf,EAAuBN,WAAWM,MAAX,GAAoBjF,OAAO2E,WAAWM,MAAlB,EAA0BrE,OAA1B,CAAkCgE,SAASM,WAA3C,EAAwDL,gBAAxD,EAA0EzI,WAA1E,GAAwFwE,OAAxF,CAAgGgE,SAASO,UAAzG,EAAqH,EAArH,CAApB;YACnBR,WAAWS,QAAX,KAAwBxJ,SAA5B,EAAuC+I,WAAWS,QAAX,GAAsBpF,OAAO2E,WAAWS,QAAlB,EAA4BxE,OAA5B,CAAoCgE,SAASM,WAA7C,EAA0DL,gBAA1D,EAA4EjE,OAA5E,CAAoFgE,SAASS,YAA7F,EAA2GtB,UAA3G,EAAuHnD,OAAvH,CAA+HgE,SAASM,WAAxI,EAAqJ7I,WAArJ,CAAtB;YACnCsI,WAAWW,IAAX,KAAoB1J,SAAxB,EAAmC+I,WAAWW,IAAX,GAAkBtF,OAAO2E,WAAWW,IAAlB,EAAwB1E,OAAxB,CAAgCgE,SAASM,WAAzC,EAAsDL,gBAAtD,EAAwEzI,WAAxE,GAAsFwE,OAAtF,CAA8FgE,SAASW,QAAvG,EAAiHxB,UAAjH,EAA6HnD,OAA7H,CAAqIgE,SAASM,WAA9I,EAA2J7I,WAA3J,CAAlB;YAC/BsI,WAAWa,IAAX,KAAoB5J,SAAxB,EAAmC+I,WAAWa,IAAX,GAAkBxF,OAAO2E,WAAWa,IAAlB,EAAwB5E,OAAxB,CAAgCgE,SAASM,WAAzC,EAAsDL,gBAAtD,EAAwEjE,OAAxE,CAAiF+D,WAAWM,MAAX,GAAoBL,SAASa,QAA7B,GAAwCb,SAASc,iBAAlI,EAAsJ3B,UAAtJ,EAAkKnD,OAAlK,CAA0KgE,SAASM,WAAnL,EAAgM7I,WAAhM,CAAlB;YAC/BsI,WAAWgB,KAAX,KAAqB/J,SAAzB,EAAoC+I,WAAWgB,KAAX,GAAmB3F,OAAO2E,WAAWgB,KAAlB,EAAyB/E,OAAzB,CAAiCgE,SAASM,WAA1C,EAAuDL,gBAAvD,EAAyEjE,OAAzE,CAAiFgE,SAASgB,SAA1F,EAAqG7B,UAArG,EAAiHnD,OAAjH,CAAyHgE,SAASM,WAAlI,EAA+I7I,WAA/I,CAAnB;YAChCsI,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC+I,WAAWkB,QAAX,GAAsB7F,OAAO2E,WAAWkB,QAAlB,EAA4BjF,OAA5B,CAAoCgE,SAASM,WAA7C,EAA0DL,gBAA1D,EAA4EjE,OAA5E,CAAoFgE,SAASkB,YAA7F,EAA2G/B,UAA3G,EAAuHnD,OAAvH,CAA+HgE,SAASM,WAAxI,EAAqJ7I,WAArJ,CAAtB;eAEhCsI,UAAP;;AACA;IAED,SAAAoB,kBAAA,CAA4BtK,GAA5B,EAAA;eACQA,IAAImF,OAAJ,CAAY,SAAZ,EAAuB,IAAvB,KAAgC,GAAvC;;IAGD,SAAAoF,cAAA,CAAwBV,IAAxB,EAAqCV,QAArC,EAAA;YACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASsB,WAApB,KAAoC,EAApD;;qCACoBD,OAFrB;YAEUE,OAFV;;YAIKA,OAAJ,EAAa;mBACLA,QAAQlK,KAAR,CAAc,GAAd,EAAmBoE,GAAnB,CAAuB0F,kBAAvB,EAA2CxK,IAA3C,CAAgD,GAAhD,CAAP;SADD,MAEO;mBACC+J,IAAP;;;IAIF,SAAAc,cAAA,CAAwBd,IAAxB,EAAqCV,QAArC,EAAA;YACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASyB,WAApB,KAAoC,EAApD;;sCAC0BJ,OAF3B;YAEUE,OAFV;YAEmBG,IAFnB;;YAIKH,OAAJ,EAAa;wCACUA,QAAQ/J,WAAR,GAAsBH,KAAtB,CAA4B,IAA5B,EAAkCsK,OAAlC,EADV;;gBACLC,IADK;gBACCC,KADD;;gBAENC,cAAcD,QAAQA,MAAMxK,KAAN,CAAY,GAAZ,EAAiBoE,GAAjB,CAAqB0F,kBAArB,CAAR,GAAmD,EAAvE;gBACMY,aAAaH,KAAKvK,KAAL,CAAW,GAAX,EAAgBoE,GAAhB,CAAoB0F,kBAApB,CAAnB;gBACMa,yBAAyBhC,SAASsB,WAAT,CAAqBvC,IAArB,CAA0BgD,WAAWA,WAAWxL,MAAX,GAAoB,CAA/B,CAA1B,CAA/B;gBACM0L,aAAaD,yBAAyB,CAAzB,GAA6B,CAAhD;gBACME,kBAAkBH,WAAWxL,MAAX,GAAoB0L,UAA5C;gBACME,SAASvK,MAAcqK,UAAd,CAAf;iBAEK,IAAIvL,IAAI,CAAb,EAAgBA,IAAIuL,UAApB,EAAgC,EAAEvL,CAAlC,EAAqC;uBAC7BA,CAAP,IAAYoL,YAAYpL,CAAZ,KAAkBqL,WAAWG,kBAAkBxL,CAA7B,CAAlB,IAAqD,EAAjE;;gBAGGsL,sBAAJ,EAA4B;uBACpBC,aAAa,CAApB,IAAyBb,eAAee,OAAOF,aAAa,CAApB,CAAf,EAAuCjC,QAAvC,CAAzB;;gBAGKoC,gBAAgBD,OAAOE,MAAP,CAAmD,UAACC,GAAD,EAAMC,KAAN,EAAaxE,KAAb,EAA3E;oBACO,CAACwE,KAAD,IAAUA,UAAU,GAAxB,EAA6B;wBACtBC,cAAcF,IAAIA,IAAI/L,MAAJ,GAAa,CAAjB,CAApB;wBACIiM,eAAeA,YAAYzE,KAAZ,GAAoByE,YAAYjM,MAAhC,KAA2CwH,KAA9D,EAAqE;oCACxDxH,MAAZ;qBADD,MAEO;4BACFkG,IAAJ,CAAS,EAAEsB,YAAF,EAASxH,QAAS,CAAlB,EAAT;;;uBAGK+L,GAAP;aATqB,EAUnB,EAVmB,CAAtB;gBAYMG,oBAAoBL,cAAcM,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ;uBAAUA,EAAErM,MAAF,GAAWoM,EAAEpM,MAAvB;aAAnB,EAAkD,CAAlD,CAA1B;gBAEIsM,gBAAJ;gBACIJ,qBAAqBA,kBAAkBlM,MAAlB,GAA2B,CAApD,EAAuD;oBAChDuM,WAAWX,OAAO3L,KAAP,CAAa,CAAb,EAAgBiM,kBAAkB1E,KAAlC,CAAjB;oBACMgF,UAAUZ,OAAO3L,KAAP,CAAaiM,kBAAkB1E,KAAlB,GAA0B0E,kBAAkBlM,MAAzD,CAAhB;0BACUuM,SAASnM,IAAT,CAAc,GAAd,IAAqB,IAArB,GAA4BoM,QAAQpM,IAAR,CAAa,GAAb,CAAtC;aAHD,MAIO;0BACIwL,OAAOxL,IAAP,CAAY,GAAZ,CAAV;;gBAGG+K,IAAJ,EAAU;2BACE,MAAMA,IAAjB;;mBAGMmB,OAAP;SA5CD,MA6CO;mBACCnC,IAAP;;;IAIF,IAAMsC,YAAY,iIAAlB;IACA,IAAMC,wBAA4C,EAAD,CAAK9C,KAAL,CAAW,OAAX,EAAqB,CAArB,MAA4BnJ,SAA7E;IAEA,SAAAkM,KAAA,CAAsBC,SAAtB,EAAA;YAAwCC,OAAxC,uEAA6D,EAA7D;;YACOrD,aAA2B,EAAjC;YACMC,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;YAEIH,QAAQI,SAAR,KAAsB,QAA1B,EAAoCL,YAAY,CAACC,QAAQ/C,MAAR,GAAiB+C,QAAQ/C,MAAR,GAAiB,GAAlC,GAAwC,EAAzC,IAA+C,IAA/C,GAAsD8C,SAAlE;YAE9B9B,UAAU8B,UAAUhD,KAAV,CAAgB6C,SAAhB,CAAhB;YAEI3B,OAAJ,EAAa;gBACR4B,qBAAJ,EAA2B;;2BAEf5C,MAAX,GAAoBgB,QAAQ,CAAR,CAApB;2BACWb,QAAX,GAAsBa,QAAQ,CAAR,CAAtB;2BACWX,IAAX,GAAkBW,QAAQ,CAAR,CAAlB;2BACWoC,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;2BACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;2BACWN,KAAX,GAAmBM,QAAQ,CAAR,CAAnB;2BACWJ,QAAX,GAAsBI,QAAQ,CAAR,CAAtB;;oBAGIqC,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;+BAChBA,IAAX,GAAkBpC,QAAQ,CAAR,CAAlB;;aAZF,MAcO;;;2BAEKhB,MAAX,GAAoBgB,QAAQ,CAAR,KAAcrK,SAAlC;2BACWwJ,QAAX,GAAuB2C,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;2BACW0J,IAAX,GAAmByC,UAAUQ,OAAV,CAAkB,IAAlB,MAA4B,CAAC,CAA7B,GAAiCtC,QAAQ,CAAR,CAAjC,GAA8CrK,SAAjE;2BACWyM,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;2BACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;2BACWN,KAAX,GAAoBoC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAAjE;2BACWiK,QAAX,GAAuBkC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;;oBAGI0M,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;+BAChBA,IAAX,GAAmBN,UAAUhD,KAAV,CAAgB,+BAAhB,IAAmDkB,QAAQ,CAAR,CAAnD,GAAgErK,SAAnF;;;gBAIE+I,WAAWW,IAAf,EAAqB;;2BAETA,IAAX,GAAkBc,eAAeJ,eAAerB,WAAWW,IAA1B,EAAgCV,QAAhC,CAAf,EAA0DA,QAA1D,CAAlB;;;gBAIGD,WAAWM,MAAX,KAAsBrJ,SAAtB,IAAmC+I,WAAWS,QAAX,KAAwBxJ,SAA3D,IAAwE+I,WAAWW,IAAX,KAAoB1J,SAA5F,IAAyG+I,WAAW0D,IAAX,KAAoBzM,SAA7H,IAA0I,CAAC+I,WAAWa,IAAtJ,IAA8Jb,WAAWgB,KAAX,KAAqB/J,SAAvL,EAAkM;2BACtLwM,SAAX,GAAuB,eAAvB;aADD,MAEO,IAAIzD,WAAWM,MAAX,KAAsBrJ,SAA1B,EAAqC;2BAChCwM,SAAX,GAAuB,UAAvB;aADM,MAEA,IAAIzD,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;2BAClCwM,SAAX,GAAuB,UAAvB;aADM,MAEA;2BACKA,SAAX,GAAuB,KAAvB;;;gBAIGJ,QAAQI,SAAR,IAAqBJ,QAAQI,SAAR,KAAsB,QAA3C,IAAuDJ,QAAQI,SAAR,KAAsBzD,WAAWyD,SAA5F,EAAuG;2BAC3FlI,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,kBAAkB8H,QAAQI,SAA1B,GAAsC,aAA7E;;;gBAIKI,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;gBAGI,CAAC4L,QAAQS,cAAT,KAA4B,CAACD,aAAD,IAAkB,CAACA,cAAcC,cAA7D,CAAJ,EAAkF;;oBAE7E9D,WAAWW,IAAX,KAAoB0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1E,CAAJ,EAA4F;;wBAEvF;mCACQpD,IAAX,GAAkBzB,SAASD,OAAT,CAAiBe,WAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,SAASM,WAAjC,EAA8Cf,WAA9C,EAA2D/H,WAA3D,EAAjB,CAAlB;qBADD,CAEE,OAAO8H,CAAP,EAAU;mCACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,oEAAoEgE,CAA3G;;;;4CAI0BS,UAA5B,EAAwCwD,YAAxC;aAXD,MAYO;;4CAEsBxD,UAA5B,EAAwCC,QAAxC;;;gBAIG4D,iBAAiBA,cAAcV,KAAnC,EAA0C;8BAC3BA,KAAd,CAAoBnD,UAApB,EAAgCqD,OAAhC;;SA3EF,MA6EO;uBACK9H,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,wBAAvC;;eAGMyE,UAAP;;AACA;IAED,SAAAgE,mBAAA,CAA6BhE,UAA7B,EAAuDqD,OAAvD,EAAA;YACOpD,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;YACMS,YAA0B,EAAhC;YAEIjE,WAAWS,QAAX,KAAwBxJ,SAA5B,EAAuC;sBAC5ByF,IAAV,CAAesD,WAAWS,QAA1B;sBACU/D,IAAV,CAAe,GAAf;;YAGGsD,WAAWW,IAAX,KAAoB1J,SAAxB,EAAmC;;sBAExByF,IAAV,CAAe+E,eAAeJ,eAAehG,OAAO2E,WAAWW,IAAlB,CAAf,EAAwCV,QAAxC,CAAf,EAAkEA,QAAlE,EAA4EhE,OAA5E,CAAoFgE,SAASyB,WAA7F,EAA0G,UAACwC,CAAD,EAAIC,EAAJ,EAAQC,EAAR;uBAAe,MAAMD,EAAN,IAAYC,KAAK,QAAQA,EAAb,GAAkB,EAA9B,IAAoC,GAAnD;aAA1G,CAAf;;YAGG,OAAOpE,WAAW0D,IAAlB,KAA2B,QAA3B,IAAuC,OAAO1D,WAAW0D,IAAlB,KAA2B,QAAtE,EAAgF;sBACrEhH,IAAV,CAAe,GAAf;sBACUA,IAAV,CAAerB,OAAO2E,WAAW0D,IAAlB,CAAf;;eAGMO,UAAUzN,MAAV,GAAmByN,UAAUrN,IAAV,CAAe,EAAf,CAAnB,GAAwCK,SAA/C;;AACA;IAED,IAAMoN,OAAO,UAAb;IACA,IAAMC,OAAO,aAAb;IACA,IAAMC,OAAO,eAAb;IACA,IACMC,OAAO,wBAAb;IAEA,SAAAC,iBAAA,CAAkCjH,KAAlC,EAAA;YACOnB,SAAuB,EAA7B;eAEOmB,MAAMhH,MAAb,EAAqB;gBAChBgH,MAAM4C,KAAN,CAAYiE,IAAZ,CAAJ,EAAuB;wBACd7G,MAAMvB,OAAN,CAAcoI,IAAd,EAAoB,EAApB,CAAR;aADD,MAEO,IAAI7G,MAAM4C,KAAN,CAAYkE,IAAZ,CAAJ,EAAuB;wBACrB9G,MAAMvB,OAAN,CAAcqI,IAAd,EAAoB,GAApB,CAAR;aADM,MAEA,IAAI9G,MAAM4C,KAAN,CAAYmE,IAAZ,CAAJ,EAAuB;wBACrB/G,MAAMvB,OAAN,CAAcsI,IAAd,EAAoB,GAApB,CAAR;uBACOhN,GAAP;aAFM,MAGA,IAAIiG,UAAU,GAAV,IAAiBA,UAAU,IAA/B,EAAqC;wBACnC,EAAR;aADM,MAEA;oBACAkH,KAAKlH,MAAM4C,KAAN,CAAYoE,IAAZ,CAAX;oBACIE,EAAJ,EAAQ;wBACDC,IAAID,GAAG,CAAH,CAAV;4BACQlH,MAAM/G,KAAN,CAAYkO,EAAEnO,MAAd,CAAR;2BACOkG,IAAP,CAAYiI,CAAZ;iBAHD,MAIO;0BACA,IAAIC,KAAJ,CAAU,kCAAV,CAAN;;;;eAKIvI,OAAOzF,IAAP,CAAY,EAAZ,CAAP;;AACA;IAED,SAAAiO,SAAA,CAA0B7E,UAA1B,EAAA;YAAoDqD,OAApD,uEAAyE,EAAzE;;YACOpD,WAAYoD,QAAQC,GAAR,GAAcC,YAAd,GAA6BC,YAA/C;YACMS,YAA0B,EAAhC;;YAGMJ,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;YAGIoM,iBAAiBA,cAAcgB,SAAnC,EAA8ChB,cAAcgB,SAAd,CAAwB7E,UAAxB,EAAoCqD,OAApC;YAE1CrD,WAAWW,IAAf,EAAqB;;gBAEhBV,SAASyB,WAAT,CAAqB1C,IAArB,CAA0BgB,WAAWW,IAArC,CAAJ,EAAgD;;;;iBAK3C,IAAI0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1D,EAAuE;;wBAEvE;mCACQpD,IAAX,GAAmB,CAAC0C,QAAQC,GAAT,GAAepE,SAASD,OAAT,CAAiBe,WAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,SAASM,WAAjC,EAA8Cf,WAA9C,EAA2D/H,WAA3D,EAAjB,CAAf,GAA4GyH,SAASH,SAAT,CAAmBiB,WAAWW,IAA9B,CAA/H;qBADD,CAEE,OAAOpB,CAAP,EAAU;mCACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,iDAAiD,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAA1E,IAAuF,iBAAvF,GAA2G/D,CAAlJ;;;;;oCAMyBS,UAA5B,EAAwCC,QAAxC;YAEIoD,QAAQI,SAAR,KAAsB,QAAtB,IAAkCzD,WAAWM,MAAjD,EAAyD;sBAC9C5D,IAAV,CAAesD,WAAWM,MAA1B;sBACU5D,IAAV,CAAe,GAAf;;YAGKoI,YAAYd,oBAAoBhE,UAApB,EAAgCqD,OAAhC,CAAlB;YACIyB,cAAc7N,SAAlB,EAA6B;gBACxBoM,QAAQI,SAAR,KAAsB,QAA1B,EAAoC;0BACzB/G,IAAV,CAAe,IAAf;;sBAGSA,IAAV,CAAeoI,SAAf;gBAEI9E,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBkE,MAAhB,CAAuB,CAAvB,MAA8B,GAArD,EAA0D;0BAC/CrI,IAAV,CAAe,GAAf;;;YAIEsD,WAAWa,IAAX,KAAoB5J,SAAxB,EAAmC;gBAC9B0N,IAAI3E,WAAWa,IAAnB;gBAEI,CAACwC,QAAQ2B,YAAT,KAA0B,CAACnB,aAAD,IAAkB,CAACA,cAAcmB,YAA3D,CAAJ,EAA8E;oBACzEP,kBAAkBE,CAAlB,CAAJ;;gBAGGG,cAAc7N,SAAlB,EAA6B;oBACxB0N,EAAE1I,OAAF,CAAU,OAAV,EAAmB,MAAnB,CAAJ,CAD4B;;sBAInBS,IAAV,CAAeiI,CAAf;;YAGG3E,WAAWgB,KAAX,KAAqB/J,SAAzB,EAAoC;sBACzByF,IAAV,CAAe,GAAf;sBACUA,IAAV,CAAesD,WAAWgB,KAA1B;;YAGGhB,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;sBAC5ByF,IAAV,CAAe,GAAf;sBACUA,IAAV,CAAesD,WAAWkB,QAA1B;;eAGM+C,UAAUrN,IAAV,CAAe,EAAf,CAAP,CAxED;;AAyEC;IAED,SAAAqO,iBAAA,CAAkC5K,IAAlC,EAAsD6K,QAAtD,EAAA;YAA8E7B,OAA9E,uEAAmG,EAAnG;YAAuG8B,iBAAvG;;YACOnN,SAAuB,EAA7B;YAEI,CAACmN,iBAAL,EAAwB;mBAChBhC,MAAM0B,UAAUxK,IAAV,EAAgBgJ,OAAhB,CAAN,EAAgCA,OAAhC,CAAP,CADuB;uBAEZF,MAAM0B,UAAUK,QAAV,EAAoB7B,OAApB,CAAN,EAAoCA,OAApC,CAAX,CAFuB;;kBAIdA,WAAW,EAArB;YAEI,CAACA,QAAQ+B,QAAT,IAAqBF,SAAS5E,MAAlC,EAA0C;mBAClCA,MAAP,GAAgB4E,SAAS5E,MAAzB;;mBAEOG,QAAP,GAAkByE,SAASzE,QAA3B;mBACOE,IAAP,GAAcuE,SAASvE,IAAvB;mBACO+C,IAAP,GAAcwB,SAASxB,IAAvB;mBACO7C,IAAP,GAAc4D,kBAAkBS,SAASrE,IAAT,IAAiB,EAAnC,CAAd;mBACOG,KAAP,GAAekE,SAASlE,KAAxB;SAPD,MAQO;gBACFkE,SAASzE,QAAT,KAAsBxJ,SAAtB,IAAmCiO,SAASvE,IAAT,KAAkB1J,SAArD,IAAkEiO,SAASxB,IAAT,KAAkBzM,SAAxF,EAAmG;;uBAE3FwJ,QAAP,GAAkByE,SAASzE,QAA3B;uBACOE,IAAP,GAAcuE,SAASvE,IAAvB;uBACO+C,IAAP,GAAcwB,SAASxB,IAAvB;uBACO7C,IAAP,GAAc4D,kBAAkBS,SAASrE,IAAT,IAAiB,EAAnC,CAAd;uBACOG,KAAP,GAAekE,SAASlE,KAAxB;aAND,MAOO;oBACF,CAACkE,SAASrE,IAAd,EAAoB;2BACZA,IAAP,GAAcxG,KAAKwG,IAAnB;wBACIqE,SAASlE,KAAT,KAAmB/J,SAAvB,EAAkC;+BAC1B+J,KAAP,GAAekE,SAASlE,KAAxB;qBADD,MAEO;+BACCA,KAAP,GAAe3G,KAAK2G,KAApB;;iBALF,MAOO;wBACFkE,SAASrE,IAAT,CAAckE,MAAd,CAAqB,CAArB,MAA4B,GAAhC,EAAqC;+BAC7BlE,IAAP,GAAc4D,kBAAkBS,SAASrE,IAA3B,CAAd;qBADD,MAEO;4BACF,CAACxG,KAAKoG,QAAL,KAAkBxJ,SAAlB,IAA+BoD,KAAKsG,IAAL,KAAc1J,SAA7C,IAA0DoD,KAAKqJ,IAAL,KAAczM,SAAzE,KAAuF,CAACoD,KAAKwG,IAAjG,EAAuG;mCAC/FA,IAAP,GAAc,MAAMqE,SAASrE,IAA7B;yBADD,MAEO,IAAI,CAACxG,KAAKwG,IAAV,EAAgB;mCACfA,IAAP,GAAcqE,SAASrE,IAAvB;yBADM,MAEA;mCACCA,IAAP,GAAcxG,KAAKwG,IAAL,CAAUpK,KAAV,CAAgB,CAAhB,EAAmB4D,KAAKwG,IAAL,CAAU/C,WAAV,CAAsB,GAAtB,IAA6B,CAAhD,IAAqDoH,SAASrE,IAA5E;;+BAEMA,IAAP,GAAc4D,kBAAkBzM,OAAO6I,IAAzB,CAAd;;2BAEMG,KAAP,GAAekE,SAASlE,KAAxB;;;uBAGMP,QAAP,GAAkBpG,KAAKoG,QAAvB;uBACOE,IAAP,GAActG,KAAKsG,IAAnB;uBACO+C,IAAP,GAAcrJ,KAAKqJ,IAAnB;;mBAEMpD,MAAP,GAAgBjG,KAAKiG,MAArB;;eAGMY,QAAP,GAAkBgE,SAAShE,QAA3B;eAEOlJ,MAAP;;AACA;IAED,SAAAqN,OAAA,CAAwBC,OAAxB,EAAwCC,WAAxC,EAA4DlC,OAA5D,EAAA;YACOmC,oBAAoBzN,OAAO,EAAEuI,QAAS,MAAX,EAAP,EAA4B+C,OAA5B,CAA1B;eACOwB,UAAUI,kBAAkB9B,MAAMmC,OAAN,EAAeE,iBAAf,CAAlB,EAAqDrC,MAAMoC,WAAN,EAAmBC,iBAAnB,CAArD,EAA4FA,iBAA5F,EAA+G,IAA/G,CAAV,EAAgIA,iBAAhI,CAAP;;AACA;IAID,SAAAC,SAAA,CAA0BC,GAA1B,EAAmCrC,OAAnC,EAAA;YACK,OAAOqC,GAAP,KAAe,QAAnB,EAA6B;kBACtBb,UAAU1B,MAAMuC,GAAN,EAAWrC,OAAX,CAAV,EAA+BA,OAA/B,CAAN;SADD,MAEO,IAAItM,OAAO2O,GAAP,MAAgB,QAApB,EAA8B;kBAC9BvC,MAAM0B,UAAyBa,GAAzB,EAA8BrC,OAA9B,CAAN,EAA8CA,OAA9C,CAAN;;eAGMqC,GAAP;;AACA;IAID,SAAAC,KAAA,CAAsBC,IAAtB,EAAgCC,IAAhC,EAA0CxC,OAA1C,EAAA;YACK,OAAOuC,IAAP,KAAgB,QAApB,EAA8B;mBACtBf,UAAU1B,MAAMyC,IAAN,EAAYvC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;SADD,MAEO,IAAItM,OAAO6O,IAAP,MAAiB,QAArB,EAA+B;mBAC9Bf,UAAyBe,IAAzB,EAA+BvC,OAA/B,CAAP;;YAGG,OAAOwC,IAAP,KAAgB,QAApB,EAA8B;mBACtBhB,UAAU1B,MAAM0C,IAAN,EAAYxC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;SADD,MAEO,IAAItM,OAAO8O,IAAP,MAAiB,QAArB,EAA+B;mBAC9BhB,UAAyBgB,IAAzB,EAA+BxC,OAA/B,CAAP;;eAGMuC,SAASC,IAAhB;;AACA;IAED,SAAAC,eAAA,CAAgChP,GAAhC,EAA4CuM,OAA5C,EAAA;eACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAauC,MAAxC,GAAiDxC,aAAawC,MAAtF,EAA+F3G,UAA/F,CAAd;;AACA;IAED,SAAA4G,iBAAA,CAAkClP,GAAlC,EAA8CuM,OAA9C,EAAA;eACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAajD,WAAxC,GAAsDgD,aAAahD,WAA3F,EAAyGf,WAAzG,CAAd;KACA;;ICziBD,IAAMyG,UAA2B;gBACvB,MADuB;oBAGnB,IAHmB;eAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;;gBAEM,CAACrD,WAAWW,IAAhB,EAAsB;2BACVpF,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,6BAAvC;;mBAGMyE,UAAP;SAX+B;mBAcpB,mBAAUA,UAAV,EAAoCqD,OAApC,EAAb;gBACQ6C,SAAS7K,OAAO2E,WAAWM,MAAlB,EAA0B7I,WAA1B,OAA4C,OAA3D;;gBAGIuI,WAAW0D,IAAX,MAAqBwC,SAAS,GAAT,GAAe,EAApC,KAA2ClG,WAAW0D,IAAX,KAAoB,EAAnE,EAAuE;2BAC3DA,IAAX,GAAkBzM,SAAlB;;;gBAIG,CAAC+I,WAAWa,IAAhB,EAAsB;2BACVA,IAAX,GAAkB,GAAlB;;;;;mBAOMb,UAAP;;KA/BF,CAmCA;;IClCA,IAAMiG,YAA2B;gBACvB,OADuB;oBAEnBE,QAAKpC,UAFc;eAGxBoC,QAAKhD,KAHmB;mBAIpBgD,QAAKtB;KAJlB,CAOA;;ICHA,SAAAuB,QAAA,CAAkBC,YAAlB,EAAA;eACQ,OAAOA,aAAaH,MAApB,KAA+B,SAA/B,GAA2CG,aAAaH,MAAxD,GAAiE7K,OAAOgL,aAAa/F,MAApB,EAA4B7I,WAA5B,OAA8C,KAAtH;;;IAID,IAAMwO,YAA2B;gBACvB,IADuB;oBAGnB,IAHmB;eAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;gBACQgD,eAAerG,UAArB;;yBAGakG,MAAb,GAAsBE,SAASC,YAAT,CAAtB;;yBAGaC,YAAb,GAA4B,CAACD,aAAaxF,IAAb,IAAqB,GAAtB,KAA8BwF,aAAarF,KAAb,GAAqB,MAAMqF,aAAarF,KAAxC,GAAgD,EAA9E,CAA5B;yBACaH,IAAb,GAAoB5J,SAApB;yBACa+J,KAAb,GAAqB/J,SAArB;mBAEOoP,YAAP;SAhB+B;mBAmBpB,mBAAUA,YAAV,EAAqChD,OAArC,EAAb;;gBAEMgD,aAAa3C,IAAb,MAAuB0C,SAASC,YAAT,IAAyB,GAAzB,GAA+B,EAAtD,KAA6DA,aAAa3C,IAAb,KAAsB,EAAvF,EAA2F;6BAC7EA,IAAb,GAAoBzM,SAApB;;;gBAIG,OAAOoP,aAAaH,MAApB,KAA+B,SAAnC,EAA8C;6BAChC5F,MAAb,GAAuB+F,aAAaH,MAAb,GAAsB,KAAtB,GAA8B,IAArD;6BACaA,MAAb,GAAsBjP,SAAtB;;;gBAIGoP,aAAaC,YAAjB,EAA+B;4CACRD,aAAaC,YAAb,CAA0BhP,KAA1B,CAAgC,GAAhC,CADQ;;oBACvBuJ,IADuB;oBACjBG,KADiB;;6BAEjBH,IAAb,GAAqBA,QAAQA,SAAS,GAAjB,GAAuBA,IAAvB,GAA8B5J,SAAnD;6BACa+J,KAAb,GAAqBA,KAArB;6BACasF,YAAb,GAA4BrP,SAA5B;;;yBAIYiK,QAAb,GAAwBjK,SAAxB;mBAEOoP,YAAP;;KA1CF,CA8CA;;ICvDA,IAAMJ,YAA2B;gBACvB,KADuB;oBAEnBM,UAAGxC,UAFgB;eAGxBwC,UAAGpD,KAHqB;mBAIpBoD,UAAG1B;KAJhB,CAOA;;ICMA,IAAM2B,IAAkB,EAAxB;;IAIA,IAAMzN,eAAe,6BAAoC,2EAAR,CAA5B,IAAwH,GAA7I;IACA,IAAMR,WAAW,aAAjB;IACA,IAAMC,eAAe3B,OAAOA,OAAO,YAAY0B,QAAZ,GAAuB,GAAvB,GAA6BA,QAA7B,GAAwCA,QAAxC,GAAmD,GAAnD,GAAyDA,QAAzD,GAAoEA,QAA3E,IAAuF,GAAvF,GAA6F1B,OAAO,gBAAgB0B,QAAhB,GAA2B,GAA3B,GAAiCA,QAAjC,GAA4CA,QAAnD,CAA7F,GAA4J,GAA5J,GAAkK1B,OAAO,MAAM0B,QAAN,GAAiBA,QAAxB,CAAzK,CAArB;;;;;;;;;;;;IAaA,IAAMkO,UAAU,uDAAhB;IACA,IAAMC,UAAU,4DAAhB;IACA,IAAMC,UAAUrQ,MAAMoQ,OAAN,EAAe,YAAf,CAAhB;IAMA,IAEME,gBAAgB,qCAAtB;IAWA,IAEMvG,aAAa,IAAInG,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CAAnB;IACA,IAAMwH,cAAc,IAAIrG,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAApB;IACA,IAAMqO,iBAAiB,IAAI3M,MAAJ,CAAW5D,MAAM,KAAN,EAAamQ,OAAb,EAAsB,OAAtB,EAA+B,OAA/B,EAAwCE,OAAxC,CAAX,EAA6D,GAA7D,CAAvB;IAEA,IAAMG,aAAa,IAAI5M,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2B6N,aAA3B,CAAX,EAAsD,GAAtD,CAAnB;IACA,IAAMG,cAAcD,UAApB;IAEA,SAEA5G,gBAAA,CAA0BpJ,GAA1B,EAAA;YACOqJ,SAASX,YAAY1I,GAAZ,CAAf;eACQ,CAACqJ,OAAOC,KAAP,CAAaC,UAAb,CAAD,GAA4BvJ,GAA5B,GAAkCqJ,MAA1C;;IAGD,IAAM8F,YAA8C;gBAC1C,QAD0C;eAG3C,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;gBACQ2D,mBAAmBhH,UAAzB;gBACMiH,KAAKD,iBAAiBC,EAAjB,GAAuBD,iBAAiBnG,IAAjB,GAAwBmG,iBAAiBnG,IAAjB,CAAsBvJ,KAAtB,CAA4B,GAA5B,CAAxB,GAA2D,EAA7F;6BACiBuJ,IAAjB,GAAwB5J,SAAxB;gBAEI+P,iBAAiBhG,KAArB,EAA4B;oBACvBkG,iBAAiB,KAArB;oBACMC,UAAwB,EAA9B;oBACMC,UAAUJ,iBAAiBhG,KAAjB,CAAuB1J,KAAvB,CAA6B,GAA7B,CAAhB;qBAEK,IAAIX,IAAI,CAAR,EAAWD,KAAK0Q,QAAQ5Q,MAA7B,EAAqCG,IAAID,EAAzC,EAA6C,EAAEC,CAA/C,EAAkD;wBAC3C0Q,SAASD,QAAQzQ,CAAR,EAAWW,KAAX,CAAiB,GAAjB,CAAf;4BAEQ+P,OAAO,CAAP,CAAR;6BACM,IAAL;gCACOC,UAAUD,OAAO,CAAP,EAAU/P,KAAV,CAAgB,GAAhB,CAAhB;iCACK,IAAIX,KAAI,CAAR,EAAWD,MAAK4Q,QAAQ9Q,MAA7B,EAAqCG,KAAID,GAAzC,EAA6C,EAAEC,EAA/C,EAAkD;mCAC9C+F,IAAH,CAAQ4K,QAAQ3Q,EAAR,CAAR;;;6BAGG,SAAL;6CACkB4Q,OAAjB,GAA2BvB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAA3B;;6BAEI,MAAL;6CACkBmE,IAAjB,GAAwBxB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAxB;;;6CAGiB,IAAjB;oCACQ2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAR,IAAiD2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAjD;;;;oBAKC6D,cAAJ,EAAoBF,iBAAiBG,OAAjB,GAA2BA,OAA3B;;6BAGJnG,KAAjB,GAAyB/J,SAAzB;iBAEK,IAAIN,MAAI,CAAR,EAAWD,OAAKuQ,GAAGzQ,MAAxB,EAAgCG,MAAID,IAApC,EAAwC,EAAEC,GAA1C,EAA6C;oBACtC8Q,OAAOR,GAAGtQ,GAAH,EAAMW,KAAN,CAAY,GAAZ,CAAb;qBAEK,CAAL,IAAU0O,kBAAkByB,KAAK,CAAL,CAAlB,CAAV;oBAEI,CAACpE,QAAQS,cAAb,EAA6B;;wBAExB;6BACE,CAAL,IAAU5E,SAASD,OAAT,CAAiB+G,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAjB,CAAV;qBADD,CAEE,OAAO8H,CAAP,EAAU;yCACMhE,KAAjB,GAAyByL,iBAAiBzL,KAAjB,IAA0B,6EAA6EgE,CAAhI;;iBALF,MAOO;yBACD,CAAL,IAAUyG,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAV;;mBAGEd,GAAH,IAAQ8Q,KAAK7Q,IAAL,CAAU,GAAV,CAAR;;mBAGMoQ,gBAAP;SA5DkD;mBA+DvC,sBAAUA,gBAAV,EAA6C3D,OAA7C,EAAb;gBACQrD,aAAagH,gBAAnB;gBACMC,KAAKtP,QAAQqP,iBAAiBC,EAAzB,CAAX;gBACIA,EAAJ,EAAQ;qBACF,IAAItQ,IAAI,CAAR,EAAWD,KAAKuQ,GAAGzQ,MAAxB,EAAgCG,IAAID,EAApC,EAAwC,EAAEC,CAA1C,EAA6C;wBACtC+Q,SAASrM,OAAO4L,GAAGtQ,CAAH,CAAP,CAAf;wBACMgR,QAAQD,OAAO5J,WAAP,CAAmB,GAAnB,CAAd;wBACM8J,YAAaF,OAAOjR,KAAP,CAAa,CAAb,EAAgBkR,KAAhB,CAAD,CAAyB1L,OAAzB,CAAiCsE,WAAjC,EAA8CL,gBAA9C,EAAgEjE,OAAhE,CAAwEsE,WAAxE,EAAqF7I,WAArF,EAAkGuE,OAAlG,CAA0G4K,cAA1G,EAA0HzH,UAA1H,CAAlB;wBACIyI,SAASH,OAAOjR,KAAP,CAAakR,QAAQ,CAArB,CAAb;;wBAGI;iCACO,CAACtE,QAAQC,GAAT,GAAepE,SAASD,OAAT,CAAiB+G,kBAAkB6B,MAAlB,EAA0BxE,OAA1B,EAAmC5L,WAAnC,EAAjB,CAAf,GAAoFyH,SAASH,SAAT,CAAmB8I,MAAnB,CAA9F;qBADD,CAEE,OAAOtI,CAAP,EAAU;mCACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,0DAA0D,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAAnF,IAAgG,iBAAhG,GAAoH/D,CAA3J;;uBAGE5I,CAAH,IAAQiR,YAAY,GAAZ,GAAkBC,MAA1B;;2BAGUhH,IAAX,GAAkBoG,GAAGrQ,IAAH,CAAQ,GAAR,CAAlB;;gBAGKuQ,UAAUH,iBAAiBG,OAAjB,GAA2BH,iBAAiBG,OAAjB,IAA4B,EAAvE;gBAEIH,iBAAiBO,OAArB,EAA8BJ,QAAQ,SAAR,IAAqBH,iBAAiBO,OAAtC;gBAC1BP,iBAAiBQ,IAArB,EAA2BL,QAAQ,MAAR,IAAkBH,iBAAiBQ,IAAnC;gBAErBpF,SAAS,EAAf;iBACK,IAAM0F,IAAX,IAAmBX,OAAnB,EAA4B;oBACvBA,QAAQW,IAAR,MAAkBtB,EAAEsB,IAAF,CAAtB,EAA+B;2BACvBpL,IAAP,CACCoL,KAAK7L,OAAL,CAAasE,WAAb,EAA0BL,gBAA1B,EAA4CjE,OAA5C,CAAoDsE,WAApD,EAAiE7I,WAAjE,EAA8EuE,OAA9E,CAAsF6K,UAAtF,EAAkG1H,UAAlG,IACA,GADA,GAEA+H,QAAQW,IAAR,EAAc7L,OAAd,CAAsBsE,WAAtB,EAAmCL,gBAAnC,EAAqDjE,OAArD,CAA6DsE,WAA7D,EAA0E7I,WAA1E,EAAuFuE,OAAvF,CAA+F8K,WAA/F,EAA4G3H,UAA5G,CAHD;;;gBAOEgD,OAAO5L,MAAX,EAAmB;2BACPwK,KAAX,GAAmBoB,OAAOxL,IAAP,CAAY,GAAZ,CAAnB;;mBAGMoJ,UAAP;;KAzGF,CA6GA;;ICnKA,IAAM+H,YAAY,iBAAlB;IACA;IAGA,IAAM9B,YAAqD;gBACjD,KADiD;eAGlD,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;gBACQ/B,UAAUtB,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBT,KAAhB,CAAsB2H,SAAtB,CAAnC;gBACIC,gBAAgBhI,UAApB;gBAEIsB,OAAJ,EAAa;oBACNhB,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;oBACM2H,MAAM3G,QAAQ,CAAR,EAAW7J,WAAX,EAAZ;oBACMyQ,MAAM5G,QAAQ,CAAR,CAAZ;oBACM6G,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;oBACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;8BAEcF,GAAd,GAAoBA,GAApB;8BACcC,GAAd,GAAoBA,GAApB;8BACcrH,IAAd,GAAqB5J,SAArB;oBAEI4M,aAAJ,EAAmB;oCACFA,cAAcV,KAAd,CAAoB6E,aAApB,EAAmC3E,OAAnC,CAAhB;;aAZF,MAcO;8BACQ9H,KAAd,GAAsByM,cAAczM,KAAd,IAAuB,wBAA7C;;mBAGMyM,aAAP;SAzByD;mBA4B9C,sBAAUA,aAAV,EAAuC3E,OAAvC,EAAb;gBACQ/C,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;gBACM2H,MAAMD,cAAcC,GAA1B;gBACME,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;gBACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;gBAEItE,aAAJ,EAAmB;gCACFA,cAAcgB,SAAd,CAAwBmD,aAAxB,EAAuC3E,OAAvC,CAAhB;;gBAGK+E,gBAAgBJ,aAAtB;gBACME,MAAMF,cAAcE,GAA1B;0BACcrH,IAAd,IAAwBoH,OAAO5E,QAAQ4E,GAAvC,UAA8CC,GAA9C;mBAEOE,aAAP;;KA1CF,CA8CA;;IC5DA,IAAMC,OAAO,0DAAb;IACA;IAGA,IAAMpC,YAAsE;gBAClE,UADkE;eAGnE,eAAU+B,aAAV,EAAuC3E,OAAvC,EAAT;gBACQiF,iBAAiBN,aAAvB;2BACeO,IAAf,GAAsBD,eAAeJ,GAArC;2BACeA,GAAf,GAAqBjR,SAArB;gBAEI,CAACoM,QAAQ+B,QAAT,KAAsB,CAACkD,eAAeC,IAAhB,IAAwB,CAACD,eAAeC,IAAf,CAAoBnI,KAApB,CAA0BiI,IAA1B,CAA/C,CAAJ,EAAqF;+BACrE9M,KAAf,GAAuB+M,eAAe/M,KAAf,IAAwB,oBAA/C;;mBAGM+M,cAAP;SAZ0E;mBAe/D,mBAAUA,cAAV,EAAyCjF,OAAzC,EAAb;gBACQ2E,gBAAgBM,cAAtB;;0BAEcJ,GAAd,GAAoB,CAACI,eAAeC,IAAf,IAAuB,EAAxB,EAA4B9Q,WAA5B,EAApB;mBACOuQ,aAAP;;KAnBF,CAuBA;;IChCA7I,QAAQgH,QAAK7F,MAAb,IAAuB6F,OAAvB;IAGAhH,QAAQqJ,UAAMlI,MAAd,IAAwBkI,SAAxB;IAGArJ,QAAQoH,UAAGjG,MAAX,IAAqBiG,SAArB;IAGApH,QAAQsJ,UAAInI,MAAZ,IAAsBmI,SAAtB;IAGAtJ,QAAQuJ,UAAOpI,MAAf,IAAyBoI,SAAzB;IAGAvJ,QAAQwJ,UAAIrI,MAAZ,IAAsBqI,SAAtB;IAGAxJ,QAAQoJ,UAAKjI,MAAb,IAAuBiI,SAAvB,CAEA;;;;;;;;;;;;;;;;;;;;;;;ICrBA,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAC9C;IACA,iBAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;IACtC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC3B;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;IAC9D,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,QAAQ,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC;IACT,QAAQ,MAAM;IACd,QAAQ,GAAG,CAAC;AACZ;IACA,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;IACtB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,OAAO,IAAI,CAAC;IAClB,KAAK;AACL;IACA,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC;AACnC;IACA,IAAI,IAAI,KAAK,GAAG,CAAC,YAAY,IAAI;IACjC,QAAQ,KAAK,GAAG,CAAC,YAAY,IAAI,CAAC;IAClC,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,OAAO,KAAK,CAAC;IACrC,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1D;IACA,IAAI,IAAI,OAAO,GAAG,CAAC,YAAY,MAAM;IACrC,QAAQ,OAAO,GAAG,CAAC,YAAY,MAAM,CAAC;IACtC,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE,OAAO,KAAK,CAAC;IACzC,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChE;IACA,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB;IACA,IAAI,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM;IACpC,MAAM,OAAO,KAAK,CAAC;AACnB;IACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;IAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAClD;IACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;IAC/C,KAAK;AACL;IACA,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;;ICpDD;IACA;IACA,cAAc,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE;IAC1C,EAAE,IAAI,MAAM,GAAG,CAAC;IAChB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;IACtB,MAAM,GAAG,GAAG,CAAC;IACb,MAAM,KAAK,CAAC;IACZ,EAAE,OAAO,GAAG,GAAG,GAAG,EAAE;IACpB,IAAI,MAAM,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;IACzD;IACA,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;IAC5C,KAAK;IACL,GAAG;IACH,EAAE,OAAO,MAAM,CAAC;IAChB,CAAC;;IChBD,QAAc,GAAG;IACjB,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,aAAa,EAAE,aAAa;IAC9B,EAAE,cAAc,EAAE,cAAc;IAChC,EAAE,aAAa,EAAE,aAAa;IAC9B,EAAE,MAAM,EAAE,MAAM;IAChB,EAAE,WAAW,EAAE,WAAW;IAC1B,EAAE,YAAY,EAAE,YAAY;IAC5B,EAAE,KAAK,EAAEK,aAA0B;IACnC,EAAE,UAAU,EAAEC,UAAuB;IACrC,EAAE,aAAa,EAAE,aAAa;IAC9B,EAAE,UAAU,EAAE,UAAU;IACxB,EAAE,WAAW,EAAE,WAAW;IAC1B,EAAE,gBAAgB,EAAE,gBAAgB;IACpC,EAAE,cAAc,EAAE,cAAc;IAChC,EAAE,oBAAoB,EAAE,oBAAoB;IAC5C,EAAE,kBAAkB,EAAE,kBAAkB;IACxC,EAAE,cAAc,EAAE,cAAc;IAChC,EAAE,WAAW,EAAE,WAAW;IAC1B,EAAE,OAAO,EAAE,OAAO;IAClB,EAAE,OAAO,EAAE,OAAO;IAClB,EAAE,gBAAgB,EAAE,gBAAgB;IACpC,EAAE,mBAAmB,EAAE,mBAAmB;IAC1C,EAAE,cAAc,EAAE,cAAc;IAChC,EAAE,iBAAiB,EAAE,iBAAiB;IACtC,CAAC,CAAC;AACF;AACA;IACA,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;IACrB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAChB,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,EAAE,OAAO,EAAE,CAAC;IACZ,CAAC;AACD;AACA;IACA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/C,EAAE,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO;IACxC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;IACpC,MAAM,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE;IAC5B,MAAM,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;IAC9B,EAAE,QAAQ,QAAQ;IAClB,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9C,IAAI,KAAK,OAAO,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,IAAI,GAAG,GAAG,CAAC;IAC5D,IAAI,KAAK,QAAQ,EAAE,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG;IAC/C,0BAA0B,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;IACrE,0BAA0B,GAAG,GAAG,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/D,IAAI,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;IACvE,2BAA2B,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO;IACrD,2BAA2B,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;IAC3D,IAAI,SAAS,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;IACpE,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE;IACzC,EAAE,QAAQ,SAAS,CAAC,MAAM;IAC1B,IAAI,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI;IACJ,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;IACpB,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;IACvC,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACtD,QAAQ,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAAC;IACpD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC;IAC1B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC;IAC3B,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC;IAC5B,OAAO;IACP,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAC7C,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK;IACzB,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrE;IACA,MAAM,OAAO,IAAI,CAAC;IAClB,GAAG;IACH,CAAC;AACD;AACA;IACA,IAAI,eAAe,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACnF,SAAS,aAAa,CAAC,iBAAiB,EAAE,SAAS,EAAE;IACrD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;IAChC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;IACnB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtD,WAAW,IAAI,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvF,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;IACnC,GAAG,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;IACzC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvB,GAAG,MAAM,IAAI,iBAAiB,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;IACrE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,MAAM,CAAC,GAAG,EAAE;IACrB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA,IAAI,UAAU,GAAG,uBAAuB,CAAC;IACzC,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,OAAO,OAAO,GAAG,IAAI,QAAQ;IAC/B,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG;IAC3B,YAAY,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC,cAAc,GAAG,GAAG,GAAG;IACvB,cAAc,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9C,CAAC;AACD;AACA;IACA,SAAS,YAAY,CAAC,GAAG,EAAE;IAC3B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;IAC1C,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACD;AACA;IACA,SAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;IACrC,EAAE,OAAO,IAAI,QAAQ,CAAC;IACtB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACpD,EAAE,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;AACD;AACA;IACA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IACxC,EAAE,OAAO,IAAI,UAAU,CAAC;IACxB,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAC5D,CAAC;AACD;AACA;IACA,IAAI,UAAU,GAAG,eAAe;IAChC,IAAI,gBAAgB,GAAG,sCAAsC;IAC7D,IAAI,kBAAkB,GAAG,6CAA6C,CAAC;IACvE,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IACpC,aAAa,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;IAC1C,aAAa,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;AACD;AACA;IACA,IAAI,aAAa,GAAG,cAAc;IAClC,IAAI,aAAa,GAAG,iEAAiE;IACrF,IAAI,mBAAmB,GAAG,sCAAsC;IAChE,IAAI,YAAY,GAAG,sBAAsB;IACzC,IAAI,WAAW,GAAG,sCAAsC;IACxD,IAAI,YAAY,GAAG,+EAA+E;IAClG,IAAI,iBAAiB,GAAG,cAAc;IACtC,IAAI,eAAe,GAAG,oCAAoC;IAC1D,IAAI,eAAe,GAAG,gDAAgD,CAAC;AACvE;IACA,SAAS,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE;IACtC,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,EAAE,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;IACtC,IAAI,GAAG,GAAG,KAAK;IACf,YAAY,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;IAChD,gBAAgB,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACxD,YAAY,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;IAC1C,gBAAgB,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnD,GAAG;AACH;IACA,EAAE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACvC,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC;IACnD,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;AACD;AACA;IACA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;IACvC,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;IACjD,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;IACtD,CAAC;AACD;AACA;IACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5D,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,CAAC;IAC3E,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;IAC9E,CAAC;AACD;AACA;IACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;IAC3C,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO;IACzC,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;IACtD,CAAC;AACD;AACA;IACA,SAAS,cAAc,CAAC,GAAG,EAAE;IAC7B,EAAE,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACzC,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;IAChE,EAAE,IAAI,IAAI,GAAG,YAAY;IACzB,gBAAgB,UAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,gDAAgD,CAAC;IACtG,iBAAiB,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;IACrG,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;AACD;AACA;IACA,SAAS,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE;IAClD,EAAE,IAAI,IAAI,GAAG,YAAY;IACzB,gBAAgB,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7D,gBAAgB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;AACD;AACA;IACA,IAAI,YAAY,GAAG,qBAAqB,CAAC;IACzC,IAAI,qBAAqB,GAAG,kCAAkC,CAAC;IAC/D,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IACpC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IACrC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,UAAU,CAAC;IACtC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IACvB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;IACrF,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,GAAG,MAAM;IACT,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;IACpE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,IAAI,WAAW,IAAI,GAAG,EAAE;IAC5B,MAAM,IAAI,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;IACnH,MAAM,OAAO,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,KAAK;AACL;IACA,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;IACtG,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;IAClC,GAAG;AACH;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;IAClB,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,IAAI,IAAI,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;IAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1B,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;AACD;AACA;IACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;IAC/B,EAAE,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;AACD;AACA;IACA,SAAS,cAAc,CAAC,GAAG,EAAE;IAC7B,EAAE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;AACD;AACA;IACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;IAChC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;AACD;AACA;IACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;IAClC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrD;;IC7QA,cAAc,GAAG,YAAY,CAAC;AAC9B;IACA,SAAS,YAAY,CAAC,GAAG,EAAE;IAC3B,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvB;;;ACPA;IACA,IAAI,QAAQ,GAAG,cAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D;IACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;IACjC,IAAI,EAAE,GAAG,IAAI,CAAC;IACd,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,GAAG;AACH;IACA,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACrB,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;IACrE,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;AACtC;IACA,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC;AACF;AACA;IACA,QAAQ,CAAC,QAAQ,GAAG;IACpB,EAAE,eAAe,EAAE,IAAI;IACvB,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,QAAQ,EAAE,IAAI;IAChB,EAAE,oBAAoB,EAAE,IAAI;IAC5B,EAAE,aAAa,EAAE,IAAI;IACrB,EAAE,GAAG,EAAE,IAAI;IACX,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,aAAa,GAAG;IACzB,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,aAAa,GAAG;IACzB,EAAE,WAAW,EAAE,IAAI;IACnB,EAAE,UAAU,EAAE,IAAI;IAClB,EAAE,iBAAiB,EAAE,IAAI;IACzB,EAAE,YAAY,EAAE,IAAI;IACpB,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,YAAY,GAAG;IACxB,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,QAAQ,EAAE,IAAI;IAChB,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,gBAAgB,EAAE,IAAI;IACxB,EAAE,gBAAgB,EAAE,IAAI;IACxB,EAAE,UAAU,EAAE,IAAI;IAClB,EAAE,SAAS,EAAE,IAAI;IACjB,EAAE,SAAS,EAAE,IAAI;IACjB,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,MAAM,EAAE,IAAI;IACd,EAAE,QAAQ,EAAE,IAAI;IAChB,EAAE,QAAQ,EAAE,IAAI;IAChB,EAAE,WAAW,EAAE,IAAI;IACnB,EAAE,aAAa,EAAE,IAAI;IACrB,EAAE,aAAa,EAAE,IAAI;IACrB,CAAC,CAAC;AACF;AACA;IACA,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;IACvH,EAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IACrE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC3F,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;IAC5B,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC9B,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;IAC3C,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;IACzC,YAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnH,SAAS;IACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;IAChD,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;IAC3C,UAAU,KAAK,IAAI,IAAI,IAAI,GAAG;IAC9B,YAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3I,SAAS;IACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;IAChG,QAAQ,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/F,OAAO;IACP,KAAK;IACL,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5F,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,aAAa,CAAC,GAAG,EAAE;IAC5B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtD;;;IChFA,aAAc,GAAG,OAAO,CAAC;AACzB;IACA,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IAClC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;IAC/B,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;IACzB,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;IACzB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;AAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;IACrC;IACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;IACjC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,SAAS,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,GAAG;AACH;IACA,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,YAAYC,UAAY,EAAE;IACtC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1D,cAAc,MAAM,CAAC,MAAM;IAC3B,cAAc,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvD,GAAG;AACH;IACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,EAAE,IAAI,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;IACxB,EAAE,IAAI,GAAG,EAAE;IACX,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACpB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,GAAG;AACH;IACA,EAAE,IAAI,MAAM,YAAYA,UAAY,EAAE;IACtC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACtF,GAAG,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;IACnC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAChD,UAAU,MAAM;IAChB,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9D,GAAG;AACH;IACA,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;IAClC;IACA,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,GAAG,CAAC;IACxB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;IACnE,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;IACnC,MAAM,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,KAAK,MAAM,IAAI,MAAM,YAAYD,UAAY,EAAE;IAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,KAAK,MAAM;IACX,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,MAAM,YAAYA,UAAY,EAAE;IAC1C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;IAClC,UAAU,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAChE,QAAQ,IAAI,GAAG,MAAM,CAAC;IACtB,OAAO,MAAM;IACb,QAAQ,OAAO;IACf,OAAO;IACP,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO;IAC7B,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,GAAG;IACH,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;AACD;AACA;IACA;IACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;IAChD;IACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,EAAE,IAAI,GAAG,EAAE;IACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACpB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtE,GAAG;IACH,CAAC;AACD;AACA;IACA,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH;IACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD;IACA,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IAChD,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO;IACnD,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM;IACtC,MAAM,IAAI,EAAE,CAAC;IACb,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;IACvC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChD,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;IACzB,UAAU,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrD,UAAU,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,UAAU,IAAI,GAAG,EAAE;IACnB,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAChC,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC5B,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAChC,WAAW;IACX,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;IACpD,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1D,CAAC;AACD;AACA;IACA,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IAC7B,EAAE,WAAW,EAAE,WAAW;IAC1B,EAAE,eAAe,EAAE,eAAe;IAClC,EAAE,UAAU,EAAE,UAAU;IACxB,EAAE,SAAS,EAAE,SAAS;IACtB,EAAE,aAAa,EAAE,YAAY;IAC7B,EAAE,UAAU,EAAE,MAAM;IACpB,CAAC,CAAC,CAAC;IACH,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;IAClC,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;IACpC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IACvE,OAAO,IAAI,KAAK,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IACpD,CAAC;AACD;AACA;IACA,SAAS,UAAU,CAAC,MAAM,EAAE;IAC5B,EAAE,IAAI,IAAI,CAAC;IACX,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;IACrE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;IAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;IACrE,KAAK;IACL,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA,SAAS,SAAS,CAAC,MAAM,EAAE;IAC3B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;IACtB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC7C,KAAK;IACL,GAAG,MAAM;IACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;IAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,QAAQ,CAAC;IACzC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB,OAAO,MAAM;IACb,QAAQ,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,QAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,SAAS,KAAK,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAChD,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxB,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACD;AACA;IACA,SAAS,YAAY,CAAC,CAAC,EAAE;IACzB,EAAE,OAAOA,OAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9C,CAAC;AACD;AACA;IACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;IAClC,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACvD,CAAC;AACD;AACA;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;IAChC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACvB,EAAE,OAAOA,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;AACD;AACA;IACA;IACA,SAAS,UAAU,CAAC,MAAM,EAAE;IAC5B,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,EAAE,IAAI,OAAO,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/B,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;IACrB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB;IACA,EAAEC,kBAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;IAC7H,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,OAAO;IAC/B,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC;IAClE,IAAI,IAAI,QAAQ,KAAK,SAAS;IAC9B,MAAM,QAAQ,IAAI,GAAG,IAAI,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjG;IACA,IAAI,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;IAC/B,MAAM,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,GAAGD,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE;IACA,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;IACnC,QAAQ,IAAI,CAACpD,aAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;IACtC,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;IAC9E,OAAO,MAAM,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;IAC9C,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC1B,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAACA,aAAK,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACzD,YAAY,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;IAChF,UAAU,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC9B,SAAS,MAAM;IACf,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;IACpC,SAAS;IACT,OAAO;IACP,KAAK;IACL,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IAC9B,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;IAClC,GAAG,CAAC,CAAC;AACL;IACA,EAAE,OAAO,SAAS,CAAC;IACnB;;ICzQA,iBAAc,GAAG;IACjB,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;IAC5C,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;IAC5C,CAAC,CAAC;AACF;AACA;IACA,SAAS,eAAe,CAAC,MAAM,EAAE;IACjC,EAAE,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC;IACrC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACpC,CAAC;AACD;AACA;IACA,eAAe,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE;IACjD,EAAE,OAAO,2BAA2B,GAAG,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC;IAClE,CAAC,CAAC;AACF;AACA;IACA,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;IAC/C,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjE,EAAE,IAAI,CAAC,UAAU,GAAGN,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,EAAE,IAAI,CAAC,aAAa,GAAGA,SAAO,CAAC,WAAW,CAACA,SAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9E,CAAC;AACD;AACA;IACA,SAAS,aAAa,CAAC,QAAQ,EAAE;IACjC,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC5C,EAAE,OAAO,QAAQ,CAAC;IAClB;;IC/BA,2BAAc,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE;IACvC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;IACzB,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1E;IACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;IACxC,QAAQ,OAAO,UAAU,IAAI,EAAE;IAC/B,YAAY,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;IACnC,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,gBAAgB,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,aAAa,CAAC;IACd,SAAS,CAAC;IACV,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB;IACA,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IAClB,IAAI,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE;IACtC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;IACtE,YAAY,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,SAAS;AACT;IACA,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO;IACvC,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;IAChF,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClE;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IACjC,YAAY,GAAG,GAAG,GAAG,CAAC;IACtB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,gBAAgB,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC;IAClC,gBAAgB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACpD,aAAa;IACb,YAAY,OAAO,GAAG,GAAG,GAAG,CAAC;IAC7B,SAAS;AACT;IACA,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AACzC;IACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IACvC,YAAY,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3D,YAAY,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IACzE,SAAS;AACT;IACA,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C;IACA,YAAY,IAAI,CAAC,KAAK,EAAE,SAAS;IACjC,YAAY,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC;IAChC,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;IACrD,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAClC,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;;ICzDD,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACrE,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;IACf,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;IACxC,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;IAChF,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;IAC9B,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/E,IAAI,IAAI,WAAW,EAAE;IACrB,MAAM,IAAI,YAAY,GAAG,mBAAmB,GAAG,WAAW,CAAC;IAC3D,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzE,WAAW,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACzC,KAAK;IACL,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;IAChB,IAAI,GAAG,IAAI,kBAAkB,CAAC;IAC9B,IAAI,IAAI,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,KAAK;IACL,IAAI,GAAG,IAAI,uFAAuF,CAAC;IACnG,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;IAC5D,MAAM,GAAG,IAAI,GAAG,IAAI,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;IAC3D,KAAK;IACL,GAAG;IACH,EAAE,IAAI,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IAC1E,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC;IAClC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACxB,IAAI,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAChC,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC3D,IAAI,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IAC3C,IAAI,IAAI,aAAa,CAAC;IACtB,IAAI,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;IAC7B,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;IACjD,OAAO;IACP,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACrC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;IAChN,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACxC,UAAU,GAAG,IAAI,0CAA0C,CAAC;IAC5D,SAAS;IACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACpH,SAAS;IACT,QAAQ,GAAG,IAAI,KAAK,CAAC;IACrB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,MAAM,CAAC;IACtB,OAAO;IACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC9C;IACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;IACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACnE,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACxE,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACxH,OAAO;IACP,KAAK,MAAM;IACX,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,IAAI,MAAM,EAAE;IACpB,UAAU,GAAG,IAAI,gBAAgB,CAAC;IAClC,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,wCAAwC,CAAC;IAC1D,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;IAChD,OAAO;IACP,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,uBAAuB,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;IAChB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;IACvB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;IACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC;IACpB,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1F,MAAM,IAAI,WAAW,GAAG,uCAAuC,CAAC;IAChE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,WAAW,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK;IACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;IACnC,IAAI,GAAG,IAAI,uBAAuB,CAAC;IACnC,IAAI,GAAG,IAAI,gDAAgD,CAAC;IAC5D,GAAG,MAAM;IACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;IACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS;IAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC5E,IAAI,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC;IAChD,GAAG;IACH,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;IAC7B,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;IACtC,IAAI,eAAe,GAAG,EAAE;IACxB,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;IAClC,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,EAAE,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;IACtE,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtF,KAAK,MAAM,IAAI,WAAW,IAAI,MAAM,EAAE;IACtC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC;IAC1B,KAAK;IACL,GAAG;IACH,EAAE,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;IAC/C,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;IACtC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;IACtC,MAAM,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,aAAa,GAAG,2BAA2B,CAAC,CAAC;IAC7H,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC;IAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;IAC5F,KAAK;IACL,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC9C,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9D,GAAG;IACH,EAAE,IAAI,WAAW,EAAE;IACnB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;IAC7B,MAAM,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,IAAI,cAAc,IAAI,YAAY,IAAI,WAAW,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE;IAClH,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;IAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;IACpD,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;IAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;IACnD,QAAQ,OAAO,GAAG,YAAY,GAAG,gBAAgB,GAAG,eAAe,CAAC;IACpE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAC7E,MAAM,IAAI,cAAc,EAAE;IAC1B,QAAQ,IAAI,SAAS,GAAG,UAAU,GAAG,IAAI;IACzC,UAAU,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;IACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;IAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,gBAAgB,CAAC;IAC/H,SAAS;IACT,QAAQ,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,gBAAgB,CAAC;IACvD,QAAQ,IAAI,eAAe,GAAG,EAAE,CAAC;IACjC,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;IAClC,QAAQ,IAAI,IAAI,EAAE;IAClB,UAAU,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;IAC1B,YAAY,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAClC,YAAY,IAAI,EAAE,EAAE;IACpB,cAAc,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;IACjE,cAAc,eAAe,IAAI,GAAG,CAAC;IACrC,aAAa;IACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;IACpE,cAAc,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,mBAAmB,IAAI,KAAK,CAAC,GAAG,kBAAkB,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;IAC5M,aAAa;IACb,YAAY,IAAI,KAAK,IAAI,QAAQ,EAAE;IACnC,cAAc,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,mBAAmB,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;IACjN,aAAa,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;IAChE,cAAc,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC5L,cAAc,IAAI,KAAK,IAAI,SAAS,EAAE;IACtC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;IACpD,eAAe;IACf,cAAc,GAAG,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IAClE,aAAa,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE;IAC3C,cAAc,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,mBAAmB,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;IACxO,aAAa,MAAM,IAAI,KAAK,IAAI,MAAM,EAAE;IACxC,cAAc,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;IACxI,aAAa,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;IAC3E,cAAc,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9M,aAAa;IACb,WAAW;IACX,SAAS;IACT,QAAQ,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,OAAO,IAAI,QAAQ,CAAC,GAAG,sBAAsB,CAAC;IACvF,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB,CAAC;IACjN,UAAU,IAAI,YAAY,EAAE;IAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;IACtC,WAAW;IACX,UAAU,GAAG,IAAI,OAAO,CAAC;IACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;IAC9C,YAAY,IAAI,YAAY,EAAE;IAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACrJ,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;IACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAChD;IACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;IACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC1E,WAAW;IACX,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC1H,SAAS;IACT,QAAQ,GAAG,IAAI,aAAa,CAAC;IAC7B,QAAQ,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;IACnF,UAAU,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;IAC3F,QAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;IACzD,QAAQ,IAAI,CAAC,QAAQ,EAAE;IACvB,UAAU,GAAG,IAAI,MAAM,IAAI,WAAW,CAAC,GAAG,iBAAiB,CAAC;IAC5D,SAAS;IACT,QAAQ,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;IAChG,OAAO,MAAM;IACb,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB,CAAC;IACjN,UAAU,IAAI,YAAY,EAAE;IAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;IACtC,WAAW;IACX,UAAU,GAAG,IAAI,OAAO,CAAC;IACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;IAC9C,YAAY,IAAI,YAAY,EAAE;IAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACrJ,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;IACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAChD;IACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;IACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC1E,WAAW;IACX,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC1H,SAAS;IACT,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK;IACL,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;IACvC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IAC5D,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,oBAAoB,CAAC;IAClC,MAAM,IAAI,IAAI,EAAE;IAChB,QAAQ,GAAG,IAAI,GAAG,CAAC;IACnB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;IAChC,OAAO;IACP,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,MAAM,eAAe,IAAI,GAAG,CAAC;IAC7B,KAAK;IACL,GAAG,MAAM;IACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACxB,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;IACtB,QAAQ,WAAW,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC,QAAQ,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;IAC1C,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;IAChC,YAAY,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IACvF,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;IACnC,YAAY,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;IACtE,cAAc,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU;IAChD,gBAAgB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,cAAc,IAAI,IAAI,GAAG,WAAW,CAAC;IACrC,cAAc,IAAI,IAAI,EAAE;IACxB,gBAAgB,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACzC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;IAChC,kBAAkB,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,kBAAkB,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;IAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9E,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;IAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;IAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;IACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1D,uBAAuB;IACvB,qBAAqB,MAAM;IAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;IACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;IAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;IACnG,uBAAuB;IACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;IACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;IAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;IACzE,uBAAuB,MAAM;IAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1E,uBAAuB;IACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;IAClC,qBAAqB;IACrB,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;IACf,aAAa,MAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;IACtF,cAAc,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,cAAc,IAAI,IAAI,EAAE;IACxB,gBAAgB,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACjC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;IAChC,kBAAkB,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACvC,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;IAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IAC3D,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;IAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;IAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;IACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1D,uBAAuB;IACvB,qBAAqB,MAAM;IAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;IACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;IAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;IACnG,uBAAuB;IACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;IACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;IAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;IACzE,uBAAuB,MAAM;IAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1E,uBAAuB;IACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;IAClC,qBAAqB;IACrB,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;IACf,aAAa;IACb,WAAW;IACX,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;IACvC,UAAU,IAAI,IAAI,EAAE;IACpB,YAAY,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9B,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;IAC5B,cAAc,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;IACzC,gBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5E,gBAAgB,IAAI,KAAK,EAAE;IAC3B,kBAAkB,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC7C,kBAAkB,IAAI,aAAa,EAAE;IACrC,oBAAoB,eAAe,IAAI,GAAG,CAAC;IAC3C,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;IACf,aAAa;IACb,WAAW;IACX,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;IACjD,YAAY,eAAe,GAAG,EAAE,CAAC;IACjC,WAAW;IACX,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;IAChC,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,YAAY,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;IACpF,cAAc,GAAG,IAAI,UAAU,CAAC;IAChC,cAAc,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;IACvD,gBAAgB,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;IAC5D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,cAAc,GAAG,GAAG,EAAE,CAAC;IACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IAC7C,gBAAgB,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB,CAAC;IACvN,gBAAgB,IAAI,YAAY,EAAE;IAClC,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,iBAAiB,MAAM;IACvB,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;IAC5C,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;IAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAChD,kBAAkB,GAAG,IAAI,0BAA0B,CAAC;IACpD,kBAAkB,IAAI,YAAY,EAAE;IACpC,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,mBAAmB,MAAM;IACzB,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;IAC9C,mBAAmB;IACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;IAC/B,iBAAiB;IACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC3J,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;IAC7B,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;IAC9B,eAAe;IACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;IAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IACtD;IACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;IAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC3E,iBAAiB,MAAM;IACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAChF,iBAAiB;IACjB,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAChI,eAAe;IACf,cAAc,GAAG,IAAI,KAAK,CAAC;IAC3B,aAAa;IACb,WAAW;IACX,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,kBAAkB,CAAC;IACtC,YAAY,IAAI,IAAI,EAAE;IACtB,cAAc,GAAG,IAAI,GAAG,CAAC;IACzB,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;IACtC,aAAa;IACb,YAAY,GAAG,IAAI,MAAM,CAAC;IAC1B,YAAY,eAAe,IAAI,GAAG,CAAC;IACnC,WAAW;IACX,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;IACzC,GAAG;IACH,EAAE,IAAI,IAAI,EAAE;IACZ,IAAI,IAAI,MAAM,EAAE;IAChB,MAAM,GAAG,IAAI,4CAA4C,CAAC;IAC1D,MAAM,GAAG,IAAI,4CAA4C,CAAC;IAC1D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,8BAA8B,CAAC;IAC5C,MAAM,GAAG,IAAI,8BAA8B,CAAC;IAC5C,KAAK;IACL,IAAI,GAAG,IAAI,sBAAsB,CAAC;IAClC,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;IACrE,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,IAAI,IAAI,EAAE;IACZ,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChD,GAAG;AACH;IACA,EAAE,SAAS,eAAe,CAAC,WAAW,EAAE;IACxC,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;IACzC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;IAChD,GAAG;AACH;IACA,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE;IACjC,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7G,GAAG;AACH;IACA,EAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE;IAC7C,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;IACxC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;IACxD,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICpeA;IACA;IACA;AACA;IACA,IAAI4D,YAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACM;AACvC;IACA;IACA,IAAIC,iBAAe,GAAGC,aAAY,CAAC,UAAU,CAAC;AAC9C;IACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;IAClD;IACA;IACA,EAAE,IAAI,IAAI,GAAG,IAAI;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;IACvB,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE;IAC5B,MAAM,IAAI,GAAG,EAAE;IACf,MAAM,QAAQ,GAAG,EAAE;IACnB,MAAM,YAAY,GAAG,EAAE;IACvB,MAAM,QAAQ,GAAG,EAAE;IACnB,MAAM,YAAY,GAAG,EAAE;IACvB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB;IACA,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChE;IACA,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,WAAW,CAAC,YAAY,GAAG,YAAY,EAAE;AACpE;IACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB;IACA,EAAE,IAAI;IACN,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC;IACtC,IAAI,IAAI,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK;IACL,IAAI,OAAO,CAAC,CAAC;IACb,GAAG,SAAS;IACZ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,GAAG;AACH;IACA;IACA,EAAE,SAAS,YAAY,GAAG;IAC1B;IACA,IAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACxC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1C,IAAI,OAAO,MAAM,CAAC;IAClB,GAAG;AACH;IACA,EAAE,SAAS,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;IAC3D,IAAI,IAAI,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;IACnC,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACnE;IACA,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;AACzC;IACA,IAAI,IAAI,UAAU,GAAGC,QAAiB,CAAC;IACvC,MAAM,KAAK,EAAE,IAAI;IACjB,MAAM,MAAM,EAAE,OAAO;IACrB,MAAM,MAAM,EAAE,MAAM;IACpB,MAAM,MAAM,EAAE,MAAM;IACpB,MAAM,IAAI,EAAE,KAAK;IACjB,MAAM,UAAU,EAAE,EAAE;IACpB,MAAM,aAAa,EAAE,GAAG;IACxB,MAAM,SAAS,EAAE,IAAI;IACrB,MAAM,eAAe,EAAED,aAAY,CAAC,UAAU;IAC9C,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,QAAQ,EAAEC,QAAiB;IACjC,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,OAAO,EAAE/D,SAAO;IACtB,MAAM,UAAU,EAAE,UAAU;IAC5B,MAAM,UAAU,EAAE,UAAU;IAC5B,MAAM,UAAU,EAAE,UAAU;IAC5B,MAAM,aAAa,EAAE,aAAa;IAClC,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,OAAO,EAAE,OAAO;IACtB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;IACzB,MAAM,IAAI,EAAE,IAAI;IAChB,KAAK,CAAC,CAAC;AACP;IACA,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvE,qBAAqB,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;IACpF,qBAAqB,UAAU,CAAC;AAChC;IACA,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpE;IACA,IAAI,IAAIgE,UAAQ,CAAC;IACjB,IAAI,IAAI;IACR,MAAM,IAAI,YAAY,GAAG,IAAI,QAAQ;IACrC,QAAQ,MAAM;IACd,QAAQ,OAAO;IACf,QAAQ,SAAS;IACjB,QAAQ,MAAM;IACd,QAAQ,QAAQ;IAChB,QAAQ,UAAU;IAClB,QAAQ,aAAa;IACrB,QAAQ,OAAO;IACf,QAAQ,YAAY;IACpB,QAAQ,iBAAiB;IACzB,QAAQ,UAAU;IAClB,OAAO,CAAC;AACR;IACA,MAAMA,UAAQ,GAAG,YAAY;IAC7B,QAAQ,IAAI;IACZ,QAAQ,KAAK;IACb,QAAQ,OAAO;IACf,QAAQ,IAAI;IACZ,QAAQ,MAAM;IACd,QAAQ,QAAQ;IAChB,QAAQ,WAAW;IACnB,QAAQ1D,aAAK;IACb,QAAQsD,YAAU;IAClB,QAAQC,iBAAe;IACvB,OAAO,CAAC;AACR;IACA,MAAM,MAAM,CAAC,CAAC,CAAC,GAAGG,UAAQ,CAAC;IAC3B,KAAK,CAAC,MAAM,CAAC,EAAE;IACf,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAC;IAC9E,MAAM,MAAM,CAAC,CAAC;IACd,KAAK;AACL;IACA,IAAIA,UAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;IAC9B,IAAIA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAIA,UAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,IAAIA,UAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAIA,UAAQ,CAAC,IAAI,GAAG,MAAM,GAAGA,UAAQ,GAAG,KAAK,CAAC;IAC9C,IAAI,IAAI,MAAM,EAAEA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;IAClC,MAAMA,UAAQ,CAAC,MAAM,GAAG;IACxB,QAAQ,IAAI,EAAE,UAAU;IACxB,QAAQ,QAAQ,EAAE,QAAQ;IAC1B,QAAQ,QAAQ,EAAE,QAAQ;IAC1B,OAAO,CAAC;IACR,KAAK;AACL;IACA,IAAI,OAAOA,UAAQ,CAAC;IACpB,GAAG;AACH;IACA,EAAE,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;IAC3C,IAAI,GAAG,GAAGhE,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,OAAO,EAAE,OAAO,CAAC;IACzB,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC;IAC3C,MAAM,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,KAAK;IACL,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;IAC9B,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;IACnC,QAAQ,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO;IACP,KAAK;AACL;IACA,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,GAAGA,SAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;IACzB,MAAM,IAAI,WAAW,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,WAAW,EAAE;IACvB,QAAQ,CAAC,GAAGA,SAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;IAC3D,cAAc,WAAW;IACzB,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO;IACP,KAAK;AACL;IACA,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;IACzB,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1B,KAAK,MAAM;IACX,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;IAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,QAAQ,GAAG,KAAK,CAAC;IAC5B,GAAG;AACH;IACA,EAAE,SAAS,cAAc,CAAC,GAAG,EAAE;IAC/B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,GAAG;AACH;IACA,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE;IACnC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,GAAG;AACH;IACA,EAAE,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;IACrC,IAAI,OAAO,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;IAClE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAC1D,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAChE,GAAG;AACH;IACA,EAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;IAChC,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;IAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACvD,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL,IAAI,OAAO,SAAS,GAAG,KAAK,CAAC;IAC7B,GAAG;AACH;IACA,EAAE,SAAS,UAAU,CAAC,KAAK,EAAE;IAC7B,IAAI,QAAQ,OAAO,KAAK;IACxB,MAAM,KAAK,SAAS,CAAC;IACrB,MAAM,KAAK,QAAQ;IACnB,QAAQ,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,KAAK,QAAQ;IACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,QAAQ;IACnB,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;IAC1C,QAAQ,IAAI,QAAQ,GAAGiE,uBAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;IACjC,UAAU,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC3D,UAAU,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAClC,SAAS;IACT,QAAQ,OAAO,SAAS,GAAG,KAAK,CAAC;IACjC,KAAK;IACL,GAAG;AACH;IACA,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;IACzD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;IAC7C,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IAC9C,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE;IAChD,QAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC3E,OAAO,CAAC;IACR,QAAQ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F;IACA,MAAM,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;IAC1D,MAAM,IAAI,cAAc,EAAE;IAC1B,QAAQ,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,UAAU,IAAI,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/F,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7E,eAAe,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,SAAS;IACT,OAAO;IACP,KAAK;AACL;IACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;IACzC,QAAQ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;IACvC,QAAQ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtC;IACA,IAAI,IAAI,QAAQ,CAAC;IACjB,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,IAAI,KAAK,EAAE;IACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7E,KAAK,MAAM,IAAI,MAAM,EAAE;IACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3E,KAAK,MAAM;IACX,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC1C,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO;IAC5B,KAAK;AACL;IACA,IAAI,IAAI,QAAQ,KAAK,SAAS;IAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC;AAChF;IACA,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AAClC;IACA,IAAI,OAAO;IACX,MAAM,IAAI,EAAE,YAAY,GAAG,KAAK;IAChC,MAAM,QAAQ,EAAE,QAAQ;IACxB,KAAK,CAAC;IACN,GAAG;IACH,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC9C;IACA,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3D,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACpC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG;IAC9B,IAAI,MAAM,EAAE,MAAM;IAClB,IAAI,IAAI,EAAE,IAAI;IACd,IAAI,MAAM,EAAE,MAAM;IAClB,GAAG,CAAC;IACJ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C;IACA,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACzC;IACA,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAClD,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7E,GAAG;IACH,EAAE,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE;IAClC,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxF,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,CAAC,EAAE;IACxB,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;IACvD,CAAC;AACD;AACA;IACA,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;IAC/B,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC;IACnF,CAAC;AACD;AACA;IACA,SAAS,cAAc,CAAC,CAAC,EAAE;IAC3B,EAAE,OAAO,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7D,CAAC;AACD;AACA;IACA,SAAS,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;IAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;IACjC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9B,EAAE,OAAO,IAAI,CAAC;IACd;;;ACjYA;AACA;IACA,IAAI,KAAK,GAAG,cAAc,GAAG,SAAS,KAAK,GAAG;IAC9C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC;AACF;AACA;IACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE;IACrD,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC;AACF;AACA;IACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;IAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC;AACF;AACA;IACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;IAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC;AACF;AACA;IACA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,WAAW,GAAG;IAC/C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;;;ICrBD,IAAI,IAAI,GAAG,4BAA4B,CAAC;IACxC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,IAAI,GAAG,mDAAmD,CAAC;IAC/D,IAAI,QAAQ,GAAG,oFAAoF,CAAC;IACpG,IAAI,GAAG,GAAG,8nCAA8nC,CAAC;IACzoC,IAAI,MAAM,GAAG,woCAAwoC,CAAC;IACtpC;IACA,IAAI,WAAW,GAAG,mLAAmL,CAAC;IACtM;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG,2rDAA2rD,CAAC;IACtsD,IAAI,IAAI,GAAG,8DAA8D,CAAC;IAC1E,IAAIC,cAAY,GAAG,2BAA2B,CAAC;IAC/C,IAAI,yBAAyB,GAAG,8DAA8D,CAAC;IAC/F,IAAIC,uBAAqB,GAAG,kDAAkD,CAAC;AAC/E;AACA;IACA,aAAc,GAAG,OAAO,CAAC;AACzB;IACA,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,EAAE,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;AACD;AACA;IACA,OAAO,CAAC,IAAI,GAAG;IACf;IACA,EAAE,IAAI,EAAE,4BAA4B;IACpC;IACA,EAAE,IAAI,EAAE,uEAAuE;IAC/E,EAAE,WAAW,EAAE,mGAAmG;IAClH;IACA,EAAE,GAAG,EAAE,2CAA2C;IAClD,EAAE,eAAe,EAAE,wEAAwE;IAC3F,EAAE,cAAc,EAAE,WAAW;IAC7B,EAAE,GAAG,EAAE,GAAG;IACV;IACA;IACA;IACA,EAAE,KAAK,EAAE,kHAAkH;IAC3H,EAAE,QAAQ,EAAE,QAAQ;IACpB;IACA,EAAE,IAAI,EAAE,2EAA2E;IACnF;IACA,EAAE,IAAI,EAAE,opCAAopC;IAC5pC,EAAE,KAAK,EAAE,KAAK;IACd;IACA,EAAE,IAAI,EAAE,IAAI;IACZ;IACA;IACA,EAAE,cAAc,EAAED,cAAY;IAC9B,EAAE,2BAA2B,EAAE,yBAAyB;IACxD;IACA,EAAE,uBAAuB,EAAEC,uBAAqB;IAChD,CAAC,CAAC;AACF;AACA;IACA,OAAO,CAAC,IAAI,GAAG;IACf,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,WAAW,EAAE,SAAS;IACxB,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,eAAe,EAAE,MAAM;IACzB,EAAE,cAAc,EAAE,WAAW;IAC7B,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,KAAK,EAAE,0IAA0I;IACnJ,EAAE,QAAQ,EAAE,QAAQ;IACpB,EAAE,IAAI,EAAE,2EAA2E;IACnF,EAAE,IAAI,EAAE,opCAAopC;IAC5pC,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,cAAc,EAAED,cAAY;IAC9B,EAAE,2BAA2B,EAAE,yBAAyB;IACxD,EAAE,uBAAuB,EAAEC,uBAAqB;IAChD,CAAC,CAAC;AACF;AACA;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B;IACA,EAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;AACD;AACA;IACA,SAAS,IAAI,CAAC,GAAG,EAAE;IACnB;IACA,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;IACA,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB;IACA,EAAE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9C,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;AACD;AACA;IACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;IACzB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;IACA,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE;IACrD,WAAW,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;IACtD,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACD;AACA;IACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;IAClC,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB;IACA,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,EAAE,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;AACD;AACA;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB;IACA;IACA,EAAE,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;AACD;AACA;IACA,IAAI,gBAAgB,GAAG,MAAM,CAAC;IAC9B,SAAS,GAAG,CAAC,GAAG,EAAE;IAClB;IACA,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;AACD;AACA;IACA,IAAI,QAAQ,GAAG,UAAU,CAAC;IAC1B,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;IACvC,EAAE,IAAI;IACN,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,EAAE;IACb,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;IACH;;ICnJA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,MAAM,EAAE,QAAQ,CAAC;IACvB,EAAE,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE;IACzC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE;IACnB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;IACxB,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,MAAM;IACX,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,KAAK;IACL,GAAG,MAAM;IACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;IAC/B,MAAM,IAAI,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;IACzC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;IAC3O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,2CAA2C,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;IACzG,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC1J,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;IACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAChD;IACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;IACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC1E,WAAW;IACX,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC1H,SAAS;IACT,QAAQ,IAAI,aAAa,EAAE;IAC3B,UAAU,GAAG,IAAI,gBAAgB,CAAC;IAClC,SAAS;IACT,OAAO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;IAClD,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,IAAI,aAAa,EAAE;IAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;IACjC,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,MAAM,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,OAAO;IACP,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;IAC/B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IAC3C,MAAM,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;IAC1B,MAAM,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;IAClC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjC,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IAC/C,OAAO;IACP,KAAK,MAAM;IACX,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,KAAK;IACL,GAAG;IACH,EAAE,IAAI,QAAQ,EAAE;IAChB,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;IAC7B,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,cAAc,CAAC;IAC/C,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;IACrC,KAAK;IACL,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,sBAAsB,CAAC;IAClD,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;IAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IACpC,KAAK;IACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;IAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;IACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,eAAe,CAAC;IACnF,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC;IAC7B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,MAAM,EAAE;IAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC/E,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC;IACzC,OAAO;IACP,MAAM,GAAG,IAAI,eAAe,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC;IACvD,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;IAC5C,OAAO;IACP,MAAM,GAAG,IAAI,2KAA2K,CAAC;IACzL,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;IAC7C,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;IAC3C,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,QAAQ,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,QAAQ,CAAC,GAAG,yCAAyC,IAAI,QAAQ,CAAC,GAAG,uCAAuC,CAAC;IAClM,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,UAAU,CAAC;IAC1B,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IC1HA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;IACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;IACrB,EAAE,IAAI,IAAI,EAAE;IACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACtD,QAAQ,gBAAgB,GAAG,KAAK,CAAC;IACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;IACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACpC,QAAQ,IAAI,aAAa,EAAE;IAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IACjD,UAAU,cAAc,IAAI,GAAG,CAAC;IAChC,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,IAAI,gBAAgB,EAAE;IAC1B,MAAM,GAAG,IAAI,eAAe,CAAC;IAC7B,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACvD,KAAK;IACL,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,OAAO,GAAG,CAAC;IACb;;ICzCA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE;IACpD,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,GAAG,CAAC,CAAC;IACL,EAAE,IAAI,cAAc,EAAE;IACtB,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;IACpC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;IAC5E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAChD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;IACvB,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;IACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7B,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;IACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACpC,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;IACzG,QAAQ,cAAc,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,KAAK;IACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;IAC/E,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACtL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,oDAAoD,CAAC;IACpE,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;IAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;IACvD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;IAC5D,OAAO;IACP,KAAK;IACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;IACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;IAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK;IACL,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,eAAe,CAAC;IAC7B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICxEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;IACjC,IAAI,GAAG,IAAI,eAAe,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC/C,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;IACpD,IAAI,GAAG,IAAI,uBAAuB,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,CAAC;IAC/H,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICZA,UAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAE9G,GAEG;IACH,EAAE,IAAI,CAAC,OAAO,EAAE;IAChB,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;IAC/E,GAAG;IACH,EAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC5G,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,mCAAmC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;IAC5D,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC/I,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICtDA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;IACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;IAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;IACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM;IAC9B,IAAI,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpE,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;IAC9D,EAAE,IAAI,eAAe,EAAE;IACvB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAChD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;IACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC3I,IAAI,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3E,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAChF,KAAK;IACL,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,cAAc,CAAC;IACnD,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,UAAU,CAAC,GAAG,KAAK,CAAC;IACpE,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,CAAC;IACjD,GAAG;IACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACvL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;IAC5D,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC/I,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,YAAY,CAAC;IACtB,EAAE,IAAI,eAAe,EAAE;IACvB,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;IAChJ,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;IACzB,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,OAAO,GAAG,CAAC;IACb;;IChFA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,WAAW,GAAG,EAAE;IACtB,IAAI,aAAa,GAAG,EAAE;IACtB,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;IAC3C,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE;IAC7B,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,WAAW,CAAC;IAClE,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC5B,GAAG;IACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;IACzC,EAAE,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;IACvC,EAAE,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;IACtC,EAAE,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE;IACvC,IAAI,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;IACtB,MAAM,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC;IACvF,MAAM,IAAI,cAAc,EAAE;IAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;IAC3H,OAAO;IACP,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;IACxB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,IAAI,IAAI,EAAE;IAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;IAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,YAAY,IAAI,EAAE,EAAE;IACpB,cAAc,GAAG,IAAI,MAAM,CAAC;IAC5B,aAAa;IACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IAC5D,YAAY,IAAI,cAAc,EAAE;IAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IACtI,aAAa;IACb,YAAY,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IACrI,WAAW;IACX,SAAS;IACT,QAAQ,GAAG,IAAI,QAAQ,CAAC;IACxB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;IAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;IAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,aAAa,CAAC;IACxJ,SAAS;IACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACza,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,4BAA4B,CAAC;IAChD,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;IACnC,cAAc,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E,aAAa;IACb,YAAY,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;IAC5F,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACrJ,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;IACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAChD;IACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;IACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC1E,WAAW;IACX,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC1H,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,CAAC;IACvB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,IAAI,IAAI,EAAE;IAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;IAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;IACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpG,aAAa;IACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IAC7D,YAAY,IAAI,cAAc,EAAE;IAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IACtI,aAAa;IACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;IACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IAC3C,cAAc,GAAG,IAAI,gBAAgB,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAC7a,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC9C,gBAAgB,GAAG,IAAI,4BAA4B,CAAC;IACpD,gBAAgB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;IACvC,kBAAkB,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,iBAAiB,MAAM;IACvB,kBAAkB,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClF,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;IAChG,eAAe;IACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACzJ,eAAe;IACf,cAAc,GAAG,IAAI,KAAK,CAAC;IAC3B,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,MAAM,CAAC;IAC5B,aAAa;IACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;IACpG,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM,GAAG,IAAI,OAAO,CAAC;IACrB,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;IAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;IAC1B,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACnC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;IAClC,EAAE,KAAK,IAAI,SAAS,IAAI,WAAW,EAAE;IACrC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACpD,MAAM,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC;IACpH,MAAM,IAAI,cAAc,EAAE;IAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;IAC3H,OAAO;IACP,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAClC,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;IAC1E,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,OAAO,GAAG,CAAC;IACb;;ICtKA,SAAc,GAAG,SAAS,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACjE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAE9G,GAEG;IACH,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;IACrB,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC/B,EAAE,IAAI,CAAC,OAAO,EAAE;IAChB,IAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;IAC7E,GAAG;IACH,EAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;IACjC,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,yCAAyC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC;IAC/J,GAAG;IACH,EAAE,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,mBAAmB,CAAC;IACvN,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,OAAO,CAAC;IACnB,GAAG;IACH,EAAE,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;IACxC,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,oCAAoC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,+DAA+D,CAAC;IAC7E,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC/I,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IChEA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;IAChC,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,eAAe,CAAC;IAC7B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;IACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;IAC9C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,IAAI,OAAO,GAAG,QAAQ,GAAG,IAAI;IACjC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;IACnC,MAAM,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC;IACxC,IAAI,GAAG,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,aAAa,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,sBAAsB,IAAI,OAAO,CAAC,GAAG,yBAAyB,IAAI,OAAO,CAAC,GAAG,iBAAiB,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,2BAA2B,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC;IACtU,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU,CAAC;IACpE,KAAK;IACL,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC;IACvE,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IAC1G,KAAK;IACL,IAAI,GAAG,IAAI,IAAI,CAAC;IAChB,IAAI,IAAI,eAAe,IAAI,QAAQ,EAAE;IACrC,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC;IAC/D,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,wCAAwC,IAAI,YAAY,CAAC,GAAG,UAAU,CAAC;IACtF,OAAO;IACP,MAAM,GAAG,IAAI,OAAO,CAAC;IACrB,KAAK;IACL,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,iBAAiB,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC;IACtI,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;IACvH,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IACpD,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC;IAC9D,GAAG,MAAM;IACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,MAAM,IAAI,eAAe,IAAI,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;IAChH,QAAQ,IAAI,aAAa,EAAE;IAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;IACjC,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,OAAO,MAAM,IAAI,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IACzE,QAAQ,IAAI,aAAa,EAAE;IAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;IACjC,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,OAAO,MAAM;IACb,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;IACjH,OAAO;IACP,KAAK;IACL,IAAI,IAAI,SAAS,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnG,IAAI,IAAI,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;IAC5D,IAAI,IAAI,SAAS,EAAE;IACnB,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IACjC,KAAK;IACL,IAAI,IAAI,WAAW,IAAI,SAAS,EAAE;IAClC,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,eAAe,CAAC;IAC/B,OAAO;IACP,MAAM,OAAO,GAAG,CAAC;IACjB,KAAK;IACL,IAAI,IAAI,MAAM,EAAE;IAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;IAC9E,MAAM,GAAG,IAAI,eAAe,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC;IACvE,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,SAAS,CAAC;IACvB,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,IAAI,SAAS,EAAE,UAAU,IAAI,WAAW,CAAC;IAC/C,MAAM,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;IACxC,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IACzD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IAC9D,OAAO;IACP,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,GAAG;IACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,wBAAwB,CAAC;IAC7L,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;IACjC,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,KAAK;IACL,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,qCAAqC,CAAC;IACnD,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;IAClD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,OAAO;IACP,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,KAAK,CAAC;IACf,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICpJA,OAAc,GAAG,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC/D,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IAClC,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAC3F,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAC3F,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;IAChC,EAAE,IAAI,YAAY,IAAI,YAAY,EAAE;IACpC,IAAI,IAAI,SAAS,CAAC;IAClB,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;IACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;IAC3E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAChD,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAChC,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;IAC5B,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,4BAA4B,CAAC;IACjJ,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACzD,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC;IAC9C,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;IAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;IACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;IAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;IACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;IACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;IACvD,OAAO,MAAM;IACb,QAAQ,SAAS,GAAG,UAAU,CAAC;IAC/B,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,MAAM,IAAI,YAAY,EAAE;IACxB,QAAQ,GAAG,IAAI,UAAU,CAAC;IAC1B,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IAC9C,KAAK;IACL,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;IAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;IACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;IAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;IACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;IACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;IACvD,OAAO,MAAM;IACb,QAAQ,SAAS,GAAG,UAAU,CAAC;IAC/B,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK;IACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;IACtD,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;IACxN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,mCAAmC,IAAI,SAAS,CAAC,GAAG,kBAAkB,CAAC;IACtF,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;IAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;IACvD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;IAC5D,OAAO;IACP,KAAK;IACL,IAAI,GAAG,IAAI,OAAO,CAAC;IACnB,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,UAAU,CAAC;IACxB,KAAK;IACL,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,eAAe,CAAC;IAC7B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICtGA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;IACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;IAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;IACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IAC/B,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;IAC9D,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IAC9B,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;IACrD,IAAI,IAAI,gBAAgB,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACxF,MAAM,IAAI,kBAAkB,GAAG,cAAc,CAAC;IAC9C,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;IAC7D,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC7C,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACrC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IACnO,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACxC,UAAU,GAAG,IAAI,0CAA0C,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;IAC7F,SAAS;IACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACpH,SAAS;IACT,QAAQ,GAAG,IAAI,KAAK,CAAC;IACrB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,MAAM,CAAC;IACtB,OAAO;IACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC9C;IACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;IACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACnE,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACxE,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACxH,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,MAAM,cAAc,GAAG,kBAAkB,CAAC;IAC1C,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;IAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;IAC1B,OAAO;IACP,KAAK;IACL,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;IACvB,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;IACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7B,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACxD,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;IAC/F,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACjD,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACxD,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;IACxD,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACzC,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IACjF,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACtF,WAAW;IACX,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IACnD,YAAY,cAAc,IAAI,GAAG,CAAC;IAClC,WAAW;IACX,SAAS;IACT,OAAO;IACP,KAAK;IACL,IAAI,IAAI,OAAO,gBAAgB,IAAI,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACvG,MAAM,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC;IACpC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC;IAC1D,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;IAChE,MAAM,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,gBAAgB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;IACzN,MAAM,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1F,MAAM,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAC/C,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACvC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAClC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IACvD,QAAQ,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7E,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAClF,OAAO;IACP,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;IACrD,OAAO;IACP,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,KAAK;IACL,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAC5D,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;IACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;IACpH,IAAI,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3E,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAChF,KAAK;IACL,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;IACnD,KAAK;IACL,IAAI,GAAG,IAAI,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;IACxE,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,OAAO,GAAG,CAAC;IACb;;IC3IA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,MAAM,GAAG,QAAQ,IAAI,SAAS;IACpC,IAAI,iBAAiB,GAAG,MAAM,GAAG,kBAAkB,GAAG,kBAAkB;IACxE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAC9C,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK;IACnE,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;IAC5B,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;IAC/B,IAAI,aAAa,GAAG,SAAS,CAAC;IAC9B,EAAE,IAAI,WAAW,EAAE;IACnB,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC;IACvF,MAAM,UAAU,GAAG,WAAW,GAAG,IAAI;IACrC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;IACnC,MAAM,aAAa,GAAG,cAAc,GAAG,IAAI;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI;IAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3C,IAAI,GAAG,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC1E,IAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC;IAC3C,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,gBAAgB,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,SAAS,CAAC,GAAG,uBAAuB,IAAI,SAAS,CAAC,GAAG,oBAAoB,CAAC;IAC7N,IAAI,IAAI,aAAa,GAAG,iBAAiB,CAAC;IAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,iBAAiB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACjN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,uBAAuB,CAAC;IAChF,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;IACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACjE,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACtE,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACtH,KAAK;IACL,IAAI,GAAG,IAAI,eAAe,CAAC;IAC3B,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IAC1G,KAAK;IACL,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,sBAAsB,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,gBAAgB,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,gBAAgB,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,OAAO,IAAI,GAAG,CAAC,GAAG,SAAS,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;IAC1mB,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;IAC/B,MAAM,aAAa,GAAG,iBAAiB,CAAC;IACxC,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;IAClE,MAAM,YAAY,GAAG,gBAAgB,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,CAAC;IAC5B,KAAK;IACL,GAAG,MAAM;IACT,IAAI,IAAI,aAAa,GAAG,OAAO,WAAW,IAAI,QAAQ;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,IAAI,aAAa,IAAI,OAAO,EAAE;IAClC,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IAC5G,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACvR,KAAK,MAAM;IACX,MAAM,IAAI,aAAa,IAAI,OAAO,KAAK,SAAS,EAAE;IAClD,QAAQ,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,aAAa,GAAG,iBAAiB,CAAC;IAC1C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;IACpE,QAAQ,YAAY,GAAG,WAAW,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,CAAC;IACtB,OAAO,MAAM;IACb,QAAQ,IAAI,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7F,QAAQ,IAAI,WAAW,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,EAAE;IACnE,UAAU,UAAU,GAAG,IAAI,CAAC;IAC5B,UAAU,aAAa,GAAG,iBAAiB,CAAC;IAC5C,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;IACtE,UAAU,MAAM,IAAI,GAAG,CAAC;IACxB,SAAS,MAAM;IACf,UAAU,UAAU,GAAG,KAAK,CAAC;IAC7B,UAAU,MAAM,IAAI,GAAG,CAAC;IACxB,SAAS;IACT,OAAO;IACP,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IAC5G,OAAO;IACP,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACnH,KAAK;IACL,GAAG;IACH,EAAE,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAC;IAC5C,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,OAAO,CAAC,GAAG,WAAW,IAAI,YAAY,CAAC,GAAG,eAAe,IAAI,UAAU,CAAC,GAAG,KAAK,CAAC;IACrS,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,0BAA0B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;IACzD,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;IACxC,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO;IACP,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,KAAK,CAAC;IACf,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IC3JA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;IAC/C,EAAE,GAAG,IAAI,OAAO,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IACxG,GAAG;IACH,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;IAC5E,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,aAAa,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;IAC1O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;IAC9C,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;IAClC,QAAQ,GAAG,IAAI,MAAM,CAAC;IACtB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,CAAC;IACvB,OAAO;IACP,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;IAClD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,WAAW,CAAC;IACzB,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IC3EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;IAChD,EAAE,GAAG,IAAI,OAAO,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IACxG,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;IACtC,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,cAAc,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IAC3C,GAAG;IACH,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;IACrD,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;IAC3O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,8BAA8B,CAAC;IAC5C,MAAM,IAAI,QAAQ,IAAI,WAAW,EAAE;IACnC,QAAQ,GAAG,IAAI,QAAQ,CAAC;IACxB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,SAAS,CAAC;IACzB,OAAO;IACP,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;IAClD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;IAC9B,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IChFA,oBAAc,GAAG,SAAS,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC7E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;IACpD,EAAE,GAAG,IAAI,OAAO,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IACxG,GAAG;IACH,EAAE,GAAG,IAAI,eAAe,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;IACzF,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,kBAAkB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;IAC/O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;IAC9C,MAAM,IAAI,QAAQ,IAAI,eAAe,EAAE;IACvC,QAAQ,GAAG,IAAI,MAAM,CAAC;IACtB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,CAAC;IACvB,OAAO;IACP,MAAM,GAAG,IAAI,QAAQ,CAAC;IACtB,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;IAClD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;IAC9B,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IC3EA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;IAC3C,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,6BAA6B,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;IACxG,GAAG;IACH,EAAE,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;IACjF,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;IACnC,IAAI,GAAG,IAAI,+BAA+B,IAAI,IAAI,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC;IAChI,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3E,GAAG;IACH,EAAE,GAAG,IAAI,KAAK,CAAC;IACf,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,OAAO,CAAC;IACnB,GAAG;IACH,EAAE,GAAG,IAAI,SAAS,CAAC;IACnB,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,YAAY,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;IAC7N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;IACpD,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;IACxC,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO;IACP,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IC3EA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACrD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;IACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;IAC9C,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAChD,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7B,IAAI,IAAI,gBAAgB,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;IAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACjC,KAAK;IACL,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1C,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAChE,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACzD,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,CAAC;IAC7C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;IACtD,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;IACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACjE,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACtE,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACtH,KAAK;IACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;IACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;IAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,gBAAgB,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;IACtD,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;IAC1F,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,gBAAgB,CAAC;IAC9B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IClFA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;IACjC,IAAI,UAAU,GAAG,WAAW,GAAG,IAAI;IACnC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC9C,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,UAAU,CAAC,GAAG,aAAa,IAAI,MAAM,CAAC,GAAG,aAAa,IAAI,eAAe,CAAC,GAAG,WAAW,CAAC;IACvI,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACvC,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;IACrB,EAAE,IAAI,IAAI,EAAE;IACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACtD,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;IACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACpC,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;IACpD,OAAO;IACP,MAAM,IAAI,EAAE,EAAE;IACd,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,YAAY,IAAI,eAAe,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC;IACjL,QAAQ,cAAc,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,WAAW,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;IACxI,KAAK;IACL,GAAG;IACH,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACvD,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;IAC3E,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,eAAe,CAAC,GAAG,KAAK,CAAC;IAC/N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,2DAA2D,CAAC;IACzE,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC/I,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,GAAG,IAAI,8EAA8E,CAAC;IACxF,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,uCAAuC,CAAC;IACrD,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,4CAA4C,CAAC;IAC1D,KAAK;IACL,GAAG;IACH,EAAE,GAAG,IAAI,qBAAqB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,0BAA0B,CAAC;IACrJ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;IACzB,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxF,EAAE,GAAG,IAAI,OAAO,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;IACxG,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;IAC5D,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,EAAE,GAAG,GAAG,EAAE,CAAC;IACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,SAAS,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,yBAAyB,CAAC;IAC/L,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;IACjC,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,KAAK;IACL,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;IACpD,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;IAClD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,OAAO;IACP,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACzB,MAAM,GAAG,IAAI,cAAc,CAAC;IAC5B,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,OAAO;IACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxG,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC1C;IACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACpE,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACpH,GAAG;IACH,EAAE,GAAG,IAAI,IAAI,CAAC;IACd,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,UAAU,CAAC;IACtB,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICzEA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;IACzB,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;IACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;IAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;IACjC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC9C,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9C,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;IACpD,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC9C,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB;IACjD,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;IACjE,IAAI,aAAa,GAAG,YAAY,KAAK,KAAK;IAC1C,IAAI,mBAAmB,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;IAC7F,IAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB;IAChD,IAAI,gBAAgB,GAAG,aAAa,IAAI,mBAAmB,IAAI,iBAAiB;IAChF,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;IAC1C,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IAC/B,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;IACrC,EAAE,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjJ,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC;IACzE,EAAE,IAAI,cAAc,EAAE;IACtB,IAAI,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,eAAe,CAAC;IACzD,GAAG;IACH,EAAE,IAAI,gBAAgB,EAAE;IACxB,IAAI,IAAI,cAAc,EAAE;IACxB,MAAM,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IACxQ,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK;IACL,IAAI,IAAI,eAAe,EAAE;IACzB,MAAM,GAAG,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;IAC1D,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;IAC9B,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;IACpC,UAAU,GAAG,IAAI,qBAAqB,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5F,SAAS,MAAM;IACf,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC;IACjC,UAAU,IAAI,IAAI,EAAE;IACpB,YAAY,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACrC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;IAC5B,cAAc,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,cAAc,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7F,aAAa;IACb,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE;IACjC,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;IAClC,QAAQ,IAAI,IAAI,EAAE;IAClB,UAAU,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;IAC1B,YAAY,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACvC,YAAY,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;IACnF,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM,GAAG,IAAI,sBAAsB,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;IACtD,KAAK;IACL,IAAI,IAAI,iBAAiB,IAAI,KAAK,EAAE;IACpC,MAAM,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IACzD,KAAK,MAAM;IACX,MAAM,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;IAC3C,MAAM,IAAI,mBAAmB,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;IACzD,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAC1C,QAAQ,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrF,OAAO;IACP,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,IAAI,iBAAiB,EAAE;IAC/B,UAAU,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IAC7D,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;IACnD,UAAU,IAAI,kBAAkB,GAAG,cAAc,CAAC;IAClD,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;IACtE,UAAU,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC5C,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,UAAU,GAAG,GAAG,EAAE,CAAC;IACnB,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACzC,YAAY,GAAG,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,qCAAqC,IAAI,mBAAmB,CAAC,GAAG,OAAO,CAAC;IAClQ,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;IACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAClD,gBAAgB,GAAG,IAAI,mCAAmC,CAAC;IAC3D,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,uCAAuC,CAAC;IAC/D,eAAe;IACf,cAAc,GAAG,IAAI,KAAK,CAAC;IAC3B,aAAa;IACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACjC,cAAc,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACxH,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,MAAM,CAAC;IAC1B,WAAW;IACX,UAAU,IAAI,KAAK,GAAG,GAAG,CAAC;IAC1B,UAAU,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACjC,UAAU,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAClD;IACA,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE;IAC1B,cAAc,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACvE,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC5E,aAAa;IACb,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC5H,WAAW;IACX,UAAU,cAAc,GAAG,kBAAkB,CAAC;IAC9C,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,UAAU,CAAC;IAC9B,WAAW;IACX,SAAS;IACT,OAAO,MAAM,IAAI,mBAAmB,EAAE;IACtC,QAAQ,IAAI,iBAAiB,IAAI,SAAS,EAAE;IAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;IACpD,UAAU,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IAC/C,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IACtD,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;IACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;IACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;IACzE,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IACjF,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACtF,WAAW;IACX,UAAU,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,uHAAuH,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;IACnO,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IAC/D,SAAS,MAAM;IACf,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;IACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;IACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;IACzE,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IACjF,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACtF,WAAW;IACX,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;IACzD,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACvC,KAAK;IACL,IAAI,IAAI,eAAe,EAAE;IACzB,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK;IACL,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IAC7C,MAAM,cAAc,IAAI,GAAG,CAAC;IAC5B,KAAK;IACL,GAAG;IACH,EAAE,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;IAC9D,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;IAC1B,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC;IAC3B,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;IACtB,QAAQ,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACxD,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,YAAY,SAAS,GAAG,KAAK,GAAG,KAAK;IACrC,YAAY,WAAW,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;IACrE,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;IAC/C,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1F,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC3E,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IAC3D,YAAY,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpE,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;IACrC,WAAW,MAAM;IACjB,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;IACrC,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC;IACtE,WAAW;IACX,UAAU,IAAI,WAAW,EAAE;IAC3B,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACvC,WAAW,MAAM;IACjB,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;IAC9D,cAAc,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IAC/D,cAAc,IAAI,cAAc,EAAE;IAClC,gBAAgB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IACxI,eAAe;IACf,cAAc,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;IAC1D,cAAc,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;IAClD,gBAAgB,kBAAkB,GAAG,cAAc;IACnD,gBAAgB,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtE,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAClD,gBAAgB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtG,eAAe;IACf,cAAc,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC;IAC9D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,cAAc,GAAG,GAAG,EAAE,CAAC;IACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IAC7C,gBAAgB,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;IACpP,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAChD,kBAAkB,GAAG,IAAI,gBAAgB,CAAC;IAC1C,kBAAkB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IACtD,oBAAoB,GAAG,IAAI,wBAAwB,CAAC;IACpD,mBAAmB,MAAM;IACzB,oBAAoB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;IAC9F,mBAAmB;IACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;IAC/B,iBAAiB;IACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC3J,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;IAC7B,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;IAC9B,eAAe;IACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;IAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IACtD;IACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;IAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC3E,iBAAiB,MAAM;IACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAChF,iBAAiB;IACjB,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAChI,eAAe;IACf,cAAc,cAAc,GAAG,kBAAkB,CAAC;IAClD,cAAc,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;IAC/C,cAAc,GAAG,IAAI,YAAY,CAAC;IAClC,aAAa,MAAM;IACnB,cAAc,IAAI,aAAa,EAAE;IACjC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IACjE,gBAAgB,IAAI,cAAc,EAAE;IACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IAC1I,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,oBAAoB,CAAC;IACpE,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IAChE,gBAAgB,IAAI,cAAc,EAAE;IACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IAC1I,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;IAC/B,eAAe;IACf,aAAa;IACb,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;IACzC,WAAW;IACX,SAAS;IACT,QAAQ,IAAI,aAAa,EAAE;IAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IACjD,UAAU,cAAc,IAAI,GAAG,CAAC;IAChC,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC;IAC9B,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;IACtB,QAAQ,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACxD,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClG,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5G,UAAU,IAAI,cAAc,EAAE;IAC9B,YAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9Q,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW;IACX,UAAU,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;IACrF,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxF,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IACjF,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACtF,WAAW;IACX,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;IACzD,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;IACzD,WAAW;IACX,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,UAAU,IAAI,aAAa,EAAE;IAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;IACnD,YAAY,cAAc,IAAI,GAAG,CAAC;IAClC,WAAW;IACX,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;IACxE,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,OAAO,GAAG,CAAC;IACb;;ICxUA,iBAAc,GAAG,SAAS,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC1E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;IAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;IACzC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACrD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;IACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;IAC3B,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI;IACzB,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI;IACrB,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ;IACnC,MAAM,eAAe,GAAG,gBAAgB,GAAG,IAAI;IAC/C,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;IAC5C,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACjC,IAAI,IAAI,cAAc,EAAE;IACxB,MAAM,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,gBAAgB,CAAC;IAC5D,KAAK;IACL,IAAI,IAAI,cAAc,EAAE;IACxB,MAAM,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;IACxQ,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IAC/D,KAAK;IACL,IAAI,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;IACrD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3E,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAChF,KAAK;IACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACzD,IAAI,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,gBAAgB,IAAI,EAAE,CAAC,GAAG,mBAAmB,IAAI,IAAI,CAAC,GAAG,oBAAoB,CAAC;IACvM,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,eAAe,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;IACxO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,kCAAkC,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;IAC1F,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;IAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;IACvD,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;IAC5D,OAAO;IACP,KAAK;IACL,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,UAAU,CAAC;IACxB,KAAK;IACL,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,GAAG;IACH,EAAE,IAAI,aAAa,EAAE;IACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;IACxE,GAAG;IACH,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,OAAO,GAAG,CAAC;IACb;;IChFA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAE9G,GAEG;IACH,EAAE,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACjC,EAAE,IAAI,CAAC,OAAO,EAAE;IAChB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;IACnH,MAAM,IAAI,SAAS,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC;IACzB,MAAM,IAAI,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9B,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,QAAQ,OAAO,EAAE,GAAG,EAAE,EAAE;IACxB,UAAU,SAAS,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC,UAAU,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7D,UAAU,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;IACrF,YAAY,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW;IACX,SAAS;IACT,OAAO;IACP,KAAK,MAAM;IACX,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC;IAC9B,KAAK;IACL,GAAG;IACH,EAAE,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE;IACnC,IAAI,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;IACxC,MAAM,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY;IACzE,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;IAC7C,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;IACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;IACpF,SAAS;IACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;IAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;IAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;IAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrG,SAAS;IACT,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;IAChD,QAAQ,IAAI,OAAO,EAAE;IACrB,UAAU,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,yCAAyC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC;IACrK,SAAS;IACT,QAAQ,GAAG,IAAI,YAAY,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC;IAC7L,QAAQ,IAAI,cAAc,EAAE;IAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;IAClH,SAAS;IACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;IACpD,QAAQ,IAAI,OAAO,EAAE;IACrB,UAAU,GAAG,IAAI,OAAO,CAAC;IACzB,SAAS;IACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC/C,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;IACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;IAC9C,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;IACxF,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACrJ,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;IACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAChD;IACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;IACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC1E,WAAW;IACX,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC1H,SAAS;IACT,QAAQ,GAAG,IAAI,YAAY,CAAC;IAC5B,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,QAAQ,CAAC;IACxB,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;IAC7B,QAAQ,IAAI,IAAI,EAAE;IAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;IAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,YAAY,IAAI,EAAE,EAAE;IACpB,cAAc,GAAG,IAAI,MAAM,CAAC;IAC5B,aAAa;IACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IAC5D,YAAY,IAAI,cAAc,EAAE;IAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IACtI,aAAa;IACb,YAAY,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IACrI,WAAW;IACX,SAAS;IACT,QAAQ,GAAG,IAAI,OAAO,CAAC;IACvB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;IAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;IAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,aAAa,CAAC;IACxJ,SAAS;IACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;IACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;IACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;IAC9C,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;IACxF,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACrJ,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;IACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAChD;IACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;IACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACrE,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IAC1E,WAAW;IACX,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IAC1H,SAAS;IACT,QAAQ,GAAG,IAAI,YAAY,CAAC;IAC5B,OAAO;IACP,KAAK,MAAM;IACX,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;IACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;IACpF,SAAS;IACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;IAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;IAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;IAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrG,SAAS;IACT,QAAQ,IAAI,OAAO,EAAE;IACrB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;IAClG,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACzC,YAAY,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAChP,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;IACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAClD,gBAAgB,GAAG,IAAI,wBAAwB,CAAC;IAChD,eAAe,MAAM;IACrB,gBAAgB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;IAC1F,eAAe;IACf,cAAc,GAAG,IAAI,KAAK,CAAC;IAC3B,aAAa;IACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACjC,cAAc,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACvJ,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW,MAAM;IACjB,YAAY,GAAG,IAAI,MAAM,CAAC;IAC1B,WAAW;IACX,UAAU,GAAG,IAAI,yFAAyF,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;IAC/I,SAAS;IACT,QAAQ,GAAG,IAAI,YAAY,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC;IAC9K,QAAQ,IAAI,cAAc,EAAE;IAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;IAClH,SAAS;IACT,QAAQ,GAAG,IAAI,mBAAmB,CAAC;IACnC,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;IACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;IAC9C,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;IACxF,aAAa;IACb,YAAY,GAAG,IAAI,KAAK,CAAC;IACzB,WAAW;IACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACrJ,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,MAAM,CAAC;IACxB,SAAS;IACT,QAAQ,GAAG,IAAI,kFAAkF,CAAC;IAClG,QAAQ,IAAI,OAAO,EAAE;IACrB,UAAU,GAAG,IAAI,OAAO,CAAC;IACzB,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;IAC7B,QAAQ,IAAI,IAAI,EAAE;IAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;IAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;IACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpG,aAAa;IACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IAC7D,YAAY,IAAI,cAAc,EAAE;IAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;IACtI,aAAa;IACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;IACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IAC3C,cAAc,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAClP,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC9C,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;IACxC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;IACpD,kBAAkB,GAAG,IAAI,wBAAwB,CAAC;IAClD,iBAAiB,MAAM;IACvB,kBAAkB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;IAC5F,iBAAiB;IACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;IAC7B,eAAe;IACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACzJ,eAAe;IACf,cAAc,GAAG,IAAI,KAAK,CAAC;IAC3B,aAAa,MAAM;IACnB,cAAc,GAAG,IAAI,MAAM,CAAC;IAC5B,aAAa;IACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;IACpG,WAAW;IACX,SAAS;IACT,OAAO;IACP,KAAK;IACL,IAAI,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACrC,GAAG,MAAM,IAAI,aAAa,EAAE;IAC5B,IAAI,GAAG,IAAI,cAAc,CAAC;IAC1B,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;IC5QA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;IAC7D,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,QAAQ,IAAI,YAAY,CAAC,GAAG,gBAAgB,IAAI,YAAY,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,mBAAmB,IAAI,MAAM,CAAC,GAAG,mBAAmB,CAAC;IACtO,KAAK;IACL,IAAI,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,MAAM,CAAC,GAAG,4BAA4B,CAAC;IAC1F,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;IAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,KAAK,YAAY,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;IAChK,MAAM,GAAG,IAAI,sDAAsD,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,+BAA+B,CAAC;IAC5J,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,wDAAwD,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;IAC1F,MAAM,IAAI,OAAO,GAAG,eAAe,IAAI,YAAY,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;IAChE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC;IACpF,MAAM,IAAI,YAAY,EAAE;IACxB,QAAQ,GAAG,IAAI,uDAAuD,CAAC;IACvE,OAAO;IACP,MAAM,GAAG,IAAI,iDAAiD,IAAI,MAAM,CAAC,GAAG,qEAAqE,CAAC;IAClJ,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,GAAG,IAAI,OAAO,CAAC;IACrB,KAAK;IACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,4BAA4B,CAAC;IACxM,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,uGAAuG,CAAC;IACvH,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,cAAc,CAAC;IAC9B,QAAQ,IAAI,OAAO,EAAE;IACrB,UAAU,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;IACnD,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IAC1G,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;IACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACjE,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACtE,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACtH,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,UAAU,CAAC;IACxB,KAAK;IACL,GAAG,MAAM;IACT,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,eAAe,CAAC;IAC7B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;ICnFA;IACA,SAAc,GAAG;IACjB,EAAE,MAAM,EAAEZ,GAAgB;IAC1B,EAAE,KAAK,EAAEC,KAAkB;IAC3B,EAAE,KAAK,EAAEY,KAAkB;IAC3B,EAAE,UAAU,EAAEC,OAAoB;IAClC,EAAE,KAAK,EAAEC,MAAkB;IAC3B,EAAE,QAAQ,EAAEC,QAAqB;IACjC,EAAE,YAAY,EAAEC,YAAyB;IACzC,EAAE,MAAM,EAAEC,KAAiB;IAC3B,EAAE,MAAM,EAAEC,MAAmB;IAC7B,EAAE,IAAI,EAAEC,GAAe;IACvB,EAAE,KAAK,EAAEC,KAAkB;IAC3B,EAAE,OAAO,EAAEC,MAAmB;IAC9B,EAAE,OAAO,EAAEA,MAAmB;IAC9B,EAAE,QAAQ,EAAEC,WAAwB;IACpC,EAAE,QAAQ,EAAEA,WAAwB;IACpC,EAAE,SAAS,EAAEC,YAAyB;IACtC,EAAE,SAAS,EAAEA,YAAyB;IACtC,EAAE,aAAa,EAAEC,gBAA6B;IAC9C,EAAE,aAAa,EAAEA,gBAA6B;IAC9C,EAAE,UAAU,EAAEC,UAAuB;IACrC,EAAE,GAAG,EAAEC,GAAgB;IACvB,EAAE,KAAK,EAAEC,KAAkB;IAC3B,EAAE,OAAO,EAAEC,OAAoB;IAC/B,EAAE,UAAU,EAAEC,UAAuB;IACrC,EAAE,aAAa,EAAEC,aAA0B;IAC3C,EAAE,QAAQ,EAAEC,QAAqB;IACjC,EAAE,WAAW,EAAEC,WAAwB;IACvC,EAAE,QAAQ,EAAEC,QAAqB;IACjC,CAAC;;IC9BD,IACIC,QAAM,GAAGnC,IAAiB,CAAC,MAAM,CAAC;AACtC;IACA,SAAc,GAAG,SAAS,KAAK,GAAG;IAClC,EAAE,IAAI,KAAK,GAAG;IACd,IAAI,EAAE,IAAI,EAAE,QAAQ;IACpB,MAAM,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE;IAClD,eAAe,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;IAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;IACpB,MAAM,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAChE,IAAI,EAAE,IAAI,EAAE,OAAO;IACnB,MAAM,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;IAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;IACpB,MAAM,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe;IAC5F,eAAe,EAAE,YAAY,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE;IAClF,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAClF,GAAG,CAAC;AACJ;IACA,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACnC,EAAE,IAAI,QAAQ,GAAG;IACjB,IAAI,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACtD,IAAI,aAAa,EAAE,SAAS,EAAE,aAAa;IAC3C,IAAI,UAAU,EAAE,UAAU,EAAE,WAAW;IACvC,IAAI,kBAAkB,EAAE,iBAAiB;IACzC,IAAI,iBAAiB,EAAE,MAAM,EAAE,MAAM;IACrC,GAAG,CAAC;IACJ,EAAE,IAAI,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACtF,EAAE,KAAK,CAAC,GAAG,GAAGmC,QAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,EAAE,KAAK,CAAC,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC;AAC9B;IACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;IACjC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;IACrD,MAAM,IAAI,YAAY,CAAC;IACvB,MAAM,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;IACtC,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAQ,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,OAAO,GAAG,GAAG,CAAC;IACtB,QAAQ,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;IAC1C,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,CAAC;IACX,OAAO;IACP,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;IACtC,QAAQ,OAAO,EAAE,OAAO;IACxB,QAAQ,IAAI,EAAEC,KAAW,CAAC,OAAO,CAAC;IAClC,QAAQ,UAAU,EAAE,YAAY;IAChC,OAAO,CAAC;IACR,MAAM,OAAO,IAAI,CAAC;IAClB,KAAK,CAAC,CAAC;AACP;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG;IACzB,MAAM,OAAO,EAAE,UAAU;IACzB,MAAM,IAAI,EAAEA,KAAW,CAAC,QAAQ;IAChC,KAAK,CAAC;AACN;IACA,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACpD,GAAG,CAAC,CAAC;AACL;IACA,EAAE,KAAK,CAAC,QAAQ,GAAGD,QAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB;IACA,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;;IC/DD,IAAI,QAAQ,GAAG;IACf,EAAE,YAAY;IACd,EAAE,SAAS;IACX,EAAE,kBAAkB;IACpB,EAAE,SAAS;IACX,EAAE,kBAAkB;IACpB,EAAE,WAAW;IACb,EAAE,WAAW;IACb,EAAE,SAAS;IACX,EAAE,iBAAiB;IACnB,EAAE,UAAU;IACZ,EAAE,UAAU;IACZ,EAAE,aAAa;IACf,EAAE,eAAe;IACjB,EAAE,eAAe;IACjB,EAAE,UAAU;IACZ,EAAE,sBAAsB;IACxB,EAAE,MAAM;IACR,EAAE,QAAQ;IACV,EAAE,OAAO;IACT,CAAC,CAAC;AACF;IACA,QAAc,GAAG,UAAU,UAAU,EAAE,oBAAoB,EAAE;IAC7D,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC;IAC9B,IAAI,IAAI,CAAC,CAAC;IACV,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC;IACA,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,MAAM,EAAE;IAClB,QAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG;IACxB,UAAU,KAAK,EAAE;IACjB,YAAY,MAAM;IAClB,YAAY,EAAE,IAAI,EAAE,8EAA8E,EAAE;IACpG,WAAW;IACX,SAAS,CAAC;IACV,OAAO;IACP,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,UAAU,CAAC;IACpB,CAAC;;IC9CD,IAAIE,iBAAe,GAAGrC,aAA0B,CAAC,UAAU,CAAC;AAC5D;IACA,SAAc,GAAG,YAAY,CAAC;AAC9B;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9C;IACA;IACA;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;IAClB,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU;IAChD,IAAI,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC/D;IACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;IACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,GAAG;AACH;IACA,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY;IACpD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,OAAO,SAAS,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1D,GAAG,CAAC,CAAC;AACL;IACA,EAAE,IAAI,QAAQ,EAAE;IAChB,IAAI,CAAC,CAAC,IAAI;IACV,MAAM,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;IACxC,MAAM,QAAQ;IACd,KAAK,CAAC;IACN,GAAG;AACH;IACA,EAAE,OAAO,CAAC,CAAC;AACX;AACA;IACA,EAAE,SAAS,gBAAgB,CAAC,GAAG,EAAE;IACjC,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAC9C,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;IAC9D,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC;IAChC,GAAG;AACH;AACA;IACA,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE;IACpC,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;IAC5C,IAAI,MAAM,CAAC,EAAE;IACb,MAAM,IAAI,CAAC,YAAYqC,iBAAe,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,CAAC,CAAC;IACd,KAAK;AACL;AACA;IACA,IAAI,SAAS,iBAAiB,CAAC,CAAC,EAAE;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC;IAChC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,CAAC,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;AAClH;IACA,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,CAAC,aAAa,EAAE;IAC1B,QAAQ,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/E,QAAQ,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACzD,OAAO;AACP;IACA,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;IAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACzB,UAAU,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;IACxD,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvE,WAAW,CAAC,CAAC;IACb,SAAS;IACT,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;IACzB,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC;AACT;IACA,MAAM,SAAS,aAAa,GAAG;IAC/B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO;AACP;IACA,MAAM,SAAS,KAAK,CAAC,GAAG,EAAE;IAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrD,OAAO;IACP,KAAK;IACL,GAAG;IACH;;ICxFA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;IACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;IACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;IACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;IACzD,IAAI,YAAY,CAAC;IACjB,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,GAAG,MAAM;IACT,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,IAAI;IAClB,IAAI,WAAW,GAAG,YAAY,GAAG,IAAI;IACrC,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU;IAC5B,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,EAAE,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;IAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;IAC9B,IAAI,aAAa,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC7C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;IAC/C,IAAI,GAAG,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,oBAAoB,IAAI,QAAQ,CAAC,GAAG,sBAAsB,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,YAAY,CAAC;IACzJ,GAAG,MAAM;IACT,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO;IAC/B,IAAI,YAAY,GAAG,iBAAiB,GAAG,WAAW,CAAC;IACnD,IAAI,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;IACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,GAAG;IACH,EAAE,IAAI,SAAS,GAAG,aAAa,GAAG,SAAS;IAC3C,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;IACnB,IAAI,QAAQ,GAAG,SAAS,GAAG,IAAI;IAC/B,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,EAAE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClF,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE;IAC5B,IAAI,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,UAAU,CAAC;IACzC,GAAG;IACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;IAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;IAC9B,IAAI,cAAc,IAAI,GAAG,CAAC;IAC1B,IAAI,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;IAC7F,IAAI,IAAI,eAAe,EAAE;IACzB,MAAM,cAAc,IAAI,GAAG,CAAC;IAC5B,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;IAC1H,KAAK;IACL,GAAG;IACH,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;IAC1B,MAAM,GAAG,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IAClD,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtE,KAAK;IACL,GAAG,MAAM,IAAI,MAAM,EAAE;IACrB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC;IAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;IAChB,IAAI,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;IACzC,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IACxC,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;IACxB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IACzD,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC;IACzB,GAAG,MAAM;IACT,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,IAAI,IAAI,IAAI,aAAa,CAAC,GAAG,SAAS,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;IAC7B,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;IAC5C,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACnC,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;IACrG,KAAK;IACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;IAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IACpC,KAAK;IACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;IAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;IACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,iBAAiB,CAAC;IACrF,IAAI,IAAI,oBAAoB,GAAG,GAAG,CAAC;IACnC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;IAChC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC;IACpC,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;IACxB,OAAO;IACP,MAAM,GAAG,IAAI,EAAE,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;IAChD,KAAK,MAAM;IACX,MAAM,IAAI,aAAa,EAAE;IACzB,QAAQ,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;IAC1C,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,oBAAoB,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,8CAA8C,IAAI,SAAS,CAAC,GAAG,+BAA+B,CAAC;IAC5O,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;IAClG,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE;IACvB,IAAI,GAAG,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI,CAAC;IACjH,GAAG;IACH,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,CAAC;IAC/B,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;IACnB,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,eAAe,CAAC;IAC7B,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,IAAI,QAAQ,CAAC;IACpB,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;IACnC,MAAM,GAAG,IAAI,IAAI,CAAC;IAClB,MAAM,IAAI,MAAM,EAAE;IAClB,QAAQ,GAAG,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC;IACjC,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC;IAC7B,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IACxC,KAAK;IACL,IAAI,GAAG,IAAI,MAAM,CAAC;IAClB,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IAClC,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9O,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACtC,QAAQ,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;IAC3F,OAAO;IACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACjJ,OAAO;IACP,MAAM,GAAG,IAAI,KAAK,CAAC;IACnB,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;IACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC5C;IACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;IACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;IACjE,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;IACtE,OAAO;IACP,KAAK,MAAM;IACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;IACtH,KAAK;IACL,IAAI,IAAI,eAAe,GAAG,GAAG,CAAC;IAC9B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;IACpC,UAAU,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,OAAO,CAAC;IAC/X,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IACtH,WAAW;IACX,UAAU,GAAG,IAAI,KAAK,CAAC;IACvB,SAAS;IACT,OAAO,MAAM;IACb,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;IACpC,UAAU,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;IAC/C,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,eAAe,CAAC,GAAG,sBAAsB,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,OAAO,CAAC;IACnc,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC/B,YAAY,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IACtH,WAAW;IACX,UAAU,GAAG,IAAI,OAAO,CAAC;IACzB,SAAS;IACT,OAAO;IACP,KAAK,MAAM,IAAI,MAAM,EAAE;IACvB,MAAM,GAAG,IAAI,iBAAiB,CAAC;IAC/B,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;IACrC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChP,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IACxC,UAAU,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;IAC7F,SAAS;IACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC7B,UAAU,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;IACnJ,SAAS;IACT,QAAQ,GAAG,IAAI,KAAK,CAAC;IACrB,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,MAAM,CAAC;IACtB,OAAO;IACP,MAAM,GAAG,IAAI,8EAA8E,CAAC;IAC5F,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;IAC9C;IACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;IACtB,UAAU,GAAG,IAAI,uCAAuC,CAAC;IACzD,SAAS,MAAM;IACf,UAAU,GAAG,IAAI,4CAA4C,CAAC;IAC9D,SAAS;IACT,OAAO;IACP,KAAK,MAAM;IACX,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;IAClC,QAAQ,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;IAC7C,OAAO,MAAM;IACb,QAAQ,GAAG,IAAI,qBAAqB,IAAI,SAAS,CAAC,GAAG,uCAAuC,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,SAAS,CAAC,GAAG,wCAAwC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC;IACtf,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;IAC7B,UAAU,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;IACpH,SAAS;IACT,QAAQ,GAAG,IAAI,cAAc,IAAI,eAAe,CAAC,GAAG,KAAK,CAAC;IAC1D,OAAO;IACP,KAAK;IACL,IAAI,GAAG,IAAI,KAAK,CAAC;IACjB,IAAI,IAAI,aAAa,EAAE;IACvB,MAAM,GAAG,IAAI,UAAU,CAAC;IACxB,KAAK;IACL,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICjOA,IAAIC,YAAU,GAAG,wBAAwB,CAAC;AACK;IAC/C,IAAI,UAAU,GAAGtC,UAA2C,CAAC;AAC7D;IACA,WAAc,GAAG;IACjB,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,MAAM,EAAE,aAAa;IACvB,EAAE,QAAQ,EAAE,eAAe;IAC3B,CAAC,CAAC;AACF;IACA,IAAI,gBAAgB,GAAG;IACvB,EAAE,WAAW,EAAE;IACf,IAAI,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,WAAW;IACnD,GAAG;IACH,EAAE,IAAI,EAAE,QAAQ;IAChB,EAAE,YAAY,EAAE;IAChB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC;IACxB,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,UAAU,EAAE,CAAC,QAAQ,CAAC;IAC1B,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,GAAG;IACH,EAAE,UAAU,EAAE;IACd,IAAI,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI;IACpC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAC7B,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IACjC,IAAI,YAAY,EAAE;IAClB,MAAM,IAAI,EAAE,OAAO;IACnB,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC7B,KAAK;IACL,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IAChC,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAC5B,IAAI,MAAM,EAAE;IACZ,MAAM,KAAK,EAAE;IACb,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG;IACH,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;IACzC;IACA;IACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,qBAAqB,CAAC,CAAC;AAClE;IACA,EAAE,IAAI,CAACsC,YAAU,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,4BAA4B,CAAC,CAAC;AACzE;IACA,EAAE,IAAI,UAAU,EAAE;IAClB,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C;IACA,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;IACnC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACjC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;IAC1C,QAAQ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACnD,KAAK,MAAM;IACX,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;AACL;IACA,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC3C,IAAI,IAAI,UAAU,EAAE;IACpB,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IAChD,QAAQ,UAAU,GAAG;IACrB,UAAU,KAAK,EAAE;IACjB,YAAY,UAAU;IACtB,YAAY,EAAE,MAAM,EAAE,8EAA8E,EAAE;IACtG,WAAW;IACX,SAAS,CAAC;IACV,OAAO;IACP,MAAM,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjE,KAAK;IACL,GAAG;AACH;IACA,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACtD;AACA;IACA,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;IACnD,IAAI,IAAI,SAAS,CAAC;IAClB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;IAC/B,QAAQ,SAAS,GAAG,EAAE,CAAC;IACvB,QAAQ,MAAM;IACd,OAAO;IACP,KAAK;AACL;IACA,IAAI,IAAI,CAAC,SAAS,EAAE;IACpB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAChD,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,KAAK;AACL;IACA,IAAI,IAAI,IAAI,GAAG;IACf,MAAM,OAAO,EAAE,OAAO;IACtB,MAAM,UAAU,EAAE,UAAU;IAC5B,MAAM,MAAM,EAAE,IAAI;IAClB,MAAM,IAAI,EAAEC,MAAc;IAC1B,MAAM,UAAU,EAAE,UAAU,CAAC,UAAU;IACvC,KAAK,CAAC;IACN,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACjC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,UAAU,CAAC,OAAO,EAAE;IAC7B;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IACxE,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,aAAa,CAAC,OAAO,EAAE;IAChC;IACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACrC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;IACvC,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,QAAQ,MAAM;IACd,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;IACjD,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;IACvD,qCAAqC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC1E;IACA,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI,CAAC;IACjC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,IAAI,UAAU;IAChB,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F;IACA,IAAI,OAAO,KAAK,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICrKA,OAAc,GAAG,GAAG,CAAC;AACrB;IACA,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG9B,UAAQ,CAAC;IAClC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG+B,SAAO,CAAC;IAChC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;IAC9C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;IAC1C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC;IACA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;IACtC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC;IACA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAGxC,KAA0B,CAAC;AACf;IACzC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAGyC,OAAa,CAAC,GAAG,CAAC;IAC7C,GAAG,CAAC,SAAS,CAAC,UAAU,GAAGA,OAAa,CAAC,GAAG,CAAC;IAC7C,GAAG,CAAC,SAAS,CAAC,aAAa,GAAGA,OAAa,CAAC,MAAM,CAAC;IACnD,GAAG,CAAC,SAAS,CAAC,eAAe,GAAGA,OAAa,CAAC,QAAQ,CAAC;AACvD;AACsD;IACtD,GAAG,CAAC,eAAe,GAAGlC,aAAY,CAAC,UAAU,CAAC;IAC9C,GAAG,CAAC,eAAe,GAAGA,aAAY,CAAC,UAAU,CAAC;IAC9C,GAAG,CAAC,eAAe,GAAGmC,IAAe,CAAC;AACtC;IACA,IAAI,cAAc,GAAG,wCAAwC,CAAC;AAC9D;IACA,IAAI,mBAAmB,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IACjG,IAAI,iBAAiB,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,GAAG,CAAC,IAAI,EAAE;IACnB,EAAE,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,EAAE,IAAI,CAAC,QAAQ,GAAGC,SAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC;IACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAIC,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;IACvB,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC;IACA,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;IACpD,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAC3E,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,IAAI,CAAC,SAAS,GAAGlC,uBAAe,CAAC;IACrE,EAAE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC9C;IACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAClF,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;AACD;AACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAASD,UAAQ,CAAC,YAAY,EAAE,IAAI,EAAE;IACtC,EAAE,IAAI,CAAC,CAAC;IACR,EAAE,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;IACvC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;IAChF,GAAG,MAAM;IACT,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvD,GAAG;AACH;IACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS+B,SAAO,CAAC,MAAM,EAAE,KAAK,EAAE;IAChC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE;IACxD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACrG,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,EAAE,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ;IAC/C,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,EAAE,GAAG,GAAG/F,SAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7E,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;IACpD,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACpD,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;IACjD,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,EAAE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ;IACzD,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACnE,EAAE,IAAI,CAAC,OAAO,EAAE;IAChB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;IACjC,IAAI,IAAI,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5D,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,GAAG;IACH,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7B,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ;IAClD,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;IACvD,8BAA8B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;IAC5D,gCAAgC,cAAc;IAC9C,gCAAgC,SAAS,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,MAAM,EAAE;IAC3B,EAAE,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,EAAE,QAAQ,OAAO,SAAS;IAC1B,IAAI,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzE,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,KAAK,WAAW,EAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;IACvC,EAAE,IAAI,GAAG,GAAGA,SAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3D,EAAE,IAAI,GAAG,EAAE;IACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;IAC3B,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI;IACvB,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,IAAI,IAAI,CAAC,GAAGoG,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI3C,UAAY,CAAC;IAC5C,MAAM,GAAG,EAAE,GAAG;IACd,MAAM,QAAQ,EAAE,IAAI;IACpB,MAAM,MAAM,EAAE,MAAM;IACpB,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,MAAM,EAAE,MAAM;IACpB,MAAM,QAAQ,EAAE,CAAC;IACjB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,CAAC,CAAC;IACb,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IACrC,EAAE,MAAM,GAAGzD,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChF,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,YAAY,CAAC,YAAY,EAAE;IACpC,EAAE,IAAI,YAAY,YAAY,MAAM,EAAE;IACtC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,QAAQ,OAAO,YAAY;IAC7B,IAAI,KAAK,WAAW;IACpB,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,OAAO,IAAI,CAAC;IAClB,IAAI,KAAK,QAAQ;IACjB,MAAM,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,OAAO,IAAI,CAAC;IAClB,IAAI,KAAK,QAAQ;IACjB,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC3C,MAAM,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;IACxE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,IAAI,EAAE,EAAE;IACd,QAAQ,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9B,OAAO;IACP,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;IACjD,EAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;IAC9B,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK;IACL,GAAG;IACH,CAAC;AACD;AACA;IACA;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;IACnE,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;IAC7D,IAAI,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IACvC,EAAE,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACxD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,EAAE,IAAI,MAAM,EAAE,OAAO,MAAM,CAAC;AAC5B;IACA,EAAE,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC;AAC1E;IACA,EAAE,IAAI,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD;IACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;IAC5E,EAAE,IAAI,aAAa,CAAC;IACpB,EAAE,IAAI,YAAY,IAAI,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,IAAIA,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxF,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC;IACA,EAAE,IAAI,SAAS,GAAGA,SAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD;IACA,EAAE,IAAI,SAAS,GAAG,IAAIyD,UAAY,CAAC;IACnC,IAAI,EAAE,EAAE,EAAE;IACV,IAAI,MAAM,EAAE,MAAM;IAClB,IAAI,SAAS,EAAE,SAAS;IACxB,IAAI,QAAQ,EAAE,QAAQ;IACtB,IAAI,IAAI,EAAE,IAAI;IACd,GAAG,CAAC,CAAC;AACL;IACA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAClE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC;IACA,EAAE,IAAI,YAAY,IAAI,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvE;IACA,EAAE,OAAO,SAAS,CAAC;IACnB,CAAC;AACD;AACA;IACA;IACA,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;IACnC,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE;IAC3B,IAAI,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC;IACtC,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3C,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IACnD,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;IACxC,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,OAAO,YAAY,CAAC;IACxB,GAAG;IACH,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B;IACA,EAAE,IAAI,WAAW,CAAC;IAClB,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE;IACtB,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IAChC,GAAG;AACH;IACA,EAAE,IAAI,CAAC,CAAC;IACR,EAAE,IAAI,EAAE,CAAC,GAAG2C,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE;IACpF,EAAE,MAAM,CAAC,EAAE;IACX,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC9B,IAAI,MAAM,CAAC,CAAC;IACZ,GAAG;IACH,UAAU;IACV,IAAI,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;IACjD,GAAG;AACH;IACA,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,EAAE,OAAO,CAAC,CAAC;AACX;AACA;IACA;IACA,EAAE,SAAS,YAAY,GAAG;IAC1B;IACA,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;IACvC,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3C,IAAI,OAAO,MAAM,CAAC;IAClB,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,EAAE,QAAQ,IAAI,CAAC,QAAQ;IACvB,IAAI,KAAK,MAAM,EAAE,OAAO,WAAW,CAAC;IACpC,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;IAC7B,IAAI,SAAS,OAAO,OAAO,CAAC;IAC5B,GAAG;IACH,CAAC;AACD;IACA;IACA,SAAS,MAAM,CAAC,MAAM,EAAE;IACxB,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrE,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;AACD;IACA;IACA,SAAS,OAAO,CAAC,MAAM,EAAE;IACzB,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAClE,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,MAAM,EAAE;IAC7B,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;IACxD,IAAI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,EAAE,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;IACjC,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;IACrC,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACjC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,WAAW,CAAC;IAClC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC1B,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAC7E,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AACzE;IACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACtC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,GAAG;IACH,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;AACD;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;IACjC,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAC/B,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;AACA;IACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;IACpC,EAAE,IAAI,WAAW,CAAC;IAClB,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACxB,IAAI,WAAW,GAAG,UAA2B,CAAC;IAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3D,GAAG;IACH,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,OAAO;IACxC,EAAE,IAAI,UAAU,GAAG,UAA2C,CAAC;IAC/D,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAGH,IAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACpF,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACvD,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,cAAc,CAAC;IAC/D,CAAC;AACD;AACA;IACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;IACjC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IACvC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO;IAC3B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;AACD;AACA;IACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;IACjC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACvC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE;IAC/B,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACzC,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;IACzE,CAAC;AACD;AACA;IACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;IACpC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE;IACjD,IAAI,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,EAAE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACD;AACA;IACA,SAAS,SAAS,CAAC,IAAI,EAAE;IACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACjC,EAAE,IAAI,MAAM,KAAK,KAAK,EAAE;IACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACvD,GAAG,MAAM;IACT,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,IAAI,IAAI,EAAE,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;IACjF,MAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG;IACH,CAAC;AACD;AACA;IACA,SAAS,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5ehB,IAAMI,KAAG,GAAIC,GAAoB,IAAI,IAAI,CAAC;QAE7B,UAAU,GAAW,YAAY;IAE9C,IAAM,OAAO,GAAiB;QAC1B,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,KAAK;KACtB,CAAC;IAEF,SAAS,UAAU,CAAC,GAAgC,EAAE,MAAmC;QACrF,IAAM,GAAG,GAAa,IAAID,KAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO;YACH,OAAO,SAAA;YACP,MAAM,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC;IACN,CAAC;aAce,SAAS,CAAC,GAAgB;QACtC,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACxC;;aC9BgB,YAAY,CAAC,GAAiC;QAC1D,OAAQ,GAAmB,CAAC,OAAO,KAAK,SAAS,IAAK,GAAmB,CAAC,WAAW,KAAK,SAAS,IAAK,GAAmB,CAAC,SAAS,KAAK,SAAS,CAAC;IACxJ;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/ddl/v1.ts","../src/ddl/v2.ts","../../../node_modules/tslib/tslib.es6.js","../src/dermatology.ts","../src/upgrade.ts","../../../node_modules/uri-js/src/util.ts","../../../node_modules/uri-js/src/regexps-uri.ts","../../../node_modules/uri-js/src/regexps-iri.ts","../../../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../../../node_modules/uri-js/src/uri.ts","../../../node_modules/uri-js/src/schemes/http.ts","../../../node_modules/uri-js/src/schemes/https.ts","../../../node_modules/uri-js/src/schemes/ws.ts","../../../node_modules/uri-js/src/schemes/wss.ts","../../../node_modules/uri-js/src/schemes/mailto.ts","../../../node_modules/uri-js/src/schemes/urn.ts","../../../node_modules/uri-js/src/schemes/urn-uuid.ts","../../../node_modules/uri-js/src/index.ts","../../../node_modules/ajv/node_modules/fast-deep-equal/index.js","../../../node_modules/ajv/lib/compile/ucs2length.js","../../../node_modules/ajv/lib/compile/util.js","../../../node_modules/ajv/lib/compile/schema_obj.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.js","../../../node_modules/ajv/lib/compile/error_classes.js","../../../node_modules/fast-json-stable-stringify/index.js","../../../node_modules/ajv/lib/dotjs/validate.js","../../../node_modules/ajv/lib/compile/index.js","../../../node_modules/ajv/lib/cache.js","../../../node_modules/ajv/lib/compile/formats.js","../../../node_modules/ajv/lib/dotjs/ref.js","../../../node_modules/ajv/lib/dotjs/allOf.js","../../../node_modules/ajv/lib/dotjs/anyOf.js","../../../node_modules/ajv/lib/dotjs/comment.js","../../../node_modules/ajv/lib/dotjs/const.js","../../../node_modules/ajv/lib/dotjs/contains.js","../../../node_modules/ajv/lib/dotjs/dependencies.js","../../../node_modules/ajv/lib/dotjs/enum.js","../../../node_modules/ajv/lib/dotjs/format.js","../../../node_modules/ajv/lib/dotjs/if.js","../../../node_modules/ajv/lib/dotjs/items.js","../../../node_modules/ajv/lib/dotjs/_limit.js","../../../node_modules/ajv/lib/dotjs/_limitItems.js","../../../node_modules/ajv/lib/dotjs/_limitLength.js","../../../node_modules/ajv/lib/dotjs/_limitProperties.js","../../../node_modules/ajv/lib/dotjs/multipleOf.js","../../../node_modules/ajv/lib/dotjs/not.js","../../../node_modules/ajv/lib/dotjs/oneOf.js","../../../node_modules/ajv/lib/dotjs/pattern.js","../../../node_modules/ajv/lib/dotjs/properties.js","../../../node_modules/ajv/lib/dotjs/propertyNames.js","../../../node_modules/ajv/lib/dotjs/required.js","../../../node_modules/ajv/lib/dotjs/uniqueItems.js","../../../node_modules/ajv/lib/dotjs/index.js","../../../node_modules/ajv/lib/compile/rules.js","../../../node_modules/ajv/lib/data.js","../../../node_modules/ajv/lib/compile/async.js","../../../node_modules/ajv/lib/dotjs/custom.js","../../../node_modules/ajv/lib/keyword.js","../../../node_modules/ajv/lib/ajv.js","../src/validate.ts","../src/index.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/ddl-shim\";\r\nexport const PKG_VERSION = \"2.17.21\";\r\nexport const BUILD_VERSION = \"2.97.0\";\r\n","export type StringStringDict = { [key: string]: string; };\n\n// Datasource ===============================================================\nexport type IFilterRule = \"==\" | \"!=\" | \"<\" | \"<=\" | \">\" | \">=\" | \"set\" | \"notequals\";\nexport interface IFilter {\n fieldid: string;\n nullable: boolean;\n rule: IFilterRule;\n minid?: string;\n maxid?: string;\n}\n\nexport interface IOutput {\n id: string;\n from?: string;\n filter?: IFilter[];\n notify?: string[];\n}\n\nexport interface IDatasource {\n id: string;\n filter?: IFilter[];\n outputs: IOutput[];\n}\n\nexport interface IWorkunitDatasource extends IDatasource {\n WUID: boolean;\n}\nexport function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource {\n return (ref as IWorkunitDatasource).WUID !== undefined;\n}\n\nexport interface IDatabombDatasource extends IDatasource {\n databomb: true;\n}\nexport function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource {\n return (ref as IDatabombDatasource).databomb === true;\n}\n\nexport interface IHipieDatasource extends IDatasource {\n URL: string;\n}\nexport function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource {\n return (ref as IHipieDatasource).URL !== undefined;\n}\n\nexport type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource;\n// Event ====================================================================\nexport interface IEventUpdate {\n visualization: string;\n instance?: string;\n datasource: string;\n col?: string;\n merge: boolean;\n mappings?: StringStringDict;\n}\n\nexport interface IEvent {\n mappings?: StringStringDict; // Legacy\n updates: IEventUpdate[];\n}\n\n// Mappings =================================================================\nexport interface IPieMapping {\n label: string;\n weight: string;\n}\n\nexport interface ILineMapping {\n x: string[];\n y: string[];\n}\n\nexport interface ITableMapping {\n value: string[];\n}\n\nexport interface IChoroMapping {\n weight: string | string[];\n}\n\nexport interface IChoroUSStateMapping extends IChoroMapping {\n state: string;\n}\n\nexport interface IChoroUSCountyMapping extends IChoroMapping {\n county: string;\n}\n\nexport interface IChoroGeohashMapping extends IChoroMapping {\n geohash: string;\n}\n\nexport interface IGraphMapping {\n uid: string;\n label: string;\n weight: string;\n flags: string;\n}\n\nexport interface IGraphLinkMapping {\n uid: string;\n}\n\nexport interface IHeatMapMapping {\n x: string;\n y: string;\n weight: string;\n}\n\nexport interface ISliderMapping {\n label: string;\n}\n// Source ===================================================================\nexport interface ISource {\n id: string;\n output: string;\n sort?: string[];\n first?: string | number;\n reverse?: boolean;\n properties?: StringStringDict; // TODO Needed?\n}\n\nexport interface IPieSource extends ISource {\n mappings: IPieMapping;\n}\n\nexport interface ILineSource extends ISource {\n mappings: ILineMapping;\n}\n\nexport interface ITableSource extends ISource {\n mappings: ITableMapping;\n}\n\nexport interface IGraphLink {\n mappings: IGraphLinkMapping;\n childfile: string;\n}\n\nexport interface IGraphSource extends ISource {\n mappings: IGraphMapping;\n link: IGraphLink;\n}\n\nexport interface IHeatMapSource extends ISource {\n mappings: IHeatMapMapping;\n}\n\nexport interface IChoroSource extends ISource {\n mappings: IAnyChoroMapping;\n}\n\nexport interface ISliderSource extends ISource {\n mappings: ISliderMapping;\n}\n\n// Visualization ============================================================\nexport type VisualizationType = \"PIE\" | \"LINE\" | \"BAR\" | \"TABLE\" | \"CHORO\" | \"GRAPH\" | \"HEAT_MAP\" | \"SLIDER\" | \"SUMMARY\" | \"FORM\" | \"2DCHART\" | \"WORD_CLOUD\" | \"BUBBLE\";\nexport type VisualizationFieldDataType = \"bool\" | \"boolean\" | \"integer\" | \"integer4\" | \"integer8\" | \"unsigned\" | \"unsigned4\" | \"unsigned8\" | \"float\" | \"double\" | \"real\" | \"real4\" | \"real8\" | \"string\" | \"date\" | \"time\" | \"geohash\" | \"dataset\" | \"visualization\";\nexport type VisualizationFieldType = VisualizationFieldDataType | \"range\";\nexport type VisualizationFieldFuncitonType = \"SUM\" | \"AVE\" | \"MIN\" | \"MAX\" | \"SCALE\";\n\nexport interface IVisualizationField {\n id: string;\n properties: {\n label?: string;\n datatype: VisualizationFieldDataType;\n default?: any[];\n function?: VisualizationFieldFuncitonType;\n params?: {\n param1: string;\n param2: string;\n }\n type: VisualizationFieldType;\n };\n}\n\nexport interface IVisualization {\n id: string;\n title?: string;\n type: VisualizationType;\n fields?: IVisualizationField[];\n properties?: {\n charttype?: string,\n\n // TODO Split Known Properties ---\n [key: string]: any\n };\n events?: { [key: string]: IEvent };\n onSelect?: any; // legacy\n color?: any; // legacy\n}\n\nexport interface IPieVisualization extends IVisualization {\n type: \"PIE\" | \"BAR\";\n source: IPieSource;\n}\nexport function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization {\n return (viz as IPieVisualization).type === \"PIE\" || (viz as IPieVisualization).type === \"BAR\";\n}\n\nexport interface ILineVisualization extends IVisualization {\n type: \"LINE\";\n source: ILineSource;\n}\nexport function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization {\n return (viz as ILineVisualization).type === \"LINE\";\n}\n\nexport type ChoroColor = \"default\" | \"YlGn\" | \"YlGnBu\" | \"GnBu\" | \"BuGn\" | \"PuBuGn\" | \"PuBu\" | \"BuPu\" | \"RdPu\" | \"PuRd\" | \"OrRd\" | \"YlOrRd\" | \"YlOrBr\" | \"Purples\" | \"Blues\" | \"Greens\" | \"Oranges\" | \"Reds\" | \"Greys\" | \"PuOr\" | \"BrBG\" | \"PRGn\" | \"PiYG\" | \"RdBu\" | \"RdGy\" | \"RdYlBu\" | \"Spectral\" | \"RdYlGn\" | \"RdWhGr\";\nexport interface IChoroVisualization extends IVisualization {\n type: \"CHORO\";\n source: IChoroSource;\n\n visualizations?: IChoroVisualization[];\n color?: ChoroColor;\n}\nexport function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization {\n return (viz as IChoroVisualization).type === \"CHORO\";\n}\n\nexport interface ITableVisualization extends IVisualization {\n type: \"TABLE\";\n label: string[];\n source: ITableSource;\n}\nexport function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization {\n return (viz as ITableVisualization).type === \"TABLE\";\n}\n\nexport interface ISliderVisualization extends IVisualization {\n type: \"SLIDER\";\n source: ISliderSource;\n range?: number[];\n}\nexport function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization {\n return (viz as ISliderVisualization).type === \"SLIDER\";\n}\n\nexport interface IIcon {\n [id: string]: string | number | boolean;\n}\n\nexport type IValueMappings = { [key: string]: IIcon; };\n\nexport interface IVisualizationIcon {\n fieldid?: string;\n faChar?: string;\n valuemappings?: IValueMappings;\n}\n\nexport interface IGraphVisualization extends IVisualization {\n type: \"GRAPH\";\n source: IGraphSource;\n\n label: string[];\n icon: IVisualizationIcon;\n flag: IVisualizationIcon[];\n}\nexport function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization {\n return (viz as IGraphVisualization).type === \"GRAPH\";\n}\n\nexport interface IHeatMapVisualization extends IVisualization {\n type: \"HEAT_MAP\";\n source: IHeatMapSource;\n}\nexport function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization {\n return (viz as IHeatMapVisualization).type === \"HEAT_MAP\";\n}\n\nexport interface IFormVisualization extends IVisualization {\n type: \"FORM\";\n}\nexport function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization {\n return (viz as IFormVisualization).type === \"FORM\";\n}\n\n// Dashboard ================================================================\nexport interface IDashboard {\n id?: string;\n title?: string;\n enable?: string;\n label?: string;\n primary?: boolean;\n visualizations: IAnyVisualization[];\n}\n\nexport interface IDDL {\n dashboards: IDashboard[];\n datasources: IAnyDatasource[];\n hipieversion: string;\n visualizationversion: string;\n}\n\n// DDL ======================================================================\nexport type DDLSchema = IDDL;\n\n// Helpers ==================================================================\nexport type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping;\nexport function isUSStateMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSStateMapping).state !== undefined;\n}\nexport function isUSCountyMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSCountyMapping).county !== undefined;\n}\nexport function isGeohashMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroGeohashMapping).geohash !== undefined;\n}\nexport type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping;\nexport type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource;\nexport type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;\n","export type RowType = { [key: string]: any; };\n\n// Fields ==============================================================\nexport type Number64 = string;\nexport type Range = [number | string, number | string];\nexport type Dataset = any[];\nexport type IFieldType = \"boolean\" | \"number\" | \"number64\" | \"string\" | \"range\" | \"dataset\" | \"set\" | \"object\";\n\nexport interface IFieldBoolean {\n type: \"boolean\";\n id: string;\n default?: boolean;\n}\n\nexport interface IFieldNumber {\n type: \"number\";\n id: string;\n default?: number;\n}\n\nexport interface IFieldNumber64 {\n type: \"number64\";\n id: string;\n default?: Number64;\n}\n\nexport interface IFieldString {\n type: \"string\";\n id: string;\n default?: string;\n}\n\nexport interface IFieldRange {\n type: \"range\";\n id: string;\n default?: Range;\n}\n\nexport interface IFieldDataset {\n type: \"dataset\";\n id: string;\n default?: Dataset;\n children: IField[];\n}\n\nexport interface IFieldSet {\n type: \"set\";\n id: string;\n default?: Array<string | number>;\n fieldType: \"string\" | \"number\";\n}\n\nexport interface IFieldObject {\n type: \"object\";\n id: string;\n default?: object;\n fields: { [key: string]: IField };\n}\n\nexport type IField = IFieldBoolean | IFieldNumber | IFieldNumber64 | IFieldString | IFieldRange | IFieldDataset | IFieldSet | IFieldObject;\n\n// Datasources ==============================================================\nexport type IDatasourceType = \"wuresult\" | \"logicalfile\" | \"roxie\" | \"hipie\" | \"rest\" | \"form\" | \"databomb\";\nexport type DatasourceType = IWUResult | ILogicalFile | IRoxieService | IHipieService | IRestService | IForm | IDatabomb;\n\nexport interface IDatasource {\n type: IDatasourceType;\n id: string;\n}\n\nexport interface IService extends IDatasource {\n url: string;\n}\n\nexport interface IOutput {\n fields: IField[];\n}\n\nexport type OutputDict = { [key: string]: IOutput };\n\nexport interface IWUResult extends IService {\n type: \"wuresult\";\n wuid: string;\n outputs: OutputDict;\n}\n\nexport interface ILogicalFile extends IService {\n type: \"logicalfile\";\n logicalFile: string;\n fields: IField[];\n}\n\nexport interface IRoxieService extends IService {\n type: \"roxie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IHipieService extends IService {\n type: \"hipie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IRestService extends IService {\n type: \"rest\";\n action: string;\n mode?: \"get\" | \"post\";\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IForm extends IDatasource {\n type: \"form\";\n fields: IField[];\n}\n\nexport type IDatabombFormat = \"csv\" | \"tsv\" | \"json\";\nexport interface IDatabomb extends IDatasource {\n type: \"databomb\";\n fields: IField[];\n format: IDatabombFormat;\n payload?: string;\n}\n\n// IDatasorceRef ---\nexport interface IDatasourceBaseRef {\n id: string;\n}\n\nexport interface IDatabombRef extends IDatasourceBaseRef {\n}\n\nexport interface IWUResultRef extends IDatasourceBaseRef {\n output: string;\n}\n\nexport interface IRestResultRef extends IDatasourceBaseRef {\n responseField: string;\n}\n\nexport interface IHipieSqlRef extends IDatasourceBaseRef {\n}\n\nexport interface IRequestField {\n localFieldID: string;\n source: string;\n remoteFieldID: string;\n value: string;\n}\n\nexport interface IRoxieServiceRef extends IDatasourceBaseRef {\n request: IRequestField[];\n output: string;\n}\n\nexport type IDatasourceRef = IDatabombRef | IWUResultRef | IRoxieServiceRef | IHipieSqlRef;\n\nexport function isDatabombRef(ref: IDatasourceRef): ref is IDatabombRef {\n return !isWUResultRef(ref) && !isRoxieServiceRef(ref);\n}\n\nexport function isWUResultRef(ref: IDatasourceRef): ref is IWUResultRef {\n return (ref as IWUResultRef).output !== undefined && !isRoxieServiceRef(ref);\n}\n\nexport function isRoxieServiceRef(ref: IDatasourceRef): ref is IRoxieServiceRef {\n return (ref as IRoxieServiceRef).request !== undefined;\n}\n\n// Activities ===============================================================\nexport type IActivityType = \"filter\" | \"project\" | \"groupby\" | \"sort\" | \"limit\" | \"mappings\";\nexport type ActivityType = IFilter | IProject | IGroupBy | ISort | ILimit | IMappings;\n\nexport interface IActivity {\n type: IActivityType;\n}\n\n// Filter ===================================================================\nexport type IMappingConditionType = \"==\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"range\" | \"in\";\nexport interface IMapping {\n remoteFieldID: string;\n localFieldID: string;\n condition: IMappingConditionType;\n nullable: boolean;\n}\n\nexport interface IFilterCondition {\n viewID: string;\n mappings: IMapping[];\n}\n\nexport interface IFilterStaticCondition {\n localFieldID: string;\n condition: IMappingConditionType;\n value: string | number;\n}\n\nexport type FilterCondition = IFilterCondition | IFilterStaticCondition;\nexport function isIFilterCondition(fc: FilterCondition): fc is IFilterCondition {\n return !!(fc as IFilterCondition).viewID;\n}\n\nexport interface IFilter extends IActivity {\n type: \"filter\";\n conditions: FilterCondition[];\n}\nexport function isFilterActivity(activity: IActivity): activity is IFilter {\n return activity.type === \"filter\";\n}\n\n// Project ==================================================================\nexport interface IEquals {\n fieldID: string;\n type: \"=\";\n sourceFieldID: string;\n transformations?: MultiTransformationType[];\n}\nexport type ICalculatedType = \"+\" | \"-\" | \"*\" | \"/\";\nexport interface ICalculated {\n fieldID: string;\n type: ICalculatedType;\n sourceFieldID1: string;\n sourceFieldID2: string;\n}\n\nexport interface IScale {\n fieldID: string;\n type: \"scale\";\n sourceFieldID: string;\n factor: number;\n}\n\nexport interface ITemplate {\n fieldID: string;\n type: \"template\";\n template: string;\n}\n\nexport interface IMapMapping {\n value: any;\n newValue: any;\n}\n\nexport interface IMap {\n fieldID: string;\n type: \"map\";\n sourceFieldID: string;\n default: any;\n mappings: IMapMapping[];\n}\n\nexport type MultiTransformationType = IEquals | ICalculated | IScale | ITemplate | IMap;\nexport interface IMulti {\n fieldID: string;\n type: \"multi\";\n transformations: MultiTransformationType[];\n}\n\nexport type ProjectTransformationType = MultiTransformationType | IMulti;\nexport interface IProject extends IActivity {\n type: \"project\";\n transformations: ProjectTransformationType[];\n}\nexport function isProjectActivity(activity: IActivity): activity is IProject {\n return activity.type === \"project\";\n}\nexport interface IMappings extends IActivity {\n type: \"mappings\";\n transformations: ProjectTransformationType[];\n}\nexport function isMappingsActivity(activity: IActivity): activity is IMappings {\n return activity.type === \"mappings\";\n}\n// GroupBy ==================================================================\nexport type IAggregateType = \"min\" | \"max\" | \"sum\" | \"mean\" | \"variance\" | \"deviation\";\nexport interface IAggregate {\n fieldID: string;\n type: IAggregateType;\n inFieldID: string;\n baseCountFieldID?: string;\n}\n\nexport interface ICount {\n fieldID: string;\n type: \"count\";\n}\n\nexport type AggregateType = IAggregate | ICount;\n\nexport interface IGroupBy extends IActivity {\n type: \"groupby\";\n groupByIDs: string[];\n aggregates: AggregateType[];\n}\nexport function isGroupByActivity(activity: IActivity): activity is IGroupBy {\n return activity.type === \"groupby\";\n}\n\n// Sort =====================================================================\nexport interface ISortCondition {\n fieldID: string;\n descending: boolean;\n}\n\nexport interface ISort extends IActivity {\n type: \"sort\";\n conditions: ISortCondition[];\n}\nexport function isSortActivity(activity: IActivity): activity is ISort {\n return activity.type === \"sort\";\n}\n\n// Limit ====================================================================\nexport interface ILimit extends IActivity {\n type: \"limit\";\n limit: number;\n}\nexport function isLimitActivity(activity: IActivity): activity is ILimit {\n return activity.type === \"limit\";\n}\n\n// Visualization ============================================================\nexport interface IWidgetProperties {\n __class: string;\n [propID: string]: string | string[] | number | boolean | undefined | IWidgetProperties | IWidgetProperties[];\n}\n\nexport interface IWidget {\n id: string;\n chartType: string;\n __class: string;\n properties: IWidgetProperties;\n}\n\nexport type VisibilityType = \"normal\" | \"flyout\";\nexport const VisibilitySet: VisibilityType[] = [\"normal\", \"flyout\"];\n\nexport interface IVisualization extends IWidget {\n title: string;\n description?: string;\n visibility: VisibilityType;\n mappings: IMappings;\n secondaryDataviewID?: string;\n}\n\n// View =====================================================================\nexport interface IView {\n id: string;\n datasource: IDatasourceRef;\n activities: ActivityType[];\n visualization: IVisualization;\n}\n\n// DDL ======================================================================\nexport interface IProperties {\n [propID: string]: any;\n}\n\nexport interface Schema {\n version: \"2.2.1\";\n createdBy: {\n name: string;\n version: string;\n };\n datasources: DatasourceType[];\n dataviews: IView[];\n properties?: IProperties;\n hipieProperties?: IProperties;\n\n // The following defs are only provided to assist the Java code generation (from the the generated schema) ---\n defs?: {\n fieldTypes: {\n number64: Number64;\n range: Range;\n dataset: Dataset;\n fieldType: IFieldType;\n fieldBoolean: IFieldBoolean;\n fieldNumber: IFieldNumber;\n fieldNumber64: IFieldNumber64\n fieldString: IFieldString;\n fieldRange: IFieldRange;\n fieldDataset: IFieldDataset;\n fieldSet: IFieldSet;\n fieldObject: IFieldObject;\n field: IField;\n };\n datasourceTypes: {\n datasource: IDatasource;\n logicalFile: ILogicalFile;\n form: IForm;\n databomb: IDatabomb;\n wuresult: IWUResult;\n hipieService: IHipieService;\n roxieService: IRoxieService;\n };\n datasourceRefTypes: {\n wuResultRef: IWUResultRef;\n roxieServiceRef: IRoxieServiceRef;\n };\n activityTypes: {\n filter: IFilter;\n project: IProject;\n groupby: IGroupBy;\n sort: ISort;\n limit: ILimit;\n mappings: IMappings;\n };\n aggregateTypes: {\n aggregate: IAggregate;\n count: ICount;\n };\n transformationTypes: {\n equals: IEquals;\n calculated: ICalculated;\n scale: IScale;\n template: ITemplate;\n map: IMap;\n multi: IMulti;\n };\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import * as DDL2 from \"./ddl/v2\";\n\nconst classMappings: any = {\n c3chart_Bar: \"chart_Bar\",\n c3chart_Column: \"chart_Column\",\n c3chart_Pie: \"chart_Pie\",\n c3chart_Area: \"chart_Area\",\n c3chart_Line: \"chart_Line\",\n amchart_Bar: \"chart_Bar\",\n amchart_Column: \"chart_Column\",\n amchart_Pie: \"chart_Pie\",\n amchart_Area: \"chart_Area\",\n amchart_Line: \"chart_Line\",\n google_Bar: \"chart_Bar\",\n google_Column: \"chart_Column\",\n google_Pie: \"chart_Pie\",\n google_Area: \"chart_Area\",\n google_Line: \"chart_Line\",\n other_Table: \"dgrid_Table\"\n};\nconst propertyMappings: any = {\n xAxisLabelRotation: [\n { name: \"xAxisOverlapMode\", transform: (n: any) => \"rotate\" },\n { name: \"xAxisLabelRotation\", transform: (n: any) => n }\n ],\n tooltipLabelColor: {\n name: \"tooltipLabelColor\"\n },\n tooltipSeriesColor: {\n name: \"tooltipSeriesColor\"\n },\n tooltipValueColor: {\n name: \"tooltipValueColor\"\n },\n tooltipValueFormat: {\n name: \"tooltipValueFormat\"\n },\n timePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n smoothLines: {\n name: \"interpolate\",\n transform: (n: any) => {\n if (n === false) return \"linear\";\n return \"catmullRom\";\n }\n },\n holePercent: {\n name: \"innerRadius\"\n },\n flip: {\n name: \"orientation\",\n transform: (n: any) => n ? \"vertical\" : \"horizontal\"\n },\n bottomText: {\n name: \"xAxisTitle\"\n },\n xAxisTypeTimePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n yAxisTypeTimePattern: {\n name: \"yAxisTypeTimePattern\"\n },\n valueFormat: {\n name: \"tooltipValueFormat\"\n },\n stacked: {\n name: \"yAxisStacked\"\n },\n showYGrid: {\n name: \"yAxisGuideLines\"\n },\n showXGrid: {\n name: \"xAxisGuideLines\"\n },\n showValueLabel: {\n name: \"showValue\"\n },\n low: {\n name: \"yAxisDomainLow\"\n },\n high: {\n name: \"yAxisDomainHigh\"\n },\n fillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n areaFillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n showToolbar: {\n name: \"titleVisible\"\n },\n showCSV: {\n name: \"downloadButtonVisible\"\n }\n};\n\nfunction findKeyVal(object: any, key: any, val: any): any {\n let value;\n\n for (const k in object) {\n if (k === key && object[k] === val) {\n value = object;\n break;\n }\n if (object[k] && typeof object[k] === \"object\") {\n value = findKeyVal(object[k], key, val);\n if (value !== undefined) {\n break;\n }\n }\n }\n return value;\n}\n\nfunction apply_to_dataviews(ddl2: DDL2.Schema, dermObj: any) {\n\n ddl2.dataviews.forEach(apply_to_dataview);\n\n function apply_to_dataview(dv: any) {\n const widgetId = dv.id;\n const dermPanelObj: any = findKeyVal(dermObj, \"__id\", widgetId);\n if (dermPanelObj) {\n const dermPanelProps: any = dermPanelObj.__properties;\n const dermWidgetObj: any = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;\n const dermWidgetProps: any = dermWidgetObj.__properties;\n apply_class_mapping(dermWidgetObj);\n apply_panel_property_mapping(dermPanelProps, dermWidgetProps);\n apply_widget_property_mapping(dermPanelProps, dermWidgetProps);\n if (dv.visualization.properties.chartType) {\n dv.visualization.properties.charttype = dv.visualization.properties.chartType;\n }\n } else {\n console.warn(widgetId + \" not found in dermObj\");\n }\n\n function apply_class_mapping(dermWidgetObj: any) {\n dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);\n dv.visualization.properties.__class = \"marshaller_VizChartPanel\";\n if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};\n dv.visualization.properties.widget.__class = dv.visualization.__class;\n\n function swap_with_supported_class(_class: string): string {\n return classMappings[_class] ? classMappings[_class] : _class;\n }\n }\n function apply_panel_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dermPanelProps.title || \"\";\n dv.visualization.description = \"\";\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermPanelProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n const newPropName = propertyMappings[propName].name;\n\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);\n } else {\n dv.visualization.properties[newPropName] = dermPanelProps[propName];\n }\n\n }\n }\n if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {\n dv.visualization.properties.legendVisible = true;\n }\n }\n function apply_widget_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dv.visualization.title || dermWidgetProps.title || \"\";\n dv.visualization.description = \"\"; // TODO - should this map to anything?\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermWidgetProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n if (propertyMappings[propName] instanceof Array) {\n propertyMappings[propName].forEach((p: any) => {\n const newPropName = p.name;\n dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n } else {\n dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];\n }\n });\n } else {\n const newPropName = propertyMappings[propName].name;\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n }\n }\n }\n }\n }\n}\n\ntype CellPosition = {\n id: string;\n position: [number, number, number, number];\n};\n\ntype DDLProperties = {\n layout: CellPosition[]\n};\n\nfunction apply_to_properties_layout(ddl2: DDL2.Schema, dermObj: any) {\n const retVal: DDLProperties = {\n layout: []\n };\n if (!dermObj || !dermObj.__properties) return;\n dermObj.__properties.content.forEach((cell: any) => {\n const cellPosition: CellPosition = {\n // TODO - if \"id\" could be avoided then layouts could apply to any dashboard with the same number of widgets\n id: cell.__properties.widget.__id,\n position: [\n cell.__properties.gridCol,\n cell.__properties.gridRow,\n cell.__properties.gridColSpan,\n cell.__properties.gridRowSpan\n ]\n };\n retVal.layout.push(cellPosition);\n });\n return retVal;\n}\n\nexport function upgrade(ddl2: DDL2.Schema, dermObj: any) {\n apply_to_dataviews(ddl2, dermObj);\n return apply_to_properties_layout(ddl2, dermObj);\n}\n","import { PKG_NAME, PKG_VERSION } from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nimport { upgrade as dermatologyUpgrade } from \"./dermatology\";\n\ninterface IDatasourceOutput {\n datasource: DDL1.IAnyDatasource;\n output: DDL1.IOutput;\n}\n\ninterface IDatasourceOutputFilter extends IDatasourceOutput {\n filter: DDL1.IFilter;\n}\n\nconst UPGRADE_HEX_CHAR: boolean = false;\nfunction faCharFix(faChar: any): string | undefined {\n if (UPGRADE_HEX_CHAR && typeof faChar === \"string\") {\n return String.fromCharCode(parseInt(faChar));\n }\n return faChar;\n}\n\nclass DDLUpgrade {\n _ddl: DDL1.IDDL;\n _baseUrl: string;\n _wuid?: string;\n _toLowerCase: boolean;\n\n _datasources: { [id: string]: DDL1.IAnyDatasource } = {};\n _datasourceUpdates: { [id: string]: { id: string, output?: string } } = {};\n _visualizations: { [id: string]: DDL1.IAnyVisualization } = {};\n\n _ddl2Datasources: { [id: string]: DDL2.DatasourceType } = {};\n _ddl2DatasourceFields: { [dsid: string]: { [outputID: string]: { [fieldID: string]: DDL2.IField } } } = {};\n\n _ddl2Dataviews: { [id: string]: DDL2.IView } = {};\n _ddl2DataviewActivities: {\n [viewID: string]: {\n project: DDL2.IProject,\n filters: DDL2.IFilter,\n sort: DDL2.ISort,\n groupBy: DDL2.IGroupBy,\n limit: DDL2.ILimit,\n mappings: DDL2.IMappings\n }\n } = {};\n\n constructor(ddl: DDL1.IDDL, baseUrl: string = \"http://localhost:8010\", wuid: string = \"WUID\", toLowerCase = true) {\n this._ddl = ddl;\n this._baseUrl = baseUrl;\n this._wuid = wuid;\n this._toLowerCase = toLowerCase;\n\n this.indexDDL();\n this.readDDL();\n }\n\n toLowerCase(s: string): string {\n return this._toLowerCase ? s.toLowerCase() : s;\n }\n\n isVizDatasourceRoxie(viz: DDL1.IAnyVisualization): boolean {\n if ((viz as any).source) {\n const ds = this._datasources[(viz as any).source.id];\n if (DDL1.isHipieDatasource(ds)) {\n return true;\n }\n }\n return false;\n }\n\n getDatasourceOutputs(dsID: string, vizID: string): IDatasourceOutput[] {\n const retVal: IDatasourceOutput[] = [];\n const datasource = this._datasources[dsID];\n for (const output of datasource.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n if (notify === vizID) {\n retVal.push({\n datasource,\n output\n });\n }\n }\n }\n }\n return retVal;\n }\n\n getDatasourceFilters(dsID: string, vizID: string): { [id: string]: IDatasourceOutputFilter } {\n const retVal: { [id: string]: IDatasourceOutputFilter } = {};\n for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {\n if (dsOut.output.filter) {\n for (const filter of dsOut.output.filter) {\n retVal[filter.fieldid] = {\n datasource: dsOut.datasource,\n output: dsOut.output,\n filter\n };\n }\n }\n }\n return retVal;\n }\n\n indexDDL() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n this._visualizations[viz.id] = viz;\n }\n }\n\n for (const ds of this._ddl.datasources) {\n this._datasources[ds.id] = ds;\n for (const output of ds.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n this._datasourceUpdates[notify] = {\n id: ds.id,\n output: output.from || output.id\n };\n }\n }\n }\n }\n }\n\n readDDL() {\n for (const ds of this._ddl.datasources) {\n if (DDL1.isWorkunitDatasource(ds)) {\n const ddl2DS: DDL2.IWUResult = {\n type: \"wuresult\",\n id: ds.id,\n url: this._baseUrl,\n wuid: this._wuid!,\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n } else if (DDL1.isDatabombDatasource(ds)) {\n } else {\n const urlParts = ds.URL!.split(\"/WsEcl/submit/query/\");\n const hostParts = urlParts[0];\n const roxieParts = urlParts[1].split(\"/\");\n const ddl2DS: DDL2.IHipieService = {\n type: \"hipie\",\n id: ds.id,\n url: hostParts,\n querySet: roxieParts[0],\n queryID: roxieParts[1],\n inputs: [],\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n }\n }\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.type === \"FORM\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n } else if (viz.type === \"SLIDER\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields, true)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n }\n\n this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);\n }\n }\n\n this.readGroupBy();\n this.readFilters();\n this.readSort();\n this.readMappings();\n }\n\n readGroupBy() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.fields) {\n const projectTransformations: DDL2.ProjectTransformationType[] = [];\n const groupByColumns: string[] = [];\n const aggrFields: DDL2.IAggregate[] = [];\n for (const field of viz.fields) {\n if (field.properties && field.properties.function) {\n switch (field.properties.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"AVE\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n baseCountFieldID: field.properties.params!.param2 ? this.toLowerCase(field.properties.params!.param2) : undefined,\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"SCALE\":\n if (typeof field.properties.params!.param1 === \"object\") {\n const props: any = field.properties.params!.param1;\n switch (props.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(props.function),\n inFieldID: this.toLowerCase(props.params.param1),\n fieldID: this.toLowerCase(field.id)\n });\n break;\n }\n }\n projectTransformations.push({\n type: \"scale\",\n sourceFieldID: this.toLowerCase(field.id),\n fieldID: this.toLowerCase(field.id),\n factor: +field.properties.params!.param2\n });\n break;\n default:\n groupByColumns.push(this.toLowerCase(field.id));\n throw new Error(`Unhandled field function: ${field.properties.function}`);\n }\n } else {\n groupByColumns.push(this.toLowerCase(field.id));\n }\n }\n if (projectTransformations.length) {\n this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;\n }\n if (aggrFields.length) {\n this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];\n this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;\n }\n }\n }\n }\n }\n\n func2aggr(func: DDL1.VisualizationFieldFuncitonType): DDL2.IAggregateType {\n switch (func) {\n case \"SUM\":\n return \"sum\";\n case \"AVE\":\n return \"mean\";\n case \"MIN\":\n return \"min\";\n case \"MAX\":\n return \"max\";\n }\n throw new Error(`Unknown DDL1 Function Type: ${func}`);\n }\n\n readMappings() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (DDL1.isFormVisualization(viz)) {\n } else if (DDL1.isPieVisualization(viz)) {\n this.readPieMappings(viz);\n } else if (DDL1.isChoroVisualization(viz)) {\n this.readChoroMappings(viz);\n } else if (DDL1.isLineVisualization(viz)) {\n this.readLineMappings(viz);\n } else if (DDL1.isTableVisualization(viz)) {\n this.readTableMappings(viz);\n } else if (DDL1.isGraphVisualization(viz)) {\n this.readGraphMappings(viz);\n } else if (DDL1.isSliderVisualization(viz)) {\n this.readSliderMappings(viz);\n } else {\n throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);\n }\n }\n }\n }\n\n readPieMappings(viz: DDL1.IPieVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n readChoroMappings(viz: DDL1.IChoroVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n anyChoroMapping2label(mapping: any) {\n return mapping.state || mapping.county || mapping.geohash;\n }\n\n readLineMappings(viz: DDL1.ILineVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: viz.source.mappings.x[0],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])\n });\n for (let i = 0; i < viz.source.mappings.y.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.source.mappings.y[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])\n });\n }\n }\n\n readTableMappings(viz: DDL1.ITableVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n for (let i = 0; i < viz.label.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.label[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])\n });\n }\n }\n\n readGraphEnums(valueMappings?: DDL1.IValueMappings, annotation: boolean = false): DDL2.IMapMapping[] {\n const retVal: DDL2.IMapMapping[] = [];\n if (valueMappings) {\n for (const value in valueMappings) {\n const newValue: { [key: string]: string | number | boolean | undefined } = {};\n for (const key in valueMappings[value]) {\n if (key === \"faChar\") {\n newValue[key] = faCharFix(valueMappings[value][key]);\n } else if (annotation && key.indexOf(\"icon_\") === 0) {\n console.log(\"Deprecated flag property: \" + key);\n newValue[key.split(\"icon_\")[1]] = valueMappings[value][key];\n } else {\n newValue[key] = valueMappings[value][key];\n }\n }\n // remove v1.x \"0\" annotations as they equated to \"nothing\" ---\n if (!annotation || value !== \"0\") {\n retVal.push({\n value,\n newValue\n });\n }\n }\n }\n return retVal;\n }\n\n readGraphMappings(viz: DDL1.IGraphVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.uid)\n });\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n if (viz.icon.fieldid) {\n mappings.transformations.push({\n fieldID: \"icon\",\n type: \"map\",\n sourceFieldID: this.toLowerCase(viz.icon.fieldid),\n default: { fachar: faCharFix(viz.icon.faChar) },\n mappings: this.readGraphEnums(viz.icon.valuemappings)\n });\n }\n let idx = 0;\n if (viz.flag) {\n for (const flag of viz.flag) {\n if (flag.fieldid) {\n mappings.transformations.push({\n fieldID: `annotation_${idx++}`,\n type: \"map\",\n sourceFieldID: this.toLowerCase(flag.fieldid),\n default: {},\n mappings: this.readGraphEnums(flag.valuemappings, true)\n });\n }\n }\n }\n mappings.transformations.push({\n fieldID: \"links\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.childfile),\n transformations: [{\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)\n }]\n });\n }\n\n readSliderMappings(viz: DDL1.ISliderVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n }\n\n readFilters() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.events) {\n for (const eventID in viz.events) {\n const event = viz.events[eventID];\n for (const update of event.updates) {\n const otherViz = this._ddl2Dataviews[update.visualization];\n const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);\n if (update.mappings) {\n if (DDL2.isRoxieServiceRef(otherViz.datasource)) {\n for (const key in update.mappings) {\n otherViz.datasource.request.push({\n source: viz.id,\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key])\n } as DDL2.IRequestField);\n }\n } else {\n const condition: DDL2.IFilterCondition = {\n viewID: viz.id,\n mappings: []\n };\n for (const key in update.mappings) {\n const mapping = update.mappings[key];\n const dsFilter = (mapping && dsFilters[mapping]) ? dsFilters[mapping].filter : undefined;\n if (!dsFilter) {\n console.warn(`Select Mapping \"${mapping}\" in viz \"${viz.id}\" not found in filters for \"${otherViz.id}\"`);\n } else {\n condition.mappings.push({\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key]),\n condition: this.rule2condition(dsFilter.rule),\n nullable: dsFilter.nullable\n });\n }\n }\n this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);\n }\n }\n }\n }\n }\n }\n }\n }\n\n rule2condition(_: DDL1.IFilterRule): DDL2.IMappingConditionType {\n switch (_) {\n case \"set\":\n return \"in\";\n case \"notequals\":\n return \"!=\";\n }\n return _;\n }\n\n readSort() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if ((viz as any).source) {\n if ((viz as any).source.sort) {\n const vizSort = this._ddl2DataviewActivities[viz.id].sort;\n vizSort.conditions = ((viz as any).source.sort as string[]).map(s => {\n if (s.indexOf(\"-\") === 0) {\n return {\n fieldID: this.toLowerCase(s.substr(1)),\n descending: true\n } as DDL2.ISortCondition;\n }\n return {\n fieldID: this.toLowerCase(s),\n descending: false\n } as DDL2.ISortCondition;\n });\n }\n if ((viz as any).source.first) {\n const vizLimit = this._ddl2DataviewActivities[viz.id].limit;\n vizLimit.limit = +(viz as any).source.first;\n }\n }\n }\n }\n }\n\n anyViz2view(viz: DDL1.IAnyVisualization): DDL2.IView {\n const project: DDL2.IProject = {\n type: \"project\",\n transformations: []\n };\n const filters: DDL2.IFilter = {\n type: \"filter\",\n conditions: []\n };\n const groupBy: DDL2.IGroupBy = {\n type: \"groupby\",\n groupByIDs: [],\n aggregates: []\n };\n const sort: DDL2.ISort = {\n type: \"sort\",\n conditions: []\n };\n const limit: DDL2.ILimit = {\n type: \"limit\",\n limit: 0\n };\n const mappings: DDL2.IMappings = {\n type: \"mappings\",\n transformations: []\n };\n this._ddl2DataviewActivities[viz.id] = {\n project,\n filters,\n sort,\n groupBy,\n limit,\n mappings\n };\n const datasourceRef: DDL2.IDatasourceBaseRef | DDL2.IRoxieServiceRef = this.isVizDatasourceRoxie(viz) ? {\n id: this._datasourceUpdates[viz.id].id,\n request: [],\n output: this._datasourceUpdates[viz.id].output\n } : {\n id: this._datasourceUpdates[viz.id].id,\n output: this._datasourceUpdates[viz.id].output\n };\n return {\n id: viz.id,\n datasource: datasourceRef,\n activities: [\n project,\n filters,\n sort,\n groupBy,\n limit\n ],\n visualization: {\n id: viz.id,\n title: viz.title || \"\",\n description: \"\",\n visibility: viz.properties && viz.properties.flyout === true ? \"flyout\" : \"normal\",\n ...this.type2chartType(viz.type),\n mappings,\n properties: (viz.properties || {}) as DDL2.IWidgetProperties\n }\n };\n }\n\n type2chartType(chartType: DDL1.VisualizationType): { chartType: string, __class: string } {\n switch (chartType) {\n case \"LINE\":\n return { chartType: \"Line\", __class: \"chart_Line\" };\n case \"BUBBLE\":\n return { chartType: \"Bubble\", __class: \"chart_Bubble\" };\n case \"PIE\":\n return { chartType: \"Pie\", __class: \"chart_Pie\" };\n case \"BAR\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"FORM\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"WORD_CLOUD\":\n return { chartType: \"WordCloud\", __class: \"chart_WordCloud\" };\n case \"CHORO\":\n return { chartType: \"ChoroplethStates\", __class: \"map_ChoroplethStates\" };\n case \"SUMMARY\":\n return { chartType: \"Summary\", __class: \"chart_Summary\" };\n case \"SLIDER\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"HEAT_MAP\":\n return { chartType: \"HeatMap\", __class: \"other_HeatMap\" };\n case \"2DCHART\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"GRAPH\":\n return { chartType: \"AdjacencyGraph\", __class: \"graph_AdjacencyGraph\" };\n case \"TABLE\":\n default:\n return { chartType: \"Table\", __class: \"dgrid_Table\" };\n }\n }\n\n formFields2field(fields?: DDL1.IVisualizationField[], slider: boolean = false): DDL2.IField[] {\n if (!fields) return [];\n return fields.map(field => {\n switch (field.properties.type) {\n case \"range\":\n return {\n type: \"range\",\n id: field.id,\n default: (field.properties.default ? field.properties.default as DDL2.Range : undefined)\n };\n case \"dataset\":\n return {\n type: \"dataset\",\n id: field.id,\n default: [],\n children: []\n };\n default:\n return {\n type: this.formFieldType2fieldType(field.properties.datatype, slider),\n id: field.id,\n default: field.properties.default ? field.properties.default[0] : undefined\n };\n }\n });\n }\n\n formFieldType2fieldType(fieldType: DDL1.VisualizationFieldType, slider: boolean): \"string\" | \"number\" | \"boolean\" {\n switch (fieldType) {\n case \"bool\":\n case \"boolean\":\n return \"boolean\";\n case \"integer\":\n case \"unsigned\":\n case \"float\":\n case \"double\":\n case \"real\":\n return \"number\";\n case \"string\":\n return \"string\";\n default:\n return slider ? \"number\" : \"string\";\n }\n }\n\n output2output(output: DDL1.IOutput, target: DDL2.OutputDict) {\n target[output.from || output.id] = {\n fields: this.filters2fields(output.filter)\n };\n }\n\n filters2fields(filters?: DDL1.IFilter[]): DDL2.IField[] {\n if (!filters) return [];\n return filters.filter(filter => {\n const idParts = filter.fieldid.split(\"-\");\n return idParts.length === 1 || idParts[1] === \"range\";\n }).map(filter => {\n const idParts = filter.fieldid.split(\"-\");\n const retVal: DDL2.IFieldString = {\n type: \"string\",\n id: idParts[0]\n };\n return retVal;\n });\n }\n\n getVizField(vizID: string, fieldID: string): DDL2.IField {\n return {\n type: \"string\",\n id: \"\",\n default: \"\"\n };\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const id in this._ddl2Datasources) {\n retVal.push(this._ddl2Datasources[id]);\n }\n return retVal;\n }\n\n writeDataviews(): DDL2.IView[] {\n const retVal: DDL2.IView[] = [];\n for (const id in this._ddl2Dataviews) {\n retVal.push(this._ddl2Dataviews[id]);\n }\n return retVal;\n }\n\n writeProperties(): DDL2.IProperties | undefined {\n return {\n // TODO\n };\n }\n\n write(): DDL2.Schema {\n return {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDataviews(),\n properties: this.writeProperties()\n };\n }\n}\n\nexport function upgrade(ddl: DDL1.IDDL, baseUrl?: string, wuid?: string, toLowerCase: boolean = true, dermatologyJson = {}): DDL2.Schema {\n const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);\n const retVal = ddlUp.write();\n retVal.properties = dermatologyUpgrade(retVal, dermatologyJson);\n return retVal;\n}\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n cleanUpCode: cleanUpCode,\n finalCleanUpCode: finalCleanUpCode,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nvar EMPTY_ELSE = /else\\s*{\\s*}/g\n , EMPTY_IF_NO_ELSE = /if\\s*\\([^)]+\\)\\s*\\{\\s*\\}(?!\\s*else)/g\n , EMPTY_IF_WITH_ELSE = /if\\s*\\(([^)]+)\\)\\s*\\{\\s*\\}\\s*else(?!\\s*if)/g;\nfunction cleanUpCode(out) {\n return out.replace(EMPTY_ELSE, '')\n .replace(EMPTY_IF_NO_ELSE, '')\n .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');\n}\n\n\nvar ERRORS_REGEXP = /[^v.]errors/g\n , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g\n , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g\n , RETURN_VALID = 'return errors === 0;'\n , RETURN_TRUE = 'validate.errors = null; return true;'\n , RETURN_ASYNC = /if \\(errors === 0\\) return data;\\s*else throw new ValidationError\\(vErrors\\);/\n , RETURN_DATA_ASYNC = 'return data;'\n , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g\n , REMOVE_ROOTDATA = /if \\(rootData === undefined\\) rootData = data;/;\n\nfunction finalCleanUpCode(out, async) {\n var matches = out.match(ERRORS_REGEXP);\n if (matches && matches.length == 2) {\n out = async\n ? out.replace(REMOVE_ERRORS_ASYNC, '')\n .replace(RETURN_ASYNC, RETURN_DATA_ASYNC)\n : out.replace(REMOVE_ERRORS, '')\n .replace(RETURN_VALID, RETURN_TRUE);\n }\n\n matches = out.match(ROOTDATA_REGEXP);\n if (!matches || matches.length !== 3) return out;\n return out.replace(REMOVE_ROOTDATA, '');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/' \\+ '/g, '');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [undefined];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \\'array\\'; ';\n }\n out += ' var ' + ($coerced) + ' = undefined; ';\n var $bracesCoercion = '';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($i) {\n out += ' if (' + ($coerced) + ' === undefined) { ';\n $bracesCoercion += '}';\n }\n if (it.opts.coerceTypes == 'array' && $type != 'array') {\n out += ' if (' + ($dataType) + ' == \\'array\\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } ';\n }\n if ($type == 'string') {\n out += ' if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n out = it.util.cleanUpCode(out);\n if ($top) {\n out = it.util.finalCleanUpCode(out, $async);\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d:\\d\\d)?$/i;\nvar HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: hostname,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nfunction hostname(str) {\n // https://tools.ietf.org/html/rfc1034#section-3.5\n // https://tools.ietf.org/html/rfc1123#section-2\n return str.length <= 255 && HOSTNAME.test(str);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return it.util.schemaHasRules($sch, it.RULES.all);\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n out = it.util.cleanUpCode(out);\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all);\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && it.util.schemaHasRules($thenSch, it.RULES.all),\n $elsePresent = $elseSch !== undefined && it.util.schemaHasRules($elseSch, it.RULES.all),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n out = it.util.cleanUpCode(out);\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if (it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if (it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required);\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if (it.util.schemaHasRules($sch, it.RULES.all)) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if (it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n out = it.util.cleanUpCode(out);\n return out;\n}\n","'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && it.util.schemaHasRules($propertySch, it.RULES.all))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n","'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\nvar definitionSchema = {\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","import * as _Ajv from \"ajv\";\nimport * as DDL from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\n\nconst Ajv = (_Ajv as any).default || _Ajv;\n\nexport const ddl2Schema: object = _ddl2Schema;\n\nconst options: _Ajv.Options = {\n allErrors: false,\n verbose: true,\n jsonPointers: false\n};\n\nfunction doValidate(ddl: DDL.DDLSchema | DDL2.Schema, schema: DDL.DDLSchema | DDL2.Schema) {\n const ajv: _Ajv.Ajv = new Ajv(options);\n const validate = ajv.compile(schema);\n const success = validate(ddl);\n return {\n success,\n errors: validate.errors\n };\n}\n\n/* Not needed ---\n// @ts-ignore\nimport * as ddlSchema from \"../schema/v1.json\";\n\nexport function validate(ddl: DDL.DDLSchema) {\n return doValidate(ddl, ddlSchema);\n}\n*/\n\n// @ts-ignore\nimport * as _ddl2Schema from \"../schema/v2.json\";\n\nexport function validate2(ddl: DDL2.Schema) {\n return doValidate(ddl, _ddl2Schema);\n}\n","export * from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nexport * from \"./upgrade\";\nexport * from \"./validate\";\n\nexport { DDL1, DDL2 };\n\nexport function isDDL2Schema(ref: DDL1.DDLSchema | DDL2.Schema): ref is DDL2.Schema {\n return (ref as DDL2.Schema).version !== undefined && (ref as DDL2.Schema).datasources !== undefined && (ref as DDL2.Schema).dataviews !== undefined;\n}\n"],"names":["upgrade","DDL1.isHipieDatasource","DDL1.isWorkunitDatasource","DDL1.isDatabombDatasource","DDL1.isFormVisualization","DDL1.isPieVisualization","DDL1.isChoroVisualization","DDL1.isLineVisualization","DDL1.isTableVisualization","DDL1.isGraphVisualization","DDL1.isSliderVisualization","DDL2.isRoxieServiceRef","dermatologyUpgrade","merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","ucs2length","util","toHash","require$$0","require$$1","IDENTIFIER","JSON_POINTER","RELATIVE_JSON_POINTER","SchemaObject","traverse","jsonSchemaTraverseModule","URI","require$$2","require$$3","require$$4","ValidationError","MissingRefError","validate","errorClasses","stableStringify","require$$5","compile","customRuleCode","Cache","cacheModule","formats","properties","required","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","rules","Ajv","_Ajv.default"],"mappings":"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"}
|