diff --git a/.eslintrc.js b/.eslintrc.js index 4cc01a5..dd6a3e7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,24 +8,15 @@ module.exports = { jsx: true } }, - settings: { - react: { - version: 'detect' - } - }, extends: [ - 'plugin:react/recommended', 'plugin:@typescript-eslint/recommended', 'prettier', 'prettier/@typescript-eslint' ], - plugins: ['react', 'react-hooks', '@typescript-eslint'], + plugins: ['@typescript-eslint'], rules: { '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/explicit-member-accessibility': 'off', - 'react/prop-types': 'off', - 'react-hooks/exhaustive-deps': 'warn', - 'react-hooks/rules-of-hooks': 'error' + '@typescript-eslint/explicit-member-accessibility': 'off' }, overrides: [ { diff --git a/README.md b/README.md index 764bdc2..0642223 100644 --- a/README.md +++ b/README.md @@ -139,8 +139,6 @@ This compresses it massively. - Use the interactive online tool to fetch configs and flatten - Use Webpack with `ainsley-loader` to write your config in a `.ainsley` file -- Use the Babel macro `ainsley/macro` for toolchains that don't allow Webpack - config modifications (e.g. Create React App, Next.js, Gatsby) - Write it in JavaScript and unit test it - Moving a project from CSS to `ainsley` - embed and gradually migrate - Moving a project from SASS to `ainsley` - compile, embed and gradually migrate diff --git a/dist/ac.js b/dist/ac.js index 8e04f91..615014a 100644 --- a/dist/ac.js +++ b/dist/ac.js @@ -1,3 +1,3 @@ /*! ainsley MIT @tbjgolden */ -var Ainsley=(t=>{const o=t=>{let o=[[]],r=0;for(;ro.map(o=>o.concat([t])));return o},r={addVariationToSelector:(t,o)=>o+"-"+t,addPropertyToSelector:(t,o)=>t+o.toLowerCase(),addValueToSelector:(t,o)=>t+o.toUpperCase(),abbreviateProperty:t=>[t.split("-").map(t=>t.charAt(0)).join("").toLowerCase(),t.toLowerCase()]},n=/\{[a-zA-Z0-9_-]+\}/g,e=(t,r,n)=>{var e;const l={...n};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var r;const e=u(t),c=e[0],s=e[1];0===c||1===c&&void 0===l[s]?l[s]=o[t]:2===c&&(l[s]={...null!==(r=n[s])&&void 0!==r?r:{},...o[t]})})}const s=void 0===t.children?[]:c(t.children,r,l);return o((null!==(e=t.variations)&&void 0!==e?e:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},c=(t,o,r)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,r):s(t,o):e(t,o,r)),l=(t,r,e)=>{const c=t[0],l=t[1],s=[];return l.map(t=>{var o,r;const e=null!==(o=t[0].match(n))&&void 0!==o?o:[],c=null!==(r=(""+t[1]).match(n))&&void 0!==r?r:[];e.map(t=>s.push([t,0])),c.map(t=>s.push([t,1]))}),o(s.map(t=>{const o=t[0],r=t[1],n=o.slice(1,-1);return n in e||console.log(e,n),Object.keys(e[n]).map(t=>[o,t,e[n][t],r])})).map(t=>{let o=0,n=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?r.addPropertyToSelector(t,o[1]):r.addValueToSelector(t,o[1]),c),l.map(r=>{const e=r=>{for(;o{const r=t[1],n=o.abbreviateProperty(t[0]),e=n[0],c=n[1];return Object.keys(r).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",e),t),[[c,r[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX="\\{[a-zA-Z0-9_-]+\\}",t.embed=(t,o)=>{let r=null;void 0!==o&&(r=document.querySelector("style#"+o)),null===r&&(r=document.createElement("style"),r.type="text/css",void 0!==o&&r.setAttribute("id",o),document.head.appendChild(r)),r.innerHTML=t},t.generate=(t,o={})=>{const n={...r,...o};return((t,o)=>{let r="",n=[];for(let e=0;e`${t[0]}:${t[1]}`).join(";")}}`}n=c.t}for(const t of n)t[1].startsWith("@")&&(r+="}");return r})(e(t,n,{}),n)},t})({}); +var Ainsley=(t=>{const o=t=>{let o=[[]],r=0;for(;ro.map(o=>o.concat([t])));return o},r={addVariationToSelector:(t,o)=>o+"-"+t,addPropertyToSelector:(t,o)=>t+o.toLowerCase(),addValueToSelector:(t,o)=>t+o.toUpperCase(),abbreviateProperty:t=>[t.split("-").map(t=>t.charAt(0)).join("").toLowerCase(),t.toLowerCase()]},e=/\{[a-zA-Z0-9_-]+\}/g,n=(t,r,e)=>{var n;const l={...e};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var r;const n=u(t),c=n[0],s=n[1];0===c||1===c&&void 0===l[s]?l[s]=o[t]:2===c&&(l[s]={...null!==(r=e[s])&&void 0!==r?r:{},...o[t]})})}const s=void 0===t.children?[]:c(t.children,r,l);return o((null!==(n=t.variations)&&void 0!==n?n:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},c=(t,o,r)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,r):s(t,o):n(t,o,r)),l=(t,r,n)=>{const c=t[0],l=t[1],s=[];return l.map(t=>{var o,r;const n=null!==(o=t[0].match(e))&&void 0!==o?o:[],c=null!==(r=(""+t[1]).match(e))&&void 0!==r?r:[];n.map(t=>s.push([t,0])),c.map(t=>s.push([t,1]))}),o(s.map(t=>{const o=t[0],r=t[1],e=o.slice(1,-1);return Object.keys(n[e]).map(t=>[o,t,n[e][t],r])})).map(t=>{let o=0,e=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?r.addPropertyToSelector(t,o[1]):r.addValueToSelector(t,o[1]),c),l.map(r=>{const n=r=>{for(;o{const r=t[1],e=o.abbreviateProperty(t[0]),n=e[0],c=e[1];return Object.keys(r).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",n),t),[[c,r[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX="\\{[a-zA-Z0-9_-]+\\}",t.embed=(t,o)=>{let r=null;void 0!==o&&(r=document.querySelector("style#"+o)),null===r&&(r=document.createElement("style"),r.type="text/css",void 0!==o&&r.setAttribute("id",o),document.head.appendChild(r)),r.innerHTML=t},t.generate=(t,o={})=>{const e={...r,...o};return((t,o)=>{let r="",e=[];for(let n=0;n`${t[0]}:${t[1]}`).join(";")}}`}e=c.t}for(const t of e)t[1].startsWith("@")&&(r+="}");return r})(n(t,e,{}),e)},t})({}); //# sourceMappingURL=ac.js.map \ No newline at end of file diff --git a/dist/ac.js.map b/dist/ac.js.map index e4ba208..80cf00d 100644 --- a/dist/ac.js.map +++ b/dist/ac.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"names":["combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","variationAbbreviation","s","c","base","n","r","i","_a","ainsley","ainsleyChildrenToAst","concat","ainsleyASTNode","child","declarations","propertyMatches","declaration","match","o","valueMatches","t","css","styleEl","id","length","slice","startsWith","l","$content","$variations"],"mappings":"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","sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"names":["combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","variationAbbreviation","s","c","base","n","r","i","_a","ainsley","ainsleyChildrenToAst","concat","t","flatMap","rulesListWithoutVariations","isArray","options","ainsleyRule","map","css","styleEl","id","length","slice","startsWith","l","o","$content","$variations"],"mappings":"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","sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"]} \ No newline at end of file diff --git a/dist/ainsley.client.development.js b/dist/ainsley.client.development.js index 5d7d7c4..5a7a344 100644 --- a/dist/ainsley.client.development.js +++ b/dist/ainsley.client.development.js @@ -2,7 +2,7 @@ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.Ainsley = {})); + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Ainsley = {})); }(this, (function (exports) { 'use strict'; const combinations = mods => { @@ -165,11 +165,6 @@ const iterator = iteratorAndType[0]; const location = iteratorAndType[1]; const variableName = iterator.slice(1, -1); - - if (!(variableName in variables)) { - console.log(variables, variableName); - } - return Object.keys(variables[variableName]).map(abbreviation => [iterator, abbreviation, variables[variableName][abbreviation], location]); })).map(combination => { let combinationIndex = 0; diff --git a/dist/ainsley.client.development.js.map b/dist/ainsley.client.development.js.map index c95fe0b..9d5809c 100644 --- a/dist/ainsley.client.development.js.map +++ b/dist/ainsley.client.development.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.client.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";;;;;;;UAKW;;;;;IAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ICmCD,EAAA;;;+EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;gDAaI;;;;;;;;;;;;;;;;;;sCAuBoB,CAAC;;0BAMb;;iGAG8B;;;;;;;;;;;;;IAc1C,8BAAA,oBAAA;sDAC8C,CAAA,CAAA;kCACpB,kBACxB,iCAAA;;;;4BAGc;;qCAES;;;;;oDAIK,CAAC;oCACX,SAAS;;;;IAG1B;;gEAIG;;;;;;;;;IAkBP,6BAAA,kBAAA;kCAGC;IAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;iBAUS;uBACE;;;;;;;;;;6BAYU;yBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;IACA;;;;;;;yCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;wBAIU,mGAGV,SAA6B,sBAHnB,QAAA,WAMN,mCACwB,cAAD;sBACf;;OADe,EAPjB;;;;;;;;;;;;iCAyCG,MAAA,SAAA,WAAA;;;IAMf;;IAGE,wBAAoB,0BAApB;;;;0BAac;;YASf;IACJ,2BAAA;kCAEkB,IAA0C;;;IAC3D,UAAM,wBAAkB,WAAW,CAAC,CAAD,CAAX,MAAA,gBAAA,sCAAxB;IACA,UAAM,qBAAe,iBAAiB,EAAjB,CAAoB,KAApB,gBAAA,sCAArB;IACA,IAAA,mBAAA,yCAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICpSF;UACa,KAAK,GAAG,CAAC,GAAD,IAAA;;YAEf,gBAAgB,+CAAA;;4BAEA;;;YAGlB;gBAAsB;;;;IAKzB;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"ainsley.client.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";;;;;;;UAKW;;;;;IAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ICmCD,EAAA;;;+EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;gDAaI;;;;;;;;;;;;;;;;;;sCAuBoB,CAAC;;0BAMb;;iGAG8B;;;;;;;;;;;;;IAc1C,8BAAA,oBAAA;sDAC8C,CAAA,CAAA;kCACpB,kBACxB,iCAAA;;;;4BAGc;;qCAES;;;;;oDAIK,CAAC;oCACX,SAAS;;;;IAG1B;;gEAIG;;;;;;;;;IAkBP,6BAAA,kBAAA;kCAGC;IAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;iBAUS;uBACE;;;;;;;;;;6BAYU;yBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;IACA;;;;;;;yCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;wBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;QAAA,CANc;;;;;;;;;;sBAqCR,CAAC;;;eAGJ;;;;2BAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;uBAkBtB,YAAoB;wBACrB;;mBAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChSb;UACa,KAAK,GAAG,CAAC,GAAD,IAAA;;YAEf,gBAAgB,+CAAA;;4BAEA;;;YAGlB;gBAAsB;;;;IAKzB;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/ainsley.client.mjs b/dist/ainsley.client.mjs index 4c5a139..baf7ee0 100644 --- a/dist/ainsley.client.mjs +++ b/dist/ainsley.client.mjs @@ -159,11 +159,6 @@ const ainsleyRuleToAst = (ainsleyRule, options, variables) => { const iterator = iteratorAndType[0]; const location = iteratorAndType[1]; const variableName = iterator.slice(1, -1); - - if (!(variableName in variables)) { - console.log(variables, variableName); - } - return Object.keys(variables[variableName]).map(abbreviation => [iterator, abbreviation, variables[variableName][abbreviation], location]); })).map(combination => { let combinationIndex = 0; diff --git a/dist/ainsley.client.mjs.map b/dist/ainsley.client.mjs.map index 5594b8c..02e0449 100644 --- a/dist/ainsley.client.mjs.map +++ b/dist/ainsley.client.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.client.mjs","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";MAKW;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ACmCD,EAAA;;;2EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAIU,mGAGV,SAA6B,sBAHnB,QAAA,WAMN,mCACwB,cAAD;kBACf;;GADe,EAPjB;;;;;;;;;;;;6BAyCG,MAAA,SAAA,WAAA;;;AAMf;;AAGE,wBAAoB,0BAApB;;;;sBAac;;QASf;AACJ,2BAAA;8BAEkB,IAA0C;;;AAC3D,UAAM,wBAAkB,WAAW,CAAC,CAAD,CAAX,MAAA,gBAAA,sCAAxB;AACA,UAAM,qBAAe,iBAAiB,EAAjB,CAAoB,KAApB,gBAAA,sCAArB;AACA,IAAA,mBAAA,yCAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpSF;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;"} \ No newline at end of file +{"version":3,"file":"ainsley.client.mjs","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";MAKW;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ACmCD,EAAA;;;2EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;IAAA,CANc;;;;;;;;;;kBAqCR,CAAC;;;WAGJ;;;;uBAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;mBAkBtB,YAAoB;oBACrB;;eAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChSb;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;"} \ No newline at end of file diff --git a/dist/ainsley.client.production.js b/dist/ainsley.client.production.js index 1d41a3c..2be5852 100644 --- a/dist/ainsley.client.production.js +++ b/dist/ainsley.client.production.js @@ -1,3 +1,3 @@ /*! ainsley MIT @tbjgolden */ -var Ainsley=function(t){"use strict";const o=t=>{let o=[[]],n=0;for(;no.map(o=>o.concat([t])));return o},n={addVariationToSelector:(t,o)=>o+"-"+t,addPropertyToSelector:(t,o)=>t+o.toLowerCase(),addValueToSelector:(t,o)=>t+o.toUpperCase(),abbreviateProperty:t=>[t.split("-").map(t=>t.charAt(0)).join("").toLowerCase(),t.toLowerCase()]},r=/\{[a-zA-Z0-9_-]+\}/g,e=(t,o)=>{let n="",r=[];for(let e=0;e`${t[0]}:${t[1]}`).join(";")}}`}r=c.t}for(const t of r){t[1].startsWith("@")&&(n+="}")}return n},c=(t,n,r)=>{var e;const c={...r};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var n;const e=a(t),s=e[0],i=e[1];0===s||1===s&&void 0===c[i]?c[i]=o[t]:2===s&&(c[i]={...null!==(n=r[i])&&void 0!==n?n:{},...o[t]})})}const i=void 0===t.children?[]:s(t.children,n,c);return o((null!==(e=t.variations)&&void 0!==e?e:[]).map(t=>[["",""]].concat(t))).flatMap(t=>i.map(o=>({t:[...t,...o.t],o:o.o})))},s=(t,o,n)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?i(t,o,n):l(t,o):c(t,o,n)),i=(t,n,e)=>{const c=t[0],s=t[1],i=[];return s.map(t=>{var o,n;const e=null!==(o=t[0].match(r))&&void 0!==o?o:[],c=null!==(n=(""+t[1]).match(r))&&void 0!==n?n:[];e.map(t=>i.push([t,0])),c.map(t=>i.push([t,1]))}),o(i.map(t=>{const o=t[0],n=t[1],r=o.slice(1,-1);return r in e||console.log(e,r),Object.keys(e[r]).map(t=>[o,t,e[r][t],n])})).map(t=>{let o=0,r=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?n.addPropertyToSelector(t,o[1]):n.addValueToSelector(t,o[1]),c),s.map(n=>{const e=n=>{for(;o{const n=t[1],r=o.abbreviateProperty(t[0]),e=r[0],c=r[1];return Object.keys(n).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",e),t),[[c,n[t]]]]}))},a=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=n,t.ITERATOR_REGEX="\\{[a-zA-Z0-9_-]+\\}",t.embed=(t,o)=>{let n=null;void 0!==o&&(n=document.querySelector("style#"+o)),null===n&&(n=document.createElement("style"),n.type="text/css",void 0!==o&&n.setAttribute("id",o),document.head.appendChild(n)),n.innerHTML=t},t.generate=(t,o={})=>{const r={...n,...o};return e(c(t,r,{}),r)},t}({}); +var Ainsley=function(t){"use strict";const o=t=>{let o=[[]],n=0;for(;no.map(o=>o.concat([t])));return o},n="\\{[a-zA-Z0-9_-]+\\}",r={addVariationToSelector:(t,o)=>o+"-"+t,addPropertyToSelector:(t,o)=>t+o.toLowerCase(),addValueToSelector:(t,o)=>t+o.toUpperCase(),abbreviateProperty:t=>[t.split("-").map(t=>t.charAt(0)).join("").toLowerCase(),t.toLowerCase()]},e=/\{[a-zA-Z0-9_-]+\}/g,c=(t,o)=>{let n="",r=[];for(let e=0;e`${t[0]}:${t[1]}`).join(";")}}`}r=c.t}for(const t of r){t[1].startsWith("@")&&(n+="}")}return n},s=(t,n,r)=>{var e;const c={...r};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var n;const e=u(t),s=e[0],i=e[1];0===s||1===s&&void 0===c[i]?c[i]=o[t]:2===s&&(c[i]={...null!==(n=r[i])&&void 0!==n?n:{},...o[t]})})}const s=void 0===t.children?[]:i(t.children,n,c);return o((null!==(e=t.variations)&&void 0!==e?e:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},i=(t,o,n)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,n):a(t,o):s(t,o,n)),l=(t,n,r)=>{const c=t[0],s=t[1],i=[];return s.map(t=>{var o,n;const r=null!==(o=t[0].match(e))&&void 0!==o?o:[],c=null!==(n=(""+t[1]).match(e))&&void 0!==n?n:[];r.map(t=>i.push([t,0])),c.map(t=>i.push([t,1]))}),o(i.map(t=>{const o=t[0],n=t[1],e=o.slice(1,-1);return Object.keys(r[e]).map(t=>[o,t,r[e][t],n])})).map(t=>{let o=0,r=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?n.addPropertyToSelector(t,o[1]):n.addValueToSelector(t,o[1]),c),s.map(n=>{const e=n=>{for(;o{const n=t[1],r=o.abbreviateProperty(t[0]),e=r[0],c=r[1];return Object.keys(n).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",e),t),[[c,n[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX=n,t.embed=(t,o)=>{let n=null;void 0!==o&&(n=document.querySelector("style#"+o)),null===n&&(n=document.createElement("style"),n.type="text/css",void 0!==o&&n.setAttribute("id",o),document.head.appendChild(n)),n.innerHTML=t},t.generate=(t,o={})=>{const n={...r,...o};return c(s(t,n,{}),n)},t}({}); //# sourceMappingURL=ainsley.client.production.js.map diff --git a/dist/ainsley.client.production.js.map b/dist/ainsley.client.production.js.map index 3ab25ef..096269a 100644 --- a/dist/ainsley.client.production.js.map +++ b/dist/ainsley.client.production.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.client.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","concat","ainsleyASTNode","child","declarations","propertyMatches","declaration","valueMatches","match","styleEl","id"],"mappings":";2CAKWA,sCAMTC,EAAOC,EAAIC,sDCmCZC,4KAYoBC,oCAMnBC,EAAaC,gFAoCYC,+BAMb,4JAkBkC,uBAE5CC,sDAKuBC,8DAIMC,2EAQzBC,+SAiDiB,UAKNC,OACiB,sBAAA,IAAAC,EAAAA,kCASlCC,WAEI,GACAC,yBAIUhB,sDAGV,QAA6BiB,6BAIDC,+IA2CRC,iCAsBrBC,2CAIGC,YAAkBC,EAAY,8BAC9BC,aAAe,SAAoBC,2BACzCH,+uBCnSmB,CAACZ,+BAEAgB,8GAKlBC"} \ No newline at end of file +{"version":3,"file":"ainsley.client.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","rulesListWithoutVariations","isArray","options","ainsleyRule","map","styleEl","id"],"mappings":";2CAKWA,sCAMTC,EAAOC,EAAIC,+ECmCZC,4KAYoBC,oCAMnBC,EAAaC,gFAoCYC,+BAMb,4JAkBkC,uBAE5CC,sDAKuBC,8DAIMC,2EAQzBC,+SAiDiB,UAKNC,OACiB,sBAAA,IAAAC,EAAAA,kCASlCC,WAEI,GACAC,yBAKYhB,yDAER,4BAINiB,oGA+BOC,mDAesCC,0BAkB9BC,EAAoB,wBAG1BC,ozBC/RQ,CAACZ,+BAEAa,8GAKlBC"} \ No newline at end of file diff --git a/dist/ainsley.development.js b/dist/ainsley.development.js index 6e1d8eb..feaa2a3 100644 --- a/dist/ainsley.development.js +++ b/dist/ainsley.development.js @@ -2,10 +2,12 @@ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('isomorphic-unfetch')) : typeof define === 'function' && define.amd ? define(['exports', 'isomorphic-unfetch'], factory) : - (global = global || self, factory(global.Ainsley = {}, global.fetch)); + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Ainsley = {}, global.fetch)); }(this, (function (exports, fetch) { 'use strict'; - fetch = fetch && Object.prototype.hasOwnProperty.call(fetch, 'default') ? fetch['default'] : fetch; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch); const isObject = val => !!(val !== null && typeof val === 'object' && !Array.isArray(val)); const combinations = mods => { @@ -168,11 +170,6 @@ const iterator = iteratorAndType[0]; const location = iteratorAndType[1]; const variableName = iterator.slice(1, -1); - - if (!(variableName in variables)) { - console.log(variables, variableName); - } - return Object.keys(variables[variableName]).map(abbreviation => [iterator, abbreviation, variables[variableName][abbreviation], location]); })).map(combination => { let combinationIndex = 0; @@ -363,8 +360,24 @@ property = properties[index]; if (property !== 'callee' && property !== 'caller') { descriptor = getOwnPropertyDescriptor(object, property); - descriptor.value = handleCopy(object[property], cache); - defineProperty(clone, property, descriptor); + if (descriptor) { + // Only clone the value if actually a value, not a getter / setter. + if (!descriptor.get && !descriptor.set) { + descriptor.value = handleCopy(object[property], cache); + } + try { + defineProperty(clone, property, descriptor); + } + catch (error) { + // Tee above can fail on node in edge cases, so fall back to the loose assignment. + clone[property] = descriptor.value; + } + } + else { + // In extra edge cases where the property descriptor cannot be retrived, fall back to + // the loose assignment. + clone[property] = handleCopy(object[property], cache); + } } } } @@ -505,6 +518,11 @@ }); return clone; } + // blobs + if (realm.Blob && object instanceof realm.Blob) { + clone = new Blob([object], { type: object.type }); + return clone; + } // buffers (node-only) if (realm.Buffer && realm.Buffer.isBuffer(object)) { clone = realm.Buffer.allocUnsafe @@ -579,7 +597,7 @@ } var uri_all = createCommonjsModule(function (module, exports) { - /** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ + /** @license URI.js v4.4.0 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ (function (global, factory) { factory(exports) ; }(commonjsGlobal, (function (exports) { @@ -1502,9 +1520,9 @@ return "[" + $1 + ($2 ? "%25" + $2 : "") + "]"; })); } - if (typeof components.port === "number") { + if (typeof components.port === "number" || typeof components.port === "string") { uriTokens.push(":"); - uriTokens.push(components.port.toString(10)); + uriTokens.push(String(components.port)); } return uriTokens.length ? uriTokens.join("") : undefined; } @@ -1707,8 +1725,9 @@ return components; }, serialize: function serialize(components, options) { + var secure = String(components.scheme).toLowerCase() === "https"; //normalize the default port - if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") { + if (components.port === (secure ? 443 : 80) || components.port === "") { components.port = undefined; } //normalize the empty path @@ -1729,6 +1748,57 @@ serialize: handler.serialize }; + function isSecure(wsComponents) { + return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss"; + } + //RFC 6455 + var handler$2 = { + scheme: "ws", + domainHost: true, + parse: function parse(components, options) { + var wsComponents = components; + //indicate if the secure flag is set + wsComponents.secure = isSecure(wsComponents); + //construct resouce name + wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : ''); + wsComponents.path = undefined; + wsComponents.query = undefined; + return wsComponents; + }, + serialize: function serialize(wsComponents, options) { + //normalize the default port + if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") { + wsComponents.port = undefined; + } + //ensure scheme matches secure flag + if (typeof wsComponents.secure === 'boolean') { + wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws'; + wsComponents.secure = undefined; + } + //reconstruct path from resource name + if (wsComponents.resourceName) { + var _wsComponents$resourc = wsComponents.resourceName.split('?'), + _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), + path = _wsComponents$resourc2[0], + query = _wsComponents$resourc2[1]; + + wsComponents.path = path && path !== '/' ? path : undefined; + wsComponents.query = query; + wsComponents.resourceName = undefined; + } + //forbid fragment component + wsComponents.fragment = undefined; + return wsComponents; + } + }; + + var handler$3 = { + scheme: "wss", + domainHost: handler$2.domainHost, + parse: handler$2.parse, + serialize: handler$2.serialize + }; + var O = {}; //RFC 3986 var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + ( "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" ) + "]"; @@ -1758,7 +1828,7 @@ var decStr = pctDecChars(str); return !decStr.match(UNRESERVED) ? str : decStr; } - var handler$2 = { + var handler$4 = { scheme: "mailto", parse: function parse$$1(components, options) { var mailtoComponents = components; @@ -1846,7 +1916,7 @@ var URN_PARSE = /^([^\:]+)\:(.*)/; //RFC 2141 - var handler$3 = { + var handler$5 = { scheme: "urn", parse: function parse$$1(components, options) { var matches = components.path && components.path.match(URN_PARSE); @@ -1885,7 +1955,7 @@ var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; //RFC 4122 - var handler$4 = { + var handler$6 = { scheme: "urn:uuid", parse: function parse(urnComponents, options) { var uuidComponents = urnComponents; @@ -1909,6 +1979,8 @@ SCHEMES[handler$2.scheme] = handler$2; SCHEMES[handler$3.scheme] = handler$3; SCHEMES[handler$4.scheme] = handler$4; + SCHEMES[handler$5.scheme] = handler$5; + SCHEMES[handler$6.scheme] = handler$6; exports.SCHEMES = SCHEMES; exports.pctEncChar = pctEncChar; @@ -2007,8 +2079,6 @@ ucs2length: ucs2length, varOccurences: varOccurences, varReplace: varReplace, - cleanUpCode: cleanUpCode, - finalCleanUpCode: finalCleanUpCode, schemaHasRules: schemaHasRules, schemaHasRulesExcept: schemaHasRulesExcept, schemaUnknownRules: schemaUnknownRules, @@ -2030,7 +2100,7 @@ } - function checkDataType(dataType, data, negate) { + function checkDataType(dataType, data, strictNumbers, negate) { var EQUAL = negate ? ' !== ' : ' === ' , AND = negate ? ' || ' : ' && ' , OK = negate ? '!' : '' @@ -2043,15 +2113,18 @@ NOT + 'Array.isArray(' + data + '))'; case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + NOT + '(' + data + ' % 1)' + - AND + data + EQUAL + data + ')'; + AND + data + EQUAL + data + + (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; + case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' + + (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; } } - function checkDataTypes(dataTypes, data) { + function checkDataTypes(dataTypes, data, strictNumbers) { switch (dataTypes.length) { - case 1: return checkDataType(dataTypes[0], data, true); + case 1: return checkDataType(dataTypes[0], data, strictNumbers, true); default: var code = ''; var types = toHash(dataTypes); @@ -2064,7 +2137,7 @@ } if (types.number) delete types.integer; for (var t in types) - code += (code ? ' && ' : '' ) + checkDataType(t, data, true); + code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true); return code; } @@ -2130,42 +2203,6 @@ } - var EMPTY_ELSE = /else\s*{\s*}/g - , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g - , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g; - function cleanUpCode(out) { - return out.replace(EMPTY_ELSE, '') - .replace(EMPTY_IF_NO_ELSE, '') - .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))'); - } - - - var ERRORS_REGEXP = /[^v.]errors/g - , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g - , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g - , RETURN_VALID = 'return errors === 0;' - , RETURN_TRUE = 'validate.errors = null; return true;' - , RETURN_ASYNC = /if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/ - , RETURN_DATA_ASYNC = 'return data;' - , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g - , REMOVE_ROOTDATA = /if \(rootData === undefined\) rootData = data;/; - - function finalCleanUpCode(out, async) { - var matches = out.match(ERRORS_REGEXP); - if (matches && matches.length == 2) { - out = async - ? out.replace(REMOVE_ERRORS_ASYNC, '') - .replace(RETURN_ASYNC, RETURN_DATA_ASYNC) - : out.replace(REMOVE_ERRORS, '') - .replace(RETURN_VALID, RETURN_TRUE); - } - - matches = out.match(ROOTDATA_REGEXP); - if (!matches || matches.length !== 3) return out; - return out.replace(REMOVE_ROOTDATA, ''); - } - - function schemaHasRules(schema, rules) { if (typeof schema == 'boolean') return !schema; for (var key in schema) if (rules[key]) return true; @@ -2244,7 +2281,7 @@ function joinPaths (a, b) { if (a == '""') return b; - return (a + ' + ' + b).replace(/' \+ '/g, ''); + return (a + ' + ' + b).replace(/([^\\])' \+ '/g, '$1'); } @@ -2866,47 +2903,39 @@ var $schemaPath = it.schemaPath + '.type', $errSchemaPath = it.errSchemaPath + '/type', $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { '; + out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { '; if ($coerceToTypes) { var $dataType = 'dataType' + $lvl, $coerced = 'coerced' + $lvl; - out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; '; + out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; '; if (it.opts.coerceTypes == 'array') { - out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; '; + out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } '; } - out += ' var ' + ($coerced) + ' = undefined; '; - var $bracesCoercion = ''; + out += ' if (' + ($coerced) + ' !== undefined) ; '; var arr1 = $coerceToTypes; if (arr1) { var $type, $i = -1, l1 = arr1.length - 1; while ($i < l1) { $type = arr1[$i += 1]; - if ($i) { - out += ' if (' + ($coerced) + ' === undefined) { '; - $bracesCoercion += '}'; - } - if (it.opts.coerceTypes == 'array' && $type != 'array') { - out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } '; - } if ($type == 'string') { - out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; + out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; } else if ($type == 'number' || $type == 'integer') { - out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; + out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; if ($type == 'integer') { out += ' && !(' + ($data) + ' % 1)'; } out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; } else if ($type == 'boolean') { - out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; + out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; } else if ($type == 'null') { - out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; + out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; } else if (it.opts.coerceTypes == 'array' && $type == 'array') { - out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; + out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; } } } - out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { '; + out += ' else { '; var $$outStack = $$outStack || []; $$outStack.push(out); out = ''; /* istanbul ignore else */ @@ -2946,7 +2975,7 @@ } else { out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; } - out += ' } else { '; + out += ' } if (' + ($coerced) + ' !== undefined) { '; var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; out += ' ' + ($data) + ' = ' + ($coerced) + '; '; @@ -3019,7 +3048,7 @@ $rulesGroup = arr2[i2 += 1]; if ($shouldUseGroup($rulesGroup)) { if ($rulesGroup.type) { - out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { '; + out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { '; } if (it.opts.useDefaults) { if ($rulesGroup.type == 'object' && it.schema.properties) { @@ -3187,10 +3216,6 @@ } else { out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; } - out = it.util.cleanUpCode(out); - if ($top) { - out = it.util.finalCleanUpCode(out, $async); - } function $shouldUseGroup($rulesGroup) { var rules = $rulesGroup.rules; @@ -3316,7 +3341,7 @@ + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode; - if (opts.processCode) sourceCode = opts.processCode(sourceCode); + if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); var validate$1; try { @@ -3919,7 +3944,6 @@ out += ' ' + ($closingBraces.slice(0, -1)) + ' '; } } - out = it.util.cleanUpCode(out); return out; }; @@ -3988,7 +4012,6 @@ if (it.opts.allErrors) { out += ' } '; } - out = it.util.cleanUpCode(out); } else { if ($breakOnError) { out += ' if (true) { '; @@ -4141,7 +4164,6 @@ if (it.opts.allErrors) { out += ' } '; } - out = it.util.cleanUpCode(out); return out; }; @@ -4163,6 +4185,7 @@ $propertyDeps = {}, $ownProperties = it.opts.ownProperties; for ($property in $schema) { + if ($property == '__proto__') continue; var $sch = $schema[$property]; var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; $deps[$property] = $sch; @@ -4309,7 +4332,6 @@ if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -4620,7 +4642,6 @@ if ($breakOnError) { out += ' else { '; } - out = it.util.cleanUpCode(out); } else { if ($breakOnError) { out += ' if (true) { '; @@ -4766,7 +4787,6 @@ if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -4795,6 +4815,12 @@ $op = $isMax ? '<' : '>', $notOp = $isMax ? '>' : '<', $errorKeyword = undefined; + if (!($isData || typeof $schema == 'number' || $schema === undefined)) { + throw new Error($keyword + ' must be number'); + } + if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) { + throw new Error($exclusiveKeyword + ' must be number or boolean'); + } if ($isDataExcl) { var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), $exclusive = 'exclusive' + $lvl, @@ -4945,6 +4971,9 @@ } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxItems' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -5022,6 +5051,9 @@ } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxLength' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -5104,6 +5136,9 @@ } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxProperties' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -5180,6 +5215,9 @@ } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } out += 'var division' + ($lvl) + ';if ('; if ($isData) { out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; @@ -5491,9 +5529,9 @@ $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = 'data' + $dataNxt, $dataProperties = 'dataProperties' + $lvl; - var $schemaKeys = Object.keys($schema || {}), + var $schemaKeys = Object.keys($schema || {}).filter(notProto), $pProperties = it.schema.patternProperties || {}, - $pPropertyKeys = Object.keys($pProperties), + $pPropertyKeys = Object.keys($pProperties).filter(notProto), $aProperties = it.schema.additionalProperties, $someProperties = $schemaKeys.length || $pPropertyKeys.length, $noAdditional = $aProperties === false, @@ -5503,7 +5541,13 @@ $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId; var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required); + if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { + var $requiredHash = it.util.toHash($required); + } + + function notProto(p) { + return p !== '__proto__'; + } out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; if ($ownProperties) { out += ' var ' + ($dataProperties) + ' = undefined;'; @@ -5798,7 +5842,6 @@ if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -5880,7 +5923,6 @@ if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -6180,7 +6222,7 @@ } else { out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; '; var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); - out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; '; + out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; '; if ($typeIsArray) { out += ' if (typeof item == \'string\') item = \'"\' + item; '; } @@ -6370,7 +6412,7 @@ keywords[key] = { anyOf: [ schema, - { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' } + { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } ] }; } @@ -6963,7 +7005,7 @@ var require$$2 = getCjsExportFromNamespace(jsonSchemaDraft07$1); var definition_schema = { - $id: 'https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js', + $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js', definitions: { simpleTypes: require$$2.definitions.simpleTypes }, @@ -7042,7 +7084,7 @@ metaSchema = { anyOf: [ metaSchema, - { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' } + { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } ] }; } @@ -7142,7 +7184,7 @@ } var $schema$1 = "http://json-schema.org/draft-07/schema#"; - var $id$1 = "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"; + var $id$1 = "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"; var description = "Meta-schema for $data reference (JSON Schema extension proposal)"; var type$1 = "object"; var required$1 = [ @@ -7689,7 +7731,7 @@ if (ajv$1.errors !== null && ajv$1.errors !== undefined) { // find lowest error and show that - const lowestLength = Infinity; + let lowestLength = Infinity; let lowestErrors = []; ajv$1.errors.forEach(error => { const pathLength = error.schemaPath.split('/').length; @@ -7698,6 +7740,7 @@ lowestErrors.push(formatError(error)); } else if (pathLength < lowestLength) { lowestErrors = [formatError(error)]; + lowestLength = pathLength; } }); return lowestErrors; @@ -7706,7 +7749,7 @@ } }; - const formatError = error => `Ainsley${error.dataPath}${error.message === undefined ? '' : ` ${error.message}`}`; // prettier-ignore + const formatError = error => `Ainsley${error.dataPath} is invalid`; // prettier-ignore const schema = { @@ -7843,7 +7886,7 @@ } catch (err) { try { const url = new URL(ref); - const response = await fetch(url.href); + const response = await fetch__default['default'](url.href); let body = await response.text(); try { @@ -7886,6 +7929,7 @@ /* TODOs: - mangle variable names + - if a variable is an empty object, remove all uses of it - check if strings can be turnt into numbers */ @@ -8031,7 +8075,7 @@ try { return csso.minify(rawCSS).css; } catch (error) { - if (csso && csso.minify) { + if (csso === null || csso === void 0 ? void 0 : csso.minify) { console.error(error); } else { console.warn('`csso` - an optional dependency - is not installed; inline CSS will not be minified'); diff --git a/dist/ainsley.development.js.map b/dist/ainsley.development.js.map index 2c1c993..d7d42a6 100644 --- a/dist/ainsley.development.js.map +++ b/dist/ainsley.development.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.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/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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n descriptor.value = handleCopy(object[property], cache);\n\n defineProperty(clone, property, descriptor);\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\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 = [];\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 = [];\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(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(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(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\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || 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\";\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,\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 = {\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 = {\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 = {\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 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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\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= 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= 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%\\\\^`{|}]|%[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\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n const lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath}${\n error.message === undefined ? '' : ` ${error.message}`\n }`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso && csso.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["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","http","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","mailto","urn","copy","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","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","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","_a"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // blobs\n if (realm.Blob && object instanceof realm.Blob) {\n clone = new Blob([object], { type: object.type });\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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 = [];\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 = [];\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(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(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(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,\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 = {\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 = {\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 = {\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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\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 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, strictNumbers, 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 (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, 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, strictNumbers, 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= 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= 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%\\\\^`{|}]|%[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\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 if ($property == '__proto__') continue;\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\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) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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', it.opts.strictNumbers, 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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["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","copy","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","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","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","_a"],"mappings":"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"} \ No newline at end of file diff --git a/dist/ainsley.js b/dist/ainsley.js index 8d5b25d..03efe87 100644 --- a/dist/ainsley.js +++ b/dist/ainsley.js @@ -3,29 +3,34 @@ Object.defineProperty(exports, '__esModule', { value: true }); -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } +var fetch = require('isomorphic-unfetch'); +var copy$1 = require('fast-copy'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } function _interopNamespace(e) { if (e && e.__esModule) { return e; } else { - var n = {}; + var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: function () { - return e[k]; - } - }); + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { + return e[k]; + } + }); + } }); } n['default'] = e; - return n; + return Object.freeze(n); } } -var fetch = _interopDefault(require('isomorphic-unfetch')); -var copy$1 = _interopDefault(require('fast-copy')); +var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch); +var copy__default = /*#__PURE__*/_interopDefaultLegacy(copy$1); const isObject = val => !!(val !== null && typeof val === 'object' && !Array.isArray(val)); const combinations = mods => { @@ -188,11 +193,6 @@ const ainsleyRuleToAst = (ainsleyRule, options, variables) => { const iterator = iteratorAndType[0]; const location = iteratorAndType[1]; const variableName = iterator.slice(1, -1); - - if (!(variableName in variables)) { - console.log(variables, variableName); - } - return Object.keys(variables[variableName]).map(abbreviation => [iterator, abbreviation, variables[variableName][abbreviation], location]); })).map(combination => { let combinationIndex = 0; @@ -271,7 +271,7 @@ function getCjsExportFromNamespace (n) { } var uri_all = createCommonjsModule(function (module, exports) { -/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ +/** @license URI.js v4.4.0 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ (function (global, factory) { factory(exports) ; }(commonjsGlobal, (function (exports) { @@ -1194,9 +1194,9 @@ function _recomposeAuthority(components, options) { return "[" + $1 + ($2 ? "%25" + $2 : "") + "]"; })); } - if (typeof components.port === "number") { + if (typeof components.port === "number" || typeof components.port === "string") { uriTokens.push(":"); - uriTokens.push(components.port.toString(10)); + uriTokens.push(String(components.port)); } return uriTokens.length ? uriTokens.join("") : undefined; } @@ -1399,8 +1399,9 @@ var handler = { return components; }, serialize: function serialize(components, options) { + var secure = String(components.scheme).toLowerCase() === "https"; //normalize the default port - if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") { + if (components.port === (secure ? 443 : 80) || components.port === "") { components.port = undefined; } //normalize the empty path @@ -1421,6 +1422,57 @@ var handler$1 = { serialize: handler.serialize }; +function isSecure(wsComponents) { + return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss"; +} +//RFC 6455 +var handler$2 = { + scheme: "ws", + domainHost: true, + parse: function parse(components, options) { + var wsComponents = components; + //indicate if the secure flag is set + wsComponents.secure = isSecure(wsComponents); + //construct resouce name + wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : ''); + wsComponents.path = undefined; + wsComponents.query = undefined; + return wsComponents; + }, + serialize: function serialize(wsComponents, options) { + //normalize the default port + if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") { + wsComponents.port = undefined; + } + //ensure scheme matches secure flag + if (typeof wsComponents.secure === 'boolean') { + wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws'; + wsComponents.secure = undefined; + } + //reconstruct path from resource name + if (wsComponents.resourceName) { + var _wsComponents$resourc = wsComponents.resourceName.split('?'), + _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), + path = _wsComponents$resourc2[0], + query = _wsComponents$resourc2[1]; + + wsComponents.path = path && path !== '/' ? path : undefined; + wsComponents.query = query; + wsComponents.resourceName = undefined; + } + //forbid fragment component + wsComponents.fragment = undefined; + return wsComponents; + } +}; + +var handler$3 = { + scheme: "wss", + domainHost: handler$2.domainHost, + parse: handler$2.parse, + serialize: handler$2.serialize +}; + var O = {}; //RFC 3986 var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + ( "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" ) + "]"; @@ -1450,7 +1502,7 @@ function decodeUnreserved(str) { var decStr = pctDecChars(str); return !decStr.match(UNRESERVED) ? str : decStr; } -var handler$2 = { +var handler$4 = { scheme: "mailto", parse: function parse$$1(components, options) { var mailtoComponents = components; @@ -1538,7 +1590,7 @@ var handler$2 = { var URN_PARSE = /^([^\:]+)\:(.*)/; //RFC 2141 -var handler$3 = { +var handler$5 = { scheme: "urn", parse: function parse$$1(components, options) { var matches = components.path && components.path.match(URN_PARSE); @@ -1577,7 +1629,7 @@ var handler$3 = { var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; //RFC 4122 -var handler$4 = { +var handler$6 = { scheme: "urn:uuid", parse: function parse(urnComponents, options) { var uuidComponents = urnComponents; @@ -1601,6 +1653,8 @@ SCHEMES[handler$1.scheme] = handler$1; SCHEMES[handler$2.scheme] = handler$2; SCHEMES[handler$3.scheme] = handler$3; SCHEMES[handler$4.scheme] = handler$4; +SCHEMES[handler$5.scheme] = handler$5; +SCHEMES[handler$6.scheme] = handler$6; exports.SCHEMES = SCHEMES; exports.pctEncChar = pctEncChar; @@ -1699,8 +1753,6 @@ var util = { ucs2length: ucs2length, varOccurences: varOccurences, varReplace: varReplace, - cleanUpCode: cleanUpCode, - finalCleanUpCode: finalCleanUpCode, schemaHasRules: schemaHasRules, schemaHasRulesExcept: schemaHasRulesExcept, schemaUnknownRules: schemaUnknownRules, @@ -1722,7 +1774,7 @@ function copy(o, to) { } -function checkDataType(dataType, data, negate) { +function checkDataType(dataType, data, strictNumbers, negate) { var EQUAL = negate ? ' !== ' : ' === ' , AND = negate ? ' || ' : ' && ' , OK = negate ? '!' : '' @@ -1735,15 +1787,18 @@ function checkDataType(dataType, data, negate) { NOT + 'Array.isArray(' + data + '))'; case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + NOT + '(' + data + ' % 1)' + - AND + data + EQUAL + data + ')'; + AND + data + EQUAL + data + + (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; + case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' + + (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; } } -function checkDataTypes(dataTypes, data) { +function checkDataTypes(dataTypes, data, strictNumbers) { switch (dataTypes.length) { - case 1: return checkDataType(dataTypes[0], data, true); + case 1: return checkDataType(dataTypes[0], data, strictNumbers, true); default: var code = ''; var types = toHash(dataTypes); @@ -1756,7 +1811,7 @@ function checkDataTypes(dataTypes, data) { } if (types.number) delete types.integer; for (var t in types) - code += (code ? ' && ' : '' ) + checkDataType(t, data, true); + code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true); return code; } @@ -1822,42 +1877,6 @@ function varReplace(str, dataVar, expr) { } -var EMPTY_ELSE = /else\s*{\s*}/g - , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g - , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g; -function cleanUpCode(out) { - return out.replace(EMPTY_ELSE, '') - .replace(EMPTY_IF_NO_ELSE, '') - .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))'); -} - - -var ERRORS_REGEXP = /[^v.]errors/g - , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g - , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g - , RETURN_VALID = 'return errors === 0;' - , RETURN_TRUE = 'validate.errors = null; return true;' - , RETURN_ASYNC = /if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/ - , RETURN_DATA_ASYNC = 'return data;' - , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g - , REMOVE_ROOTDATA = /if \(rootData === undefined\) rootData = data;/; - -function finalCleanUpCode(out, async) { - var matches = out.match(ERRORS_REGEXP); - if (matches && matches.length == 2) { - out = async - ? out.replace(REMOVE_ERRORS_ASYNC, '') - .replace(RETURN_ASYNC, RETURN_DATA_ASYNC) - : out.replace(REMOVE_ERRORS, '') - .replace(RETURN_VALID, RETURN_TRUE); - } - - matches = out.match(ROOTDATA_REGEXP); - if (!matches || matches.length !== 3) return out; - return out.replace(REMOVE_ROOTDATA, ''); -} - - function schemaHasRules(schema, rules) { if (typeof schema == 'boolean') return !schema; for (var key in schema) if (rules[key]) return true; @@ -1936,7 +1955,7 @@ function getData($data, lvl, paths) { function joinPaths (a, b) { if (a == '""') return b; - return (a + ' + ' + b).replace(/' \+ '/g, ''); + return (a + ' + ' + b).replace(/([^\\])' \+ '/g, '$1'); } @@ -2558,47 +2577,39 @@ var validate = function generate_validate(it, $keyword, $ruleType) { var $schemaPath = it.schemaPath + '.type', $errSchemaPath = it.errSchemaPath + '/type', $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { '; + out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { '; if ($coerceToTypes) { var $dataType = 'dataType' + $lvl, $coerced = 'coerced' + $lvl; - out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; '; + out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; '; if (it.opts.coerceTypes == 'array') { - out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; '; + out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } '; } - out += ' var ' + ($coerced) + ' = undefined; '; - var $bracesCoercion = ''; + out += ' if (' + ($coerced) + ' !== undefined) ; '; var arr1 = $coerceToTypes; if (arr1) { var $type, $i = -1, l1 = arr1.length - 1; while ($i < l1) { $type = arr1[$i += 1]; - if ($i) { - out += ' if (' + ($coerced) + ' === undefined) { '; - $bracesCoercion += '}'; - } - if (it.opts.coerceTypes == 'array' && $type != 'array') { - out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } '; - } if ($type == 'string') { - out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; + out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; } else if ($type == 'number' || $type == 'integer') { - out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; + out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; if ($type == 'integer') { out += ' && !(' + ($data) + ' % 1)'; } out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; } else if ($type == 'boolean') { - out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; + out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; } else if ($type == 'null') { - out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; + out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; } else if (it.opts.coerceTypes == 'array' && $type == 'array') { - out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; + out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; } } } - out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { '; + out += ' else { '; var $$outStack = $$outStack || []; $$outStack.push(out); out = ''; /* istanbul ignore else */ @@ -2638,7 +2649,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) { } else { out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; } - out += ' } else { '; + out += ' } if (' + ($coerced) + ' !== undefined) { '; var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; out += ' ' + ($data) + ' = ' + ($coerced) + '; '; @@ -2711,7 +2722,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) { $rulesGroup = arr2[i2 += 1]; if ($shouldUseGroup($rulesGroup)) { if ($rulesGroup.type) { - out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { '; + out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { '; } if (it.opts.useDefaults) { if ($rulesGroup.type == 'object' && it.schema.properties) { @@ -2879,10 +2890,6 @@ var validate = function generate_validate(it, $keyword, $ruleType) { } else { out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; } - out = it.util.cleanUpCode(out); - if ($top) { - out = it.util.finalCleanUpCode(out, $async); - } function $shouldUseGroup($rulesGroup) { var rules = $rulesGroup.rules; @@ -3008,7 +3015,7 @@ function compile(schema, root, localRefs, baseId) { + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode; - if (opts.processCode) sourceCode = opts.processCode(sourceCode); + if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); var validate$1; try { @@ -3611,7 +3618,6 @@ var allOf = function generate_allOf(it, $keyword, $ruleType) { out += ' ' + ($closingBraces.slice(0, -1)) + ' '; } } - out = it.util.cleanUpCode(out); return out; }; @@ -3680,7 +3686,6 @@ var anyOf = function generate_anyOf(it, $keyword, $ruleType) { if (it.opts.allErrors) { out += ' } '; } - out = it.util.cleanUpCode(out); } else { if ($breakOnError) { out += ' if (true) { '; @@ -3833,7 +3838,6 @@ var contains = function generate_contains(it, $keyword, $ruleType) { if (it.opts.allErrors) { out += ' } '; } - out = it.util.cleanUpCode(out); return out; }; @@ -3855,6 +3859,7 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) { $propertyDeps = {}, $ownProperties = it.opts.ownProperties; for ($property in $schema) { + if ($property == '__proto__') continue; var $sch = $schema[$property]; var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; $deps[$property] = $sch; @@ -4001,7 +4006,6 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -4312,7 +4316,6 @@ var _if = function generate_if(it, $keyword, $ruleType) { if ($breakOnError) { out += ' else { '; } - out = it.util.cleanUpCode(out); } else { if ($breakOnError) { out += ' if (true) { '; @@ -4458,7 +4461,6 @@ var items = function generate_items(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -4487,6 +4489,12 @@ var _limit = function generate__limit(it, $keyword, $ruleType) { $op = $isMax ? '<' : '>', $notOp = $isMax ? '>' : '<', $errorKeyword = undefined; + if (!($isData || typeof $schema == 'number' || $schema === undefined)) { + throw new Error($keyword + ' must be number'); + } + if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) { + throw new Error($exclusiveKeyword + ' must be number or boolean'); + } if ($isDataExcl) { var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), $exclusive = 'exclusive' + $lvl, @@ -4637,6 +4645,9 @@ var _limitItems = function generate__limitItems(it, $keyword, $ruleType) { } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxItems' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -4714,6 +4725,9 @@ var _limitLength = function generate__limitLength(it, $keyword, $ruleType) { } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxLength' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -4796,6 +4810,9 @@ var _limitProperties = function generate__limitProperties(it, $keyword, $ruleTyp } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxProperties' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -4872,6 +4889,9 @@ var multipleOf = function generate_multipleOf(it, $keyword, $ruleType) { } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } out += 'var division' + ($lvl) + ';if ('; if ($isData) { out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; @@ -5183,9 +5203,9 @@ var properties = function generate_properties(it, $keyword, $ruleType) { $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = 'data' + $dataNxt, $dataProperties = 'dataProperties' + $lvl; - var $schemaKeys = Object.keys($schema || {}), + var $schemaKeys = Object.keys($schema || {}).filter(notProto), $pProperties = it.schema.patternProperties || {}, - $pPropertyKeys = Object.keys($pProperties), + $pPropertyKeys = Object.keys($pProperties).filter(notProto), $aProperties = it.schema.additionalProperties, $someProperties = $schemaKeys.length || $pPropertyKeys.length, $noAdditional = $aProperties === false, @@ -5195,7 +5215,13 @@ var properties = function generate_properties(it, $keyword, $ruleType) { $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId; var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required); + if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { + var $requiredHash = it.util.toHash($required); + } + + function notProto(p) { + return p !== '__proto__'; + } out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; if ($ownProperties) { out += ' var ' + ($dataProperties) + ' = undefined;'; @@ -5490,7 +5516,6 @@ var properties = function generate_properties(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -5572,7 +5597,6 @@ var propertyNames = function generate_propertyNames(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -5872,7 +5896,7 @@ var uniqueItems = function generate_uniqueItems(it, $keyword, $ruleType) { } else { out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; '; var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); - out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; '; + out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; '; if ($typeIsArray) { out += ' if (typeof item == \'string\') item = \'"\' + item; '; } @@ -6062,7 +6086,7 @@ var data = function (metaSchema, keywordsJsonPointers) { keywords[key] = { anyOf: [ schema, - { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' } + { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } ] }; } @@ -6655,7 +6679,7 @@ var jsonSchemaDraft07$1 = /*#__PURE__*/Object.freeze({ var require$$2 = getCjsExportFromNamespace(jsonSchemaDraft07$1); var definition_schema = { - $id: 'https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js', + $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js', definitions: { simpleTypes: require$$2.definitions.simpleTypes }, @@ -6734,7 +6758,7 @@ function addKeyword(keyword, definition) { metaSchema = { anyOf: [ metaSchema, - { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' } + { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } ] }; } @@ -6834,7 +6858,7 @@ function validateKeyword(definition, throwError) { } var $schema$1 = "http://json-schema.org/draft-07/schema#"; -var $id$1 = "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"; +var $id$1 = "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"; var description = "Meta-schema for $data reference (JSON Schema extension proposal)"; var type$1 = "object"; var required$1 = [ @@ -7381,7 +7405,7 @@ const validate$2 = maybeAinsley => { if (ajv$1.errors !== null && ajv$1.errors !== undefined) { // find lowest error and show that - const lowestLength = Infinity; + let lowestLength = Infinity; let lowestErrors = []; ajv$1.errors.forEach(error => { const pathLength = error.schemaPath.split('/').length; @@ -7390,6 +7414,7 @@ const validate$2 = maybeAinsley => { lowestErrors.push(formatError(error)); } else if (pathLength < lowestLength) { lowestErrors = [formatError(error)]; + lowestLength = pathLength; } }); return lowestErrors; @@ -7398,7 +7423,7 @@ const validate$2 = maybeAinsley => { } }; -const formatError = error => `Ainsley${error.dataPath}${error.message === undefined ? '' : ` ${error.message}`}`; // prettier-ignore +const formatError = error => `Ainsley${error.dataPath} is invalid`; // prettier-ignore const schema = { @@ -7512,7 +7537,7 @@ const flatten = async (configWithPlugins, getConfig = defaultGetConfig) => { } // deep clone as we'll be mutating - const flatAinsley = copy$1(configWithPlugins); // check for configs and inject them + const flatAinsley = copy__default['default'](configWithPlugins); // check for configs and inject them if (Array.isArray(flatAinsley.children)) { await Promise.all(flatAinsley.children.map(async (child, i) => { @@ -7531,11 +7556,11 @@ const flatten = async (configWithPlugins, getConfig = defaultGetConfig) => { }; const defaultGetConfig = async ref => { try { - return (await Promise.resolve().then(function () { return _interopNamespace(require(`ainsley-config-${ref}`)); })).config; + return (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(`ainsley-config-${ref}`)); })).config; } catch (err) { try { const url = new URL(ref); - const response = await fetch(url.href); + const response = await fetch__default['default'](url.href); let body = await response.text(); try { @@ -7568,7 +7593,7 @@ var _a; let csso = (_a = globalThis) === null || _a === void 0 ? void 0 : _a.csso; if (csso === undefined) { - Promise.resolve().then(function () { return _interopNamespace(require('csso')); }).then(({ + Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('csso')); }).then(({ default: _csso }) => { csso = _csso; @@ -7578,6 +7603,7 @@ if (csso === undefined) { /* TODOs: - mangle variable names +- if a variable is an empty object, remove all uses of it - check if strings can be turnt into numbers */ @@ -7595,7 +7621,7 @@ const minify = ainsley => { } // clone and build ast list (mutates input) - const list = toAST(copy$1(ainsley), new Set()); // collapse ast from bottom up + const list = toAST(copy__default['default'](ainsley), new Set()); // collapse ast from bottom up for (let i = list.length - 1; i >= 0; i--) { const node = list[i]; // if no children @@ -7723,7 +7749,7 @@ const minifyRaw = rawCSS => { try { return csso.minify(rawCSS).css; } catch (error) { - if (csso && csso.minify) { + if (csso === null || csso === void 0 ? void 0 : csso.minify) { console.error(error); } else { console.warn('`csso` - an optional dependency - is not installed; inline CSS will not be minified'); diff --git a/dist/ainsley.js.map b/dist/ainsley.js.map index f745a4d..b83c329 100644 --- a/dist/ainsley.js.map +++ b/dist/ainsley.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.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/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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\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 = [];\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 = [];\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(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(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(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\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || 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\";\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,\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 = {\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 = {\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 = {\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 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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\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= 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= 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%\\\\^`{|}]|%[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\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n const lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath}${\n error.message === undefined ? '' : ` ${error.message}`\n }`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso && csso.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["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","http","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","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","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","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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 = [];\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 = [];\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(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(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(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,\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 = {\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 = {\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 = {\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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\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 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, strictNumbers, 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 (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, 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, strictNumbers, 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= 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= 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%\\\\^`{|}]|%[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\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 if ($property == '__proto__') continue;\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\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) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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', it.opts.strictNumbers, 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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["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","URL","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","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,QAAQ,GAAI,GAAD,eAGX,eAAe;MAEjB;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ACmCD,EAAA;;;2EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;IAAA,CANc;;;;;;;;;;kBAqCR,CAAC;;;WAGJ;;;;uBAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;mBAkBtB,YAAoB;oBACrB;;eAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChSb;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;;;;;;;;;;;;;;;;;;ACbD,SAAAA,KAAA,GAAA;sCAAyBC,IAAzB;YAAA;;;QACKA,KAAKC,MAAL,GAAc,CAAlB,EAAqB;aACf,CAAL,IAAUD,KAAK,CAAL,EAAQE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;YACMC,KAAKH,KAAKC,MAAL,GAAc,CAAzB;aACK,IAAIG,IAAI,CAAb,EAAgBA,IAAID,EAApB,EAAwB,EAAEC,CAA1B,EAA6B;iBACvBA,CAAL,IAAUJ,KAAKI,CAAL,EAAQF,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;;aAEIC,EAAL,IAAWH,KAAKG,EAAL,EAASD,KAAT,CAAe,CAAf,CAAX;eACOF,KAAKK,IAAL,CAAU,EAAV,CAAP;KAPD,MAQO;eACCL,KAAK,CAAL,CAAP;;;AAIF,SAAAM,MAAA,CAAuBC,GAAvB,EAAA;WACQ,QAAQA,GAAR,GAAc,GAArB;;AAGD,SAAAC,MAAA,CAAuBC,CAAvB,EAAA;WACQA,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;;AAGD,SAAAC,WAAA,CAA4BZ,GAA5B,EAAA;WACQA,IAAIY,WAAJ,EAAP;;AAGD,SAAAC,OAAA,CAAwBC,GAAxB,EAAA;WACQA,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;;AAID,SAAAG,MAAA,CAAuBC,MAAvB,EAAuCC,MAAvC,EAAA;QACOL,MAAMI,MAAZ;QACIC,MAAJ,EAAY;aACN,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;gBACrBC,GAAJ,IAAWD,OAAOC,GAAP,CAAX;;;WAGKN,GAAP;;;ACnCD,SAAAO,SAAA,CAA0BC,KAA1B,EAAA;QAEEC,UAAU,UADX;QAGCC,UAAU,OAHX;QAKCC,WAAWjC,MAAMgC,OAAN,EAAe,UAAf,CALZ;QAQCE,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;;mBASgB,yBAThB;QAUCE,eAAe,qCAVhB;QAWCC,aAAapC,MAAMqC,YAAN,EAAoBF,YAApB,CAXd;QAYCG,YAAYR,QAAQ,6EAAR,GAAwF,IAZrG;;iBAacA,QAAQ,mBAAR,GAA8B,IAb5C;;mBAcgB9B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,gBAAxB,EAA0CM,SAA1C,CAdhB;QAeCC,UAAUhC,OAAOwB,UAAU/B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,aAAxB,CAAV,GAAmD,GAA1D,CAfX;QAgBCQ,YAAYjC,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CAhBb;QAkBCO,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;;mBAmBgBzB,OAAOmC,qBAAqB,KAArB,GAA6BA,kBAA7B,GAAkD,KAAlD,GAA0DA,kBAA1D,GAA+E,KAA/E,GAAuFA,kBAA9F,CAnBhB;QAoBCC,OAAOpC,OAAO0B,WAAW,OAAlB,CApBR;QAqBCW,QAAQrC,OAAOA,OAAOoC,OAAO,KAAP,GAAeA,IAAtB,IAA8B,GAA9B,GAAoCE,YAA3C,CArBT;QAsBCC,gBAAgBvC,OAAmEA,OAAOoC,OAAO,KAAd,IAAuB,KAAvB,GAA+BC,KAAlG,CAtBjB;;oBAuBiBrC,OAAwD,WAAWA,OAAOoC,OAAO,KAAd,CAAX,GAAkC,KAAlC,GAA0CC,KAAlG,CAvBjB;;oBAwBiBrC,OAAOA,OAAwCoC,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAxBjB;;oBAyBiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAzBjB;;oBA0BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CA1BjB;;oBA2BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAAmEA,IAAnE,GAA0E,KAA1E,GAA2FC,KAAlG,CA3BjB;;oBA4BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FC,KAAlG,CA5BjB;;oBA6BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FA,IAAlG,CA7BjB;;oBA8BiBpC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAvD,CA9BjB;;mBA+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;QAgCCiD,UAAUhD,OAAOA,OAAOkC,eAAe,GAAf,GAAqBP,YAA5B,IAA4C,GAAnD,CAhCX;;iBAmCc3B,OAAO,SAAS0B,QAAT,GAAoB,MAApB,GAA6BjC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA7B,GAA0E,GAAjF,CAnCd;;gBAqCa5B,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,CAA5B,IAAiE,GAAxE,CArCb;QAyCCqB,SAASjD,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,UAAlC,CAA5B,CAzCV;QA4CCsB,iBAAiBlD,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CA5ClB;QAmDCuB,SAASnD,OAAOA,OAAOiD,SAAS,GAAT,GAAexD,MAAM,UAAN,EAAkB2D,UAAlB,CAAtB,IAAuD,GAA9D,CAnDV;WAmEO;oBACO,IAAIC,MAAJ,CAAW5D,MAAM,KAAN,EAAa+B,OAAb,EAAsBC,OAAtB,EAA+B,aAA/B,CAAX,EAA0D,GAA1D,CADP;sBAES,IAAI4B,MAAJ,CAAW5D,MAAM,WAAN,EAAmByC,YAAnB,EAAiCN,YAAjC,CAAX,EAA2D,GAA3D,CAFT;kBAGK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAHL;kBAIK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAJL;2BAKc,IAAIyB,MAAJ,CAAW5D,MAAM,cAAN,EAAsByC,YAAtB,EAAoCN,YAApC,CAAX,EAA8D,GAA9D,CALd;mBAMM,IAAIyB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,EAA8DwB,UAA9D,CAAX,EAAsF,GAAtF,CANN;sBAOS,IAAIC,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,CAAX,EAA0E,GAA1E,CAPT;gBAQG,IAAIyB,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2BN,YAA3B,CAAX,EAAqD,GAArD,CARH;oBASO,IAAIyB,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CATP;qBAUQ,IAAImB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BL,UAA9B,CAAX,EAAsD,GAAtD,CAVR;qBAWQ,IAAIwB,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAXR;qBAYQ,IAAI0B,MAAJ,CAAW,OAAOf,YAAP,GAAsB,IAAjC,CAZR;qBAaQ,IAAIe,MAAJ,CAAW,WAAWC,YAAX,GAA0B,GAA1B,GAAgCtD,OAAOA,OAAO,iBAAiB0B,QAAjB,GAA4B,MAAnC,IAA6C,GAA7C,GAAmDsB,OAAnD,GAA6D,GAApE,CAAhC,GAA2G,QAAtH,CAbR;KAAP;;AAiBD,mBAAe1B,UAAU,KAAV,CAAf;;ACrFA,mBAAeA,UAAU,IAAV,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;;AACA,IAAMiC,SAAS,UAAf;;;AAGA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,CAAb;AACA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,GAAb;AACA,IAAMC,cAAc,EAApB;AACA,IAAMC,WAAW,GAAjB;AACA,IAAMC,YAAY,GAAlB;;;AAGA,IAAMC,gBAAgB,OAAtB;AACA,IAAMC,gBAAgB,YAAtB;AACA,IAAMC,kBAAkB,2BAAxB;;;AAGA,IAAMC,SAAS;aACF,iDADE;cAED,gDAFC;kBAGG;CAHlB;;;AAOA,IAAMC,gBAAgBZ,OAAOC,IAA7B;AACA,IAAMY,QAAQC,KAAKD,KAAnB;AACA,IAAME,qBAAqBC,OAAOC,YAAlC;;;;;;;;;;AAUA,SAASC,OAAT,CAAeC,IAAf,EAAqB;OACd,IAAIC,UAAJ,CAAeT,OAAOQ,IAAP,CAAf,CAAN;;;;;;;;;;;AAWD,SAASE,GAAT,CAAaC,KAAb,EAAoBC,EAApB,EAAwB;KACjBC,SAAS,EAAf;KACIrF,SAASmF,MAAMnF,MAAnB;QACOA,QAAP,EAAiB;SACTA,MAAP,IAAiBoF,GAAGD,MAAMnF,MAAN,CAAH,CAAjB;;QAEMqF,MAAP;;;;;;;;;;;;;AAaD,SAASC,SAAT,CAAmBC,MAAnB,EAA2BH,EAA3B,EAA+B;KACxBI,QAAQD,OAAOzE,KAAP,CAAa,GAAb,CAAd;KACIuE,SAAS,EAAb;KACIG,MAAMxF,MAAN,GAAe,CAAnB,EAAsB;;;WAGZwF,MAAM,CAAN,IAAW,GAApB;WACSA,MAAM,CAAN,CAAT;;;UAGQD,OAAOE,OAAP,CAAelB,eAAf,EAAgC,MAAhC,CAAT;KACMmB,SAASH,OAAOzE,KAAP,CAAa,GAAb,CAAf;KACM6E,UAAUT,IAAIQ,MAAJ,EAAYN,EAAZ,EAAgBhF,IAAhB,CAAqB,GAArB,CAAhB;QACOiF,SAASM,OAAhB;;;;;;;;;;;;;;;;AAgBD,SAASC,UAAT,CAAoBL,MAApB,EAA4B;KACrBM,SAAS,EAAf;KACIC,UAAU,CAAd;KACM9F,SAASuF,OAAOvF,MAAtB;QACO8F,UAAU9F,MAAjB,EAAyB;MAClB+F,QAAQR,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;MACIC,SAAS,MAAT,IAAmBA,SAAS,MAA5B,IAAsCD,UAAU9F,MAApD,EAA4D;;OAErDiG,QAAQV,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;OACI,CAACG,QAAQ,MAAT,KAAoB,MAAxB,EAAgC;;WACxBC,IAAP,CAAY,CAAC,CAACH,QAAQ,KAAT,KAAmB,EAApB,KAA2BE,QAAQ,KAAnC,IAA4C,OAAxD;IADD,MAEO;;;WAGCC,IAAP,CAAYH,KAAZ;;;GARF,MAWO;UACCG,IAAP,CAAYH,KAAZ;;;QAGKF,MAAP;;;;;;;;;;;AAWD,IAAMM,aAAa,SAAbA,UAAa;QAAStB,OAAOuB,aAAP,iCAAwBjB,KAAxB,EAAT;CAAnB;;;;;;;;;;;AAWA,IAAMkB,eAAe,SAAfA,YAAe,CAASC,SAAT,EAAoB;KACpCA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;KAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;KAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;QAEMzC,IAAP;CAVD;;;;;;;;;;;;;AAwBA,IAAM0C,eAAe,SAAfA,YAAe,CAASC,KAAT,EAAgBC,IAAhB,EAAsB;;;QAGnCD,QAAQ,EAAR,GAAa,MAAMA,QAAQ,EAAd,CAAb,IAAkC,CAACC,QAAQ,CAAT,KAAe,CAAjD,CAAP;CAHD;;;;;;;AAWA,IAAMC,QAAQ,SAARA,KAAQ,CAASC,KAAT,EAAgBC,SAAhB,EAA2BC,SAA3B,EAAsC;KAC/CC,IAAI,CAAR;SACQD,YAAYnC,MAAMiC,QAAQ1C,IAAd,CAAZ,GAAkC0C,SAAS,CAAnD;UACSjC,MAAMiC,QAAQC,SAAd,CAAT;+BAC8BD,QAAQlC,gBAAgBV,IAAhB,IAAwB,CAA9D,EAAiE+C,KAAKjD,IAAtE,EAA4E;UACnEa,MAAMiC,QAAQlC,aAAd,CAAR;;QAEMC,MAAMoC,IAAI,CAACrC,gBAAgB,CAAjB,IAAsBkC,KAAtB,IAA+BA,QAAQ3C,IAAvC,CAAV,CAAP;CAPD;;;;;;;;;AAiBA,IAAM+C,SAAS,SAATA,MAAS,CAASC,KAAT,EAAgB;;KAExBnB,SAAS,EAAf;KACMoB,cAAcD,MAAMhH,MAA1B;KACIkH,IAAI,CAAR;KACIC,IAAIhD,QAAR;KACIiD,OAAOlD,WAAX;;;;;;KAMImD,QAAQL,MAAMM,WAAN,CAAkBlD,SAAlB,CAAZ;KACIiD,QAAQ,CAAZ,EAAe;UACN,CAAR;;;MAGI,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,KAApB,EAA2B,EAAEE,CAA7B,EAAgC;;MAE3BP,MAAMhB,UAAN,CAAiBuB,CAAjB,KAAuB,IAA3B,EAAiC;WAC1B,WAAN;;SAEMrB,IAAP,CAAYc,MAAMhB,UAAN,CAAiBuB,CAAjB,CAAZ;;;;;;MAMI,IAAIC,QAAQH,QAAQ,CAAR,GAAYA,QAAQ,CAApB,GAAwB,CAAzC,EAA4CG,QAAQP,WAApD,4BAA4F;;;;;;;MAOvFQ,OAAOP,CAAX;OACK,IAAIQ,IAAI,CAAR,EAAWZ,IAAIjD,IAApB,qBAA8CiD,KAAKjD,IAAnD,EAAyD;;OAEpD2D,SAASP,WAAb,EAA0B;YACnB,eAAN;;;OAGKT,QAAQH,aAAaW,MAAMhB,UAAN,CAAiBwB,OAAjB,CAAb,CAAd;;OAEIhB,SAAS3C,IAAT,IAAiB2C,QAAQ9B,MAAM,CAACd,SAASsD,CAAV,IAAeQ,CAArB,CAA7B,EAAsD;YAC/C,UAAN;;;QAGIlB,QAAQkB,CAAb;OACMC,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;;OAEIZ,QAAQmB,CAAZ,EAAe;;;;OAITC,aAAa/D,OAAO8D,CAA1B;OACID,IAAIhD,MAAMd,SAASgE,UAAf,CAAR,EAAoC;YAC7B,UAAN;;;QAGIA,UAAL;;;MAIKC,MAAMhC,OAAO7F,MAAP,GAAgB,CAA5B;SACO0G,MAAMQ,IAAIO,IAAV,EAAgBI,GAAhB,EAAqBJ,QAAQ,CAA7B,CAAP;;;;MAII/C,MAAMwC,IAAIW,GAAV,IAAiBjE,SAASuD,CAA9B,EAAiC;WAC1B,UAAN;;;OAGIzC,MAAMwC,IAAIW,GAAV,CAAL;OACKA,GAAL;;;SAGOC,MAAP,CAAcZ,GAAd,EAAmB,CAAnB,EAAsBC,CAAtB;;;QAIMtC,OAAOuB,aAAP,eAAwBP,MAAxB,CAAP;CAjFD;;;;;;;;;AA2FA,IAAMkC,SAAS,SAATA,MAAS,CAASf,KAAT,EAAgB;KACxBnB,SAAS,EAAf;;;SAGQD,WAAWoB,KAAX,CAAR;;;KAGIC,cAAcD,MAAMhH,MAAxB;;;KAGImH,IAAIhD,QAAR;KACIwC,QAAQ,CAAZ;KACIS,OAAOlD,WAAX;;;;;;;;uBAG2B8C,KAA3B,8HAAkC;OAAvBgB,cAAuB;;OAC7BA,iBAAe,IAAnB,EAAyB;WACjB9B,IAAP,CAAYtB,mBAAmBoD,cAAnB,CAAZ;;;;;;;;;;;;;;;;;;KAIEC,cAAcpC,OAAO7F,MAAzB;KACIkI,iBAAiBD,WAArB;;;;;;KAMIA,WAAJ,EAAiB;SACT/B,IAAP,CAAY9B,SAAZ;;;;QAIM8D,iBAAiBjB,WAAxB,EAAqC;;;;MAIhCkB,IAAIvE,MAAR;;;;;;yBAC2BoD,KAA3B,mIAAkC;QAAvBgB,YAAuB;;QAC7BA,gBAAgBb,CAAhB,IAAqBa,eAAeG,CAAxC,EAA2C;SACtCH,YAAJ;;;;;;;;;;;;;;;;;;;;;MAMII,wBAAwBF,iBAAiB,CAA/C;MACIC,IAAIhB,CAAJ,GAAQzC,MAAM,CAACd,SAAS+C,KAAV,IAAmByB,qBAAzB,CAAZ,EAA6D;WACtD,UAAN;;;WAGQ,CAACD,IAAIhB,CAAL,IAAUiB,qBAAnB;MACID,CAAJ;;;;;;;yBAE2BnB,KAA3B,mIAAkC;QAAvBgB,aAAuB;;QAC7BA,gBAAeb,CAAf,IAAoB,EAAER,KAAF,GAAU/C,MAAlC,EAA0C;aACnC,UAAN;;QAEGoE,iBAAgBb,CAApB,EAAuB;;SAElBkB,IAAI1B,KAAR;UACK,IAAIG,IAAIjD,IAAb,qBAAuCiD,KAAKjD,IAA5C,EAAkD;UAC3C8D,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;UACIiB,IAAIV,CAAR,EAAW;;;UAGLW,UAAUD,IAAIV,CAApB;UACMC,aAAa/D,OAAO8D,CAA1B;aACOzB,IAAP,CACCtB,mBAAmB2B,aAAaoB,IAAIW,UAAUV,UAA3B,EAAuC,CAAvC,CAAnB,CADD;UAGIlD,MAAM4D,UAAUV,UAAhB,CAAJ;;;YAGM1B,IAAP,CAAYtB,mBAAmB2B,aAAa8B,CAAb,EAAgB,CAAhB,CAAnB,CAAZ;YACO3B,MAAMC,KAAN,EAAayB,qBAAb,EAAoCF,kBAAkBD,WAAtD,CAAP;aACQ,CAAR;OACEC,cAAF;;;;;;;;;;;;;;;;;;IAIAvB,KAAF;IACEQ,CAAF;;QAGMtB,OAAOzF,IAAP,CAAY,EAAZ,CAAP;CArFD;;;;;;;;;;;;;AAmGA,IAAMmI,YAAY,SAAZA,SAAY,CAASvB,KAAT,EAAgB;QAC1B1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;SACjClB,cAAcmE,IAAd,CAAmBjD,MAAnB,IACJwB,OAAOxB,OAAOtF,KAAP,CAAa,CAAb,EAAgBgB,WAAhB,EAAP,CADI,GAEJsE,MAFH;EADM,CAAP;CADD;;;;;;;;;;;;;AAmBA,IAAMkD,UAAU,SAAVA,OAAU,CAASzB,KAAT,EAAgB;QACxB1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;SACjCjB,cAAckE,IAAd,CAAmBjD,MAAnB,IACJ,SAASwC,OAAOxC,MAAP,CADL,GAEJA,MAFH;EADM,CAAP;CADD;;;;;AAWA,IAAMmD,WAAW;;;;;;YAML,OANK;;;;;;;;SAcR;YACG9C,UADH;YAEGO;EAhBK;WAkBNY,MAlBM;WAmBNgB,MAnBM;YAoBLU,OApBK;cAqBHF;CArBd,CAwBA;;ACvbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,IAAaI,UAA6C,EAAnD;AAEP,SAAAC,UAAA,CAA2BC,GAA3B,EAAA;QACOC,IAAID,IAAI7C,UAAJ,CAAe,CAAf,CAAV;QACI+C,UAAJ;QAEID,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;WAEE6H,CAAP;;AAGD,SAAAC,WAAA,CAA4B1I,GAA5B,EAAA;QACK2I,SAAS,EAAb;QACI/B,IAAI,CAAR;QACMgC,KAAK5I,IAAIN,MAAf;WAEOkH,IAAIgC,EAAX,EAAe;YACRJ,IAAIK,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAV;YAEI4B,IAAI,GAAR,EAAa;sBACFjE,OAAOC,YAAP,CAAoBgE,CAApB,CAAV;iBACK,CAAL;SAFD,MAIK,IAAIA,KAAK,GAAL,IAAYA,IAAI,GAApB,EAAyB;gBACxBI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;oBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;0BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,CAAb,GAAmBO,KAAK,EAA5C,CAAV;aAFD,MAGO;0BACI/I,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;iBAEI,CAAL;SAPI,MASA,IAAI4B,KAAK,GAAT,EAAc;gBACbI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;oBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;oBACMoC,KAAKH,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;0BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,EAAb,GAAoB,CAACO,KAAK,EAAN,KAAa,CAAjC,GAAuCC,KAAK,EAAhE,CAAV;aAHD,MAIO;0BACIhJ,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;iBAEI,CAAL;SARI,MAUA;sBACM5G,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;iBACK,CAAL;;;WAIK+B,MAAP;;AAGD,SAAAM,2BAAA,CAAqCC,UAArC,EAA+DC,QAA/D,EAAA;aACAC,gBAAC,CAA0BpJ,GAA1B,EAAD;YACQqJ,SAASX,YAAY1I,GAAZ,CAAf;eACQ,CAACqJ,OAAOC,KAAP,CAAaH,SAASI,UAAtB,CAAD,GAAqCvJ,GAArC,GAA2CqJ,MAAnD;;QAGGH,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;QACnBR,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;QACnCsI,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;QAC/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;QAC/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;QAChCsI,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;WAEhCsI,UAAP;;AACA;AAED,SAAAoB,kBAAA,CAA4BtK,GAA5B,EAAA;WACQA,IAAImF,OAAJ,CAAY,SAAZ,EAAuB,IAAvB,KAAgC,GAAvC;;AAGD,SAAAoF,cAAA,CAAwBV,IAAxB,EAAqCV,QAArC,EAAA;QACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASsB,WAApB,KAAoC,EAApD;;iCACoBD,OAFrB;QAEUE,OAFV;;QAIKA,OAAJ,EAAa;eACLA,QAAQlK,KAAR,CAAc,GAAd,EAAmBoE,GAAnB,CAAuB0F,kBAAvB,EAA2CxK,IAA3C,CAAgD,GAAhD,CAAP;KADD,MAEO;eACC+J,IAAP;;;AAIF,SAAAc,cAAA,CAAwBd,IAAxB,EAAqCV,QAArC,EAAA;QACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASyB,WAApB,KAAoC,EAApD;;kCAC0BJ,OAF3B;QAEUE,OAFV;QAEmBG,IAFnB;;QAIKH,OAAJ,EAAa;oCACUA,QAAQ/J,WAAR,GAAsBH,KAAtB,CAA4B,IAA5B,EAAkCsK,OAAlC,EADV;;YACLC,IADK;YACCC,KADD;;YAENC,cAAcD,QAAQA,MAAMxK,KAAN,CAAY,GAAZ,EAAiBoE,GAAjB,CAAqB0F,kBAArB,CAAR,GAAmD,EAAvE;YACMY,aAAaH,KAAKvK,KAAL,CAAW,GAAX,EAAgBoE,GAAhB,CAAoB0F,kBAApB,CAAnB;YACMa,yBAAyBhC,SAASsB,WAAT,CAAqBvC,IAArB,CAA0BgD,WAAWA,WAAWxL,MAAX,GAAoB,CAA/B,CAA1B,CAA/B;YACM0L,aAAaD,yBAAyB,CAAzB,GAA6B,CAAhD;YACME,kBAAkBH,WAAWxL,MAAX,GAAoB0L,UAA5C;YACME,SAASvK,MAAcqK,UAAd,CAAf;aAEK,IAAIvL,IAAI,CAAb,EAAgBA,IAAIuL,UAApB,EAAgC,EAAEvL,CAAlC,EAAqC;mBAC7BA,CAAP,IAAYoL,YAAYpL,CAAZ,KAAkBqL,WAAWG,kBAAkBxL,CAA7B,CAAlB,IAAqD,EAAjE;;YAGGsL,sBAAJ,EAA4B;mBACpBC,aAAa,CAApB,IAAyBb,eAAee,OAAOF,aAAa,CAApB,CAAf,EAAuCjC,QAAvC,CAAzB;;YAGKoC,gBAAgBD,OAAOE,MAAP,CAAmD,UAACC,GAAD,EAAMC,KAAN,EAAaxE,KAAb,EAA3E;gBACO,CAACwE,KAAD,IAAUA,UAAU,GAAxB,EAA6B;oBACtBC,cAAcF,IAAIA,IAAI/L,MAAJ,GAAa,CAAjB,CAApB;oBACIiM,eAAeA,YAAYzE,KAAZ,GAAoByE,YAAYjM,MAAhC,KAA2CwH,KAA9D,EAAqE;gCACxDxH,MAAZ;iBADD,MAEO;wBACFkG,IAAJ,CAAS,EAAEsB,YAAF,EAASxH,QAAS,CAAlB,EAAT;;;mBAGK+L,GAAP;SATqB,EAUnB,EAVmB,CAAtB;YAYMG,oBAAoBL,cAAcM,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ;mBAAUA,EAAErM,MAAF,GAAWoM,EAAEpM,MAAvB;SAAnB,EAAkD,CAAlD,CAA1B;YAEIsM,gBAAJ;YACIJ,qBAAqBA,kBAAkBlM,MAAlB,GAA2B,CAApD,EAAuD;gBAChDuM,WAAWX,OAAO3L,KAAP,CAAa,CAAb,EAAgBiM,kBAAkB1E,KAAlC,CAAjB;gBACMgF,UAAUZ,OAAO3L,KAAP,CAAaiM,kBAAkB1E,KAAlB,GAA0B0E,kBAAkBlM,MAAzD,CAAhB;sBACUuM,SAASnM,IAAT,CAAc,GAAd,IAAqB,IAArB,GAA4BoM,QAAQpM,IAAR,CAAa,GAAb,CAAtC;SAHD,MAIO;sBACIwL,OAAOxL,IAAP,CAAY,GAAZ,CAAV;;YAGG+K,IAAJ,EAAU;uBACE,MAAMA,IAAjB;;eAGMmB,OAAP;KA5CD,MA6CO;eACCnC,IAAP;;;AAIF,IAAMsC,YAAY,iIAAlB;AACA,IAAMC,wBAA4C,EAAD,CAAK9C,KAAL,CAAW,OAAX,EAAqB,CAArB,MAA4BnJ,SAA7E;AAEA,SAAAkM,KAAA,CAAsBC,SAAtB,EAAA;QAAwCC,OAAxC,uEAA6D,EAA7D;;QACOrD,aAA2B,EAAjC;QACMC,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QAEIH,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;QAE9B9B,UAAU8B,UAAUhD,KAAV,CAAgB6C,SAAhB,CAAhB;QAEI3B,OAAJ,EAAa;YACR4B,qBAAJ,EAA2B;;uBAEf5C,MAAX,GAAoBgB,QAAQ,CAAR,CAApB;uBACWb,QAAX,GAAsBa,QAAQ,CAAR,CAAtB;uBACWX,IAAX,GAAkBW,QAAQ,CAAR,CAAlB;uBACWoC,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;uBACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;uBACWN,KAAX,GAAmBM,QAAQ,CAAR,CAAnB;uBACWJ,QAAX,GAAsBI,QAAQ,CAAR,CAAtB;;gBAGIqC,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;2BAChBA,IAAX,GAAkBpC,QAAQ,CAAR,CAAlB;;SAZF,MAcO;;;uBAEKhB,MAAX,GAAoBgB,QAAQ,CAAR,KAAcrK,SAAlC;uBACWwJ,QAAX,GAAuB2C,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;uBACW0J,IAAX,GAAmByC,UAAUQ,OAAV,CAAkB,IAAlB,MAA4B,CAAC,CAA7B,GAAiCtC,QAAQ,CAAR,CAAjC,GAA8CrK,SAAjE;uBACWyM,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;uBACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;uBACWN,KAAX,GAAoBoC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAAjE;uBACWiK,QAAX,GAAuBkC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;;gBAGI0M,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;2BAChBA,IAAX,GAAmBN,UAAUhD,KAAV,CAAgB,+BAAhB,IAAmDkB,QAAQ,CAAR,CAAnD,GAAgErK,SAAnF;;;YAIE+I,WAAWW,IAAf,EAAqB;;uBAETA,IAAX,GAAkBc,eAAeJ,eAAerB,WAAWW,IAA1B,EAAgCV,QAAhC,CAAf,EAA0DA,QAA1D,CAAlB;;;YAIGD,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;uBACtLwM,SAAX,GAAuB,eAAvB;SADD,MAEO,IAAIzD,WAAWM,MAAX,KAAsBrJ,SAA1B,EAAqC;uBAChCwM,SAAX,GAAuB,UAAvB;SADM,MAEA,IAAIzD,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;uBAClCwM,SAAX,GAAuB,UAAvB;SADM,MAEA;uBACKA,SAAX,GAAuB,KAAvB;;;YAIGJ,QAAQI,SAAR,IAAqBJ,QAAQI,SAAR,KAAsB,QAA3C,IAAuDJ,QAAQI,SAAR,KAAsBzD,WAAWyD,SAA5F,EAAuG;uBAC3FlI,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,kBAAkB8H,QAAQI,SAA1B,GAAsC,aAA7E;;;YAIKI,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;YAGI,CAAC4L,QAAQS,cAAT,KAA4B,CAACD,aAAD,IAAkB,CAACA,cAAcC,cAA7D,CAAJ,EAAkF;;gBAE7E9D,WAAWW,IAAX,KAAoB0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1E,CAAJ,EAA4F;;oBAEvF;+BACQpD,IAAX,GAAkBzB,SAASD,OAAT,CAAiBe,WAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,SAASM,WAAjC,EAA8Cf,WAA9C,EAA2D/H,WAA3D,EAAjB,CAAlB;iBADD,CAEE,OAAO8H,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,oEAAoEgE,CAA3G;;;;wCAI0BS,UAA5B,EAAwCwD,YAAxC;SAXD,MAYO;;wCAEsBxD,UAA5B,EAAwCC,QAAxC;;;YAIG4D,iBAAiBA,cAAcV,KAAnC,EAA0C;0BAC3BA,KAAd,CAAoBnD,UAApB,EAAgCqD,OAAhC;;KA3EF,MA6EO;mBACK9H,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,wBAAvC;;WAGMyE,UAAP;;AACA;AAED,SAAAgE,mBAAA,CAA6BhE,UAA7B,EAAuDqD,OAAvD,EAAA;QACOpD,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QACMS,YAA0B,EAAhC;QAEIjE,WAAWS,QAAX,KAAwBxJ,SAA5B,EAAuC;kBAC5ByF,IAAV,CAAesD,WAAWS,QAA1B;kBACU/D,IAAV,CAAe,GAAf;;QAGGsD,WAAWW,IAAX,KAAoB1J,SAAxB,EAAmC;;kBAExByF,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;mBAAe,MAAMD,EAAN,IAAYC,KAAK,QAAQA,EAAb,GAAkB,EAA9B,IAAoC,GAAnD;SAA1G,CAAf;;QAGG,OAAOpE,WAAW0D,IAAlB,KAA2B,QAA3B,IAAuC,OAAO1D,WAAW0D,IAAlB,KAA2B,QAAtE,EAAgF;kBACrEhH,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAerB,OAAO2E,WAAW0D,IAAlB,CAAf;;WAGMO,UAAUzN,MAAV,GAAmByN,UAAUrN,IAAV,CAAe,EAAf,CAAnB,GAAwCK,SAA/C;;AACA;AAED,IAAMoN,OAAO,UAAb;AACA,IAAMC,OAAO,aAAb;AACA,IAAMC,OAAO,eAAb;AACA,IACMC,OAAO,wBAAb;AAEA,SAAAC,iBAAA,CAAkCjH,KAAlC,EAAA;QACOnB,SAAuB,EAA7B;WAEOmB,MAAMhH,MAAb,EAAqB;YAChBgH,MAAM4C,KAAN,CAAYiE,IAAZ,CAAJ,EAAuB;oBACd7G,MAAMvB,OAAN,CAAcoI,IAAd,EAAoB,EAApB,CAAR;SADD,MAEO,IAAI7G,MAAM4C,KAAN,CAAYkE,IAAZ,CAAJ,EAAuB;oBACrB9G,MAAMvB,OAAN,CAAcqI,IAAd,EAAoB,GAApB,CAAR;SADM,MAEA,IAAI9G,MAAM4C,KAAN,CAAYmE,IAAZ,CAAJ,EAAuB;oBACrB/G,MAAMvB,OAAN,CAAcsI,IAAd,EAAoB,GAApB,CAAR;mBACOhN,GAAP;SAFM,MAGA,IAAIiG,UAAU,GAAV,IAAiBA,UAAU,IAA/B,EAAqC;oBACnC,EAAR;SADM,MAEA;gBACAkH,KAAKlH,MAAM4C,KAAN,CAAYoE,IAAZ,CAAX;gBACIE,EAAJ,EAAQ;oBACDC,IAAID,GAAG,CAAH,CAAV;wBACQlH,MAAM/G,KAAN,CAAYkO,EAAEnO,MAAd,CAAR;uBACOkG,IAAP,CAAYiI,CAAZ;aAHD,MAIO;sBACA,IAAIC,KAAJ,CAAU,kCAAV,CAAN;;;;WAKIvI,OAAOzF,IAAP,CAAY,EAAZ,CAAP;;AACA;AAED,SAAAiO,SAAA,CAA0B7E,UAA1B,EAAA;QAAoDqD,OAApD,uEAAyE,EAAzE;;QACOpD,WAAYoD,QAAQC,GAAR,GAAcC,YAAd,GAA6BC,YAA/C;QACMS,YAA0B,EAAhC;;QAGMJ,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;QAGIoM,iBAAiBA,cAAcgB,SAAnC,EAA8ChB,cAAcgB,SAAd,CAAwB7E,UAAxB,EAAoCqD,OAApC;QAE1CrD,WAAWW,IAAf,EAAqB;;YAEhBV,SAASyB,WAAT,CAAqB1C,IAArB,CAA0BgB,WAAWW,IAArC,CAAJ,EAAgD;;;;aAK3C,IAAI0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1D,EAAuE;;oBAEvE;+BACQpD,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;iBADD,CAEE,OAAOpB,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,iDAAiD,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAA1E,IAAuF,iBAAvF,GAA2G/D,CAAlJ;;;;;gCAMyBS,UAA5B,EAAwCC,QAAxC;QAEIoD,QAAQI,SAAR,KAAsB,QAAtB,IAAkCzD,WAAWM,MAAjD,EAAyD;kBAC9C5D,IAAV,CAAesD,WAAWM,MAA1B;kBACU5D,IAAV,CAAe,GAAf;;QAGKoI,YAAYd,oBAAoBhE,UAApB,EAAgCqD,OAAhC,CAAlB;QACIyB,cAAc7N,SAAlB,EAA6B;YACxBoM,QAAQI,SAAR,KAAsB,QAA1B,EAAoC;sBACzB/G,IAAV,CAAe,IAAf;;kBAGSA,IAAV,CAAeoI,SAAf;YAEI9E,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBkE,MAAhB,CAAuB,CAAvB,MAA8B,GAArD,EAA0D;sBAC/CrI,IAAV,CAAe,GAAf;;;QAIEsD,WAAWa,IAAX,KAAoB5J,SAAxB,EAAmC;YAC9B0N,IAAI3E,WAAWa,IAAnB;YAEI,CAACwC,QAAQ2B,YAAT,KAA0B,CAACnB,aAAD,IAAkB,CAACA,cAAcmB,YAA3D,CAAJ,EAA8E;gBACzEP,kBAAkBE,CAAlB,CAAJ;;YAGGG,cAAc7N,SAAlB,EAA6B;gBACxB0N,EAAE1I,OAAF,CAAU,OAAV,EAAmB,MAAnB,CAAJ,CAD4B;;kBAInBS,IAAV,CAAeiI,CAAf;;QAGG3E,WAAWgB,KAAX,KAAqB/J,SAAzB,EAAoC;kBACzByF,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAesD,WAAWgB,KAA1B;;QAGGhB,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;kBAC5ByF,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAesD,WAAWkB,QAA1B;;WAGM+C,UAAUrN,IAAV,CAAe,EAAf,CAAP,CAxED;;AAyEC;AAED,SAAAqO,iBAAA,CAAkC5K,IAAlC,EAAsD6K,QAAtD,EAAA;QAA8E7B,OAA9E,uEAAmG,EAAnG;QAAuG8B,iBAAvG;;QACOnN,SAAuB,EAA7B;QAEI,CAACmN,iBAAL,EAAwB;eAChBhC,MAAM0B,UAAUxK,IAAV,EAAgBgJ,OAAhB,CAAN,EAAgCA,OAAhC,CAAP,CADuB;mBAEZF,MAAM0B,UAAUK,QAAV,EAAoB7B,OAApB,CAAN,EAAoCA,OAApC,CAAX,CAFuB;;cAIdA,WAAW,EAArB;QAEI,CAACA,QAAQ+B,QAAT,IAAqBF,SAAS5E,MAAlC,EAA0C;eAClCA,MAAP,GAAgB4E,SAAS5E,MAAzB;;eAEOG,QAAP,GAAkByE,SAASzE,QAA3B;eACOE,IAAP,GAAcuE,SAASvE,IAAvB;eACO+C,IAAP,GAAcwB,SAASxB,IAAvB;eACO7C,IAAP,GAAc4D,kBAAkBS,SAASrE,IAAT,IAAiB,EAAnC,CAAd;eACOG,KAAP,GAAekE,SAASlE,KAAxB;KAPD,MAQO;YACFkE,SAASzE,QAAT,KAAsBxJ,SAAtB,IAAmCiO,SAASvE,IAAT,KAAkB1J,SAArD,IAAkEiO,SAASxB,IAAT,KAAkBzM,SAAxF,EAAmG;;mBAE3FwJ,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;SAND,MAOO;gBACF,CAACkE,SAASrE,IAAd,EAAoB;uBACZA,IAAP,GAAcxG,KAAKwG,IAAnB;oBACIqE,SAASlE,KAAT,KAAmB/J,SAAvB,EAAkC;2BAC1B+J,KAAP,GAAekE,SAASlE,KAAxB;iBADD,MAEO;2BACCA,KAAP,GAAe3G,KAAK2G,KAApB;;aALF,MAOO;oBACFkE,SAASrE,IAAT,CAAckE,MAAd,CAAqB,CAArB,MAA4B,GAAhC,EAAqC;2BAC7BlE,IAAP,GAAc4D,kBAAkBS,SAASrE,IAA3B,CAAd;iBADD,MAEO;wBACF,CAACxG,KAAKoG,QAAL,KAAkBxJ,SAAlB,IAA+BoD,KAAKsG,IAAL,KAAc1J,SAA7C,IAA0DoD,KAAKqJ,IAAL,KAAczM,SAAzE,KAAuF,CAACoD,KAAKwG,IAAjG,EAAuG;+BAC/FA,IAAP,GAAc,MAAMqE,SAASrE,IAA7B;qBADD,MAEO,IAAI,CAACxG,KAAKwG,IAAV,EAAgB;+BACfA,IAAP,GAAcqE,SAASrE,IAAvB;qBADM,MAEA;+BACCA,IAAP,GAAcxG,KAAKwG,IAAL,CAAUpK,KAAV,CAAgB,CAAhB,EAAmB4D,KAAKwG,IAAL,CAAU/C,WAAV,CAAsB,GAAtB,IAA6B,CAAhD,IAAqDoH,SAASrE,IAA5E;;2BAEMA,IAAP,GAAc4D,kBAAkBzM,OAAO6I,IAAzB,CAAd;;uBAEMG,KAAP,GAAekE,SAASlE,KAAxB;;;mBAGMP,QAAP,GAAkBpG,KAAKoG,QAAvB;mBACOE,IAAP,GAActG,KAAKsG,IAAnB;mBACO+C,IAAP,GAAcrJ,KAAKqJ,IAAnB;;eAEMpD,MAAP,GAAgBjG,KAAKiG,MAArB;;WAGMY,QAAP,GAAkBgE,SAAShE,QAA3B;WAEOlJ,MAAP;;AACA;AAED,SAAAqN,OAAA,CAAwBC,OAAxB,EAAwCC,WAAxC,EAA4DlC,OAA5D,EAAA;QACOmC,oBAAoBzN,OAAO,EAAEuI,QAAS,MAAX,EAAP,EAA4B+C,OAA5B,CAA1B;WACOwB,UAAUI,kBAAkB9B,MAAMmC,OAAN,EAAeE,iBAAf,CAAlB,EAAqDrC,MAAMoC,WAAN,EAAmBC,iBAAnB,CAArD,EAA4FA,iBAA5F,EAA+G,IAA/G,CAAV,EAAgIA,iBAAhI,CAAP;;AACA;AAID,SAAAC,SAAA,CAA0BC,GAA1B,EAAmCrC,OAAnC,EAAA;QACK,OAAOqC,GAAP,KAAe,QAAnB,EAA6B;cACtBb,UAAU1B,MAAMuC,GAAN,EAAWrC,OAAX,CAAV,EAA+BA,OAA/B,CAAN;KADD,MAEO,IAAItM,OAAO2O,GAAP,MAAgB,QAApB,EAA8B;cAC9BvC,MAAM0B,UAAyBa,GAAzB,EAA8BrC,OAA9B,CAAN,EAA8CA,OAA9C,CAAN;;WAGMqC,GAAP;;AACA;AAID,SAAAC,KAAA,CAAsBC,IAAtB,EAAgCC,IAAhC,EAA0CxC,OAA1C,EAAA;QACK,OAAOuC,IAAP,KAAgB,QAApB,EAA8B;eACtBf,UAAU1B,MAAMyC,IAAN,EAAYvC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;KADD,MAEO,IAAItM,OAAO6O,IAAP,MAAiB,QAArB,EAA+B;eAC9Bf,UAAyBe,IAAzB,EAA+BvC,OAA/B,CAAP;;QAGG,OAAOwC,IAAP,KAAgB,QAApB,EAA8B;eACtBhB,UAAU1B,MAAM0C,IAAN,EAAYxC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;KADD,MAEO,IAAItM,OAAO8O,IAAP,MAAiB,QAArB,EAA+B;eAC9BhB,UAAyBgB,IAAzB,EAA+BxC,OAA/B,CAAP;;WAGMuC,SAASC,IAAhB;;AACA;AAED,SAAAC,eAAA,CAAgChP,GAAhC,EAA4CuM,OAA5C,EAAA;WACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAauC,MAAxC,GAAiDxC,aAAawC,MAAtF,EAA+F3G,UAA/F,CAAd;;AACA;AAED,SAAA4G,iBAAA,CAAkClP,GAAlC,EAA8CuM,OAA9C,EAAA;WACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAajD,WAAxC,GAAsDgD,aAAahD,WAA3F,EAAyGf,WAAzG,CAAd;CACA;;ACziBD,IAAMyG,UAA2B;YACvB,MADuB;gBAGnB,IAHmB;WAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;;YAEM,CAACrD,WAAWW,IAAhB,EAAsB;uBACVpF,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,6BAAvC;;eAGMyE,UAAP;KAX+B;eAcpB,mBAAUA,UAAV,EAAoCqD,OAApC,EAAb;YACQ6C,SAAS7K,OAAO2E,WAAWM,MAAlB,EAA0B7I,WAA1B,OAA4C,OAA3D;;YAGIuI,WAAW0D,IAAX,MAAqBwC,SAAS,GAAT,GAAe,EAApC,KAA2ClG,WAAW0D,IAAX,KAAoB,EAAnE,EAAuE;uBAC3DA,IAAX,GAAkBzM,SAAlB;;;YAIG,CAAC+I,WAAWa,IAAhB,EAAsB;uBACVA,IAAX,GAAkB,GAAlB;;;;;eAOMb,UAAP;;CA/BF,CAmCA;;AClCA,IAAMiG,YAA2B;YACvB,OADuB;gBAEnBE,QAAKpC,UAFc;WAGxBoC,QAAKhD,KAHmB;eAIpBgD,QAAKtB;CAJlB,CAOA;;ACHA,SAAAuB,QAAA,CAAkBC,YAAlB,EAAA;WACQ,OAAOA,aAAaH,MAApB,KAA+B,SAA/B,GAA2CG,aAAaH,MAAxD,GAAiE7K,OAAOgL,aAAa/F,MAApB,EAA4B7I,WAA5B,OAA8C,KAAtH;;;AAID,IAAMwO,YAA2B;YACvB,IADuB;gBAGnB,IAHmB;WAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQgD,eAAerG,UAArB;;qBAGakG,MAAb,GAAsBE,SAASC,YAAT,CAAtB;;qBAGaC,YAAb,GAA4B,CAACD,aAAaxF,IAAb,IAAqB,GAAtB,KAA8BwF,aAAarF,KAAb,GAAqB,MAAMqF,aAAarF,KAAxC,GAAgD,EAA9E,CAA5B;qBACaH,IAAb,GAAoB5J,SAApB;qBACa+J,KAAb,GAAqB/J,SAArB;eAEOoP,YAAP;KAhB+B;eAmBpB,mBAAUA,YAAV,EAAqChD,OAArC,EAAb;;YAEMgD,aAAa3C,IAAb,MAAuB0C,SAASC,YAAT,IAAyB,GAAzB,GAA+B,EAAtD,KAA6DA,aAAa3C,IAAb,KAAsB,EAAvF,EAA2F;yBAC7EA,IAAb,GAAoBzM,SAApB;;;YAIG,OAAOoP,aAAaH,MAApB,KAA+B,SAAnC,EAA8C;yBAChC5F,MAAb,GAAuB+F,aAAaH,MAAb,GAAsB,KAAtB,GAA8B,IAArD;yBACaA,MAAb,GAAsBjP,SAAtB;;;YAIGoP,aAAaC,YAAjB,EAA+B;wCACRD,aAAaC,YAAb,CAA0BhP,KAA1B,CAAgC,GAAhC,CADQ;;gBACvBuJ,IADuB;gBACjBG,KADiB;;yBAEjBH,IAAb,GAAqBA,QAAQA,SAAS,GAAjB,GAAuBA,IAAvB,GAA8B5J,SAAnD;yBACa+J,KAAb,GAAqBA,KAArB;yBACasF,YAAb,GAA4BrP,SAA5B;;;qBAIYiK,QAAb,GAAwBjK,SAAxB;eAEOoP,YAAP;;CA1CF,CA8CA;;ACvDA,IAAMJ,YAA2B;YACvB,KADuB;gBAEnBM,UAAGxC,UAFgB;WAGxBwC,UAAGpD,KAHqB;eAIpBoD,UAAG1B;CAJhB,CAOA;;ACMA,IAAM2B,IAAkB,EAAxB;;AAIA,IAAMzN,eAAe,6BAAoC,2EAAR,CAA5B,IAAwH,GAA7I;AACA,IAAMR,WAAW,aAAjB;AACA,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;;;;;;;;;;;;AAaA,IAAMkO,UAAU,uDAAhB;AACA,IAAMC,UAAU,4DAAhB;AACA,IAAMC,UAAUrQ,MAAMoQ,OAAN,EAAe,YAAf,CAAhB;AAMA,IAEME,gBAAgB,qCAAtB;AAWA,IAEMvG,aAAa,IAAInG,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CAAnB;AACA,IAAMwH,cAAc,IAAIrG,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAApB;AACA,IAAMqO,iBAAiB,IAAI3M,MAAJ,CAAW5D,MAAM,KAAN,EAAamQ,OAAb,EAAsB,OAAtB,EAA+B,OAA/B,EAAwCE,OAAxC,CAAX,EAA6D,GAA7D,CAAvB;AAEA,IAAMG,aAAa,IAAI5M,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2B6N,aAA3B,CAAX,EAAsD,GAAtD,CAAnB;AACA,IAAMG,cAAcD,UAApB;AAEA,SAEA5G,gBAAA,CAA0BpJ,GAA1B,EAAA;QACOqJ,SAASX,YAAY1I,GAAZ,CAAf;WACQ,CAACqJ,OAAOC,KAAP,CAAaC,UAAb,CAAD,GAA4BvJ,GAA5B,GAAkCqJ,MAA1C;;AAGD,IAAM8F,YAA8C;YAC1C,QAD0C;WAG3C,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ2D,mBAAmBhH,UAAzB;YACMiH,KAAKD,iBAAiBC,EAAjB,GAAuBD,iBAAiBnG,IAAjB,GAAwBmG,iBAAiBnG,IAAjB,CAAsBvJ,KAAtB,CAA4B,GAA5B,CAAxB,GAA2D,EAA7F;yBACiBuJ,IAAjB,GAAwB5J,SAAxB;YAEI+P,iBAAiBhG,KAArB,EAA4B;gBACvBkG,iBAAiB,KAArB;gBACMC,UAAwB,EAA9B;gBACMC,UAAUJ,iBAAiBhG,KAAjB,CAAuB1J,KAAvB,CAA6B,GAA7B,CAAhB;iBAEK,IAAIX,IAAI,CAAR,EAAWD,KAAK0Q,QAAQ5Q,MAA7B,EAAqCG,IAAID,EAAzC,EAA6C,EAAEC,CAA/C,EAAkD;oBAC3C0Q,SAASD,QAAQzQ,CAAR,EAAWW,KAAX,CAAiB,GAAjB,CAAf;wBAEQ+P,OAAO,CAAP,CAAR;yBACM,IAAL;4BACOC,UAAUD,OAAO,CAAP,EAAU/P,KAAV,CAAgB,GAAhB,CAAhB;6BACK,IAAIX,KAAI,CAAR,EAAWD,MAAK4Q,QAAQ9Q,MAA7B,EAAqCG,KAAID,GAAzC,EAA6C,EAAEC,EAA/C,EAAkD;+BAC9C+F,IAAH,CAAQ4K,QAAQ3Q,EAAR,CAAR;;;yBAGG,SAAL;yCACkB4Q,OAAjB,GAA2BvB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAA3B;;yBAEI,MAAL;yCACkBmE,IAAjB,GAAwBxB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAxB;;;yCAGiB,IAAjB;gCACQ2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAR,IAAiD2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAjD;;;;gBAKC6D,cAAJ,EAAoBF,iBAAiBG,OAAjB,GAA2BA,OAA3B;;yBAGJnG,KAAjB,GAAyB/J,SAAzB;aAEK,IAAIN,MAAI,CAAR,EAAWD,OAAKuQ,GAAGzQ,MAAxB,EAAgCG,MAAID,IAApC,EAAwC,EAAEC,GAA1C,EAA6C;gBACtC8Q,OAAOR,GAAGtQ,GAAH,EAAMW,KAAN,CAAY,GAAZ,CAAb;iBAEK,CAAL,IAAU0O,kBAAkByB,KAAK,CAAL,CAAlB,CAAV;gBAEI,CAACpE,QAAQS,cAAb,EAA6B;;oBAExB;yBACE,CAAL,IAAU5E,SAASD,OAAT,CAAiB+G,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAjB,CAAV;iBADD,CAEE,OAAO8H,CAAP,EAAU;qCACMhE,KAAjB,GAAyByL,iBAAiBzL,KAAjB,IAA0B,6EAA6EgE,CAAhI;;aALF,MAOO;qBACD,CAAL,IAAUyG,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAV;;eAGEd,GAAH,IAAQ8Q,KAAK7Q,IAAL,CAAU,GAAV,CAAR;;eAGMoQ,gBAAP;KA5DkD;eA+DvC,sBAAUA,gBAAV,EAA6C3D,OAA7C,EAAb;YACQrD,aAAagH,gBAAnB;YACMC,KAAKtP,QAAQqP,iBAAiBC,EAAzB,CAAX;YACIA,EAAJ,EAAQ;iBACF,IAAItQ,IAAI,CAAR,EAAWD,KAAKuQ,GAAGzQ,MAAxB,EAAgCG,IAAID,EAApC,EAAwC,EAAEC,CAA1C,EAA6C;oBACtC+Q,SAASrM,OAAO4L,GAAGtQ,CAAH,CAAP,CAAf;oBACMgR,QAAQD,OAAO5J,WAAP,CAAmB,GAAnB,CAAd;oBACM8J,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;oBACIyI,SAASH,OAAOjR,KAAP,CAAakR,QAAQ,CAArB,CAAb;;oBAGI;6BACO,CAACtE,QAAQC,GAAT,GAAepE,SAASD,OAAT,CAAiB+G,kBAAkB6B,MAAlB,EAA0BxE,OAA1B,EAAmC5L,WAAnC,EAAjB,CAAf,GAAoFyH,SAASH,SAAT,CAAmB8I,MAAnB,CAA9F;iBADD,CAEE,OAAOtI,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,0DAA0D,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAAnF,IAAgG,iBAAhG,GAAoH/D,CAA3J;;mBAGE5I,CAAH,IAAQiR,YAAY,GAAZ,GAAkBC,MAA1B;;uBAGUhH,IAAX,GAAkBoG,GAAGrQ,IAAH,CAAQ,GAAR,CAAlB;;YAGKuQ,UAAUH,iBAAiBG,OAAjB,GAA2BH,iBAAiBG,OAAjB,IAA4B,EAAvE;YAEIH,iBAAiBO,OAArB,EAA8BJ,QAAQ,SAAR,IAAqBH,iBAAiBO,OAAtC;YAC1BP,iBAAiBQ,IAArB,EAA2BL,QAAQ,MAAR,IAAkBH,iBAAiBQ,IAAnC;YAErBpF,SAAS,EAAf;aACK,IAAM0F,IAAX,IAAmBX,OAAnB,EAA4B;gBACvBA,QAAQW,IAAR,MAAkBtB,EAAEsB,IAAF,CAAtB,EAA+B;uBACvBpL,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;;;YAOEgD,OAAO5L,MAAX,EAAmB;uBACPwK,KAAX,GAAmBoB,OAAOxL,IAAP,CAAY,GAAZ,CAAnB;;eAGMoJ,UAAP;;CAzGF,CA6GA;;ACnKA,IAAM+H,YAAY,iBAAlB;AACA;AAGA,IAAM9B,YAAqD;YACjD,KADiD;WAGlD,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ/B,UAAUtB,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBT,KAAhB,CAAsB2H,SAAtB,CAAnC;YACIC,gBAAgBhI,UAApB;YAEIsB,OAAJ,EAAa;gBACNhB,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;gBACM2H,MAAM3G,QAAQ,CAAR,EAAW7J,WAAX,EAAZ;gBACMyQ,MAAM5G,QAAQ,CAAR,CAAZ;gBACM6G,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;gBACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;0BAEcF,GAAd,GAAoBA,GAApB;0BACcC,GAAd,GAAoBA,GAApB;0BACcrH,IAAd,GAAqB5J,SAArB;gBAEI4M,aAAJ,EAAmB;gCACFA,cAAcV,KAAd,CAAoB6E,aAApB,EAAmC3E,OAAnC,CAAhB;;SAZF,MAcO;0BACQ9H,KAAd,GAAsByM,cAAczM,KAAd,IAAuB,wBAA7C;;eAGMyM,aAAP;KAzByD;eA4B9C,sBAAUA,aAAV,EAAuC3E,OAAvC,EAAb;YACQ/C,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;YACM2H,MAAMD,cAAcC,GAA1B;YACME,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;YACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;YAEItE,aAAJ,EAAmB;4BACFA,cAAcgB,SAAd,CAAwBmD,aAAxB,EAAuC3E,OAAvC,CAAhB;;YAGK+E,gBAAgBJ,aAAtB;YACME,MAAMF,cAAcE,GAA1B;sBACcrH,IAAd,IAAwBoH,OAAO5E,QAAQ4E,GAAvC,UAA8CC,GAA9C;eAEOE,aAAP;;CA1CF,CA8CA;;AC5DA,IAAMC,OAAO,0DAAb;AACA;AAGA,IAAMpC,YAAsE;YAClE,UADkE;WAGnE,eAAU+B,aAAV,EAAuC3E,OAAvC,EAAT;YACQiF,iBAAiBN,aAAvB;uBACeO,IAAf,GAAsBD,eAAeJ,GAArC;uBACeA,GAAf,GAAqBjR,SAArB;YAEI,CAACoM,QAAQ+B,QAAT,KAAsB,CAACkD,eAAeC,IAAhB,IAAwB,CAACD,eAAeC,IAAf,CAAoBnI,KAApB,CAA0BiI,IAA1B,CAA/C,CAAJ,EAAqF;2BACrE9M,KAAf,GAAuB+M,eAAe/M,KAAf,IAAwB,oBAA/C;;eAGM+M,cAAP;KAZ0E;eAe/D,mBAAUA,cAAV,EAAyCjF,OAAzC,EAAb;YACQ2E,gBAAgBM,cAAtB;;sBAEcJ,GAAd,GAAoB,CAACI,eAAeC,IAAf,IAAuB,EAAxB,EAA4B9Q,WAA5B,EAApB;eACOuQ,aAAP;;CAnBF,CAuBA;;AChCA7I,QAAQgH,QAAK7F,MAAb,IAAuB6F,OAAvB;AAGAhH,QAAQqJ,UAAMlI,MAAd,IAAwBkI,SAAxB;AAGArJ,QAAQoH,UAAGjG,MAAX,IAAqBiG,SAArB;AAGApH,QAAQsJ,UAAInI,MAAZ,IAAsBmI,SAAtB;AAGAtJ,QAAQuJ,UAAOpI,MAAf,IAAyBoI,SAAzB;AAGAvJ,QAAQwJ,UAAIrI,MAAZ,IAAsBqI,SAAtB;AAGAxJ,QAAQoJ,UAAKjI,MAAb,IAAuBiI,SAAvB,CAEA;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,iBAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC9D,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC;AACtD;AACA,IAAI,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;AACxB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AAC3C,MAAM,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC7C,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AACtF,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACnF,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvF;AACA,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACvD;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC1E;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AACjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;;AC3CD;AACA;AACA,cAAc,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE;AAC1C,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AACtB,MAAM,GAAG,GAAG,CAAC;AACb,MAAM,KAAK,CAAC;AACZ,EAAE,OAAO,GAAG,GAAG,GAAG,EAAE;AACpB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC,IAAI,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AACzD;AACA,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;AChBD,QAAc,GAAG;AACjB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,KAAK,EAAEK,aAA0B;AACnC,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,oBAAoB,EAAE,oBAAoB;AAC5C,EAAE,kBAAkB,EAAE,kBAAkB;AACxC,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,mBAAmB,EAAE,mBAAmB;AAC1C,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,CAAC,CAAC;AACF;AACA;AACA,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;AACrB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE;AAC9D,EAAE,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO;AACxC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;AACpC,MAAM,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE;AAC5B,MAAM,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;AAC9B,EAAE,QAAQ,QAAQ;AAClB,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAC9C,IAAI,KAAK,OAAO,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,IAAI,GAAG,GAAG,CAAC;AAC5D,IAAI,KAAK,QAAQ,EAAE,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG;AAC/C,0BAA0B,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;AACrE,0BAA0B,GAAG,GAAG,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/D,IAAI,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;AACvE,2BAA2B,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO;AACrD,2BAA2B,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI;AACpD,4BAA4B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;AAC9F,IAAI,KAAK,QAAQ,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;AAC1E,2BAA2B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;AAC7F,IAAI,SAAS,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;AACpE,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;AACxD,EAAE,QAAQ,SAAS,CAAC,MAAM;AAC1B,IAAI,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1E,IAAI;AACJ,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;AACpB,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvC,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AACtD,QAAQ,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAAC;AACpD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC;AAC1B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC;AAC3B,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK;AACzB,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACpF;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,eAAe,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF,SAAS,aAAa,CAAC,iBAAiB,EAAE,SAAS,EAAE;AACrD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,WAAW,IAAI,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACnC,GAAG,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AACvB,GAAG,MAAM,IAAI,iBAAiB,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;AACrE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACrB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,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;AACvD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,IAAI,UAAU,GAAG,uBAAuB,CAAC;AACzC,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,EAAE,OAAO,OAAO,GAAG,IAAI,QAAQ;AAC/B,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG;AAC3B,YAAY,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,cAAc,GAAG,GAAG,GAAG;AACvB,cAAc,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9C,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;AAC1C,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;AACrC,EAAE,OAAO,IAAI,QAAQ,CAAC;AACtB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD,EAAE,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AACxC,EAAE,OAAO,IAAI,UAAU,CAAC;AACxB,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC5D,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;AACjD,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;AAC5D,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,CAAC;AAC3E,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AAC9E,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO;AACzC,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AAChE,EAAE,IAAI,IAAI,GAAG,YAAY;AACzB,gBAAgB,UAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,gDAAgD,CAAC;AACtG,iBAAiB,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;AACrG,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,YAAY;AACzB,gBAAgB,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7D,gBAAgB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,IAAI,YAAY,GAAG,qBAAqB,CAAC;AACzC,IAAI,qBAAqB,GAAG,kCAAkC,CAAC;AAC/D,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACpC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;AACrC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,UAAU,CAAC;AACtC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACrF,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,GAAG,UAAU,CAAC;AACtB,GAAG,MAAM;AACT,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACpE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,WAAW,IAAI,GAAG,EAAE;AAC5B,MAAM,IAAI,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACnH,MAAM,OAAO,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACtG,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;AAClC,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,IAAI,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,MAAM,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrD;;AC1OA,cAAc,GAAG,YAAY,CAAC;AAC9B;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvB;;;ACPA;AACA,IAAI,QAAQ,GAAG,cAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,EAAE,GAAG,IAAI,CAAC;AACd,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AACrB,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;AACrE,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;AACtC;AACA,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,QAAQ,GAAG;AACpB,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,oBAAoB,EAAE,IAAI;AAC5B,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,GAAG,EAAE,IAAI;AACX,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG;AACzB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG;AACzB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,YAAY,EAAE,IAAI;AACpB,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,YAAY,GAAG;AACxB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,aAAa,EAAE,IAAI;AACrB,CAAC,CAAC;AACF;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;AACvH,EAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC3F,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC3C,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,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;AACnH,SAAS;AACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAChD,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC3C,UAAU,KAAK,IAAI,IAAI,IAAI,GAAG;AAC9B,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;AAC3I,SAAS;AACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;AAChG,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;AAC/F,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC5F,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD;;;AChFA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;AAC/B,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;AACzB,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;AACzB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACrC;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACjC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxD,SAAS,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,YAAYC,UAAY,EAAE;AACtC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,cAAc,MAAM,CAAC,MAAM;AAC3B,cAAc,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,EAAE,IAAI,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;AACxB,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACxB,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,MAAM,YAAYA,UAAY,EAAE;AACtC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtF,GAAG,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AACnC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAChD,UAAU,MAAM;AAChB,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC9D,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;AAClC;AACA,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACxB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;AAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;AACnE,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACnC,MAAM,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAK,MAAM,IAAI,MAAM,YAAYD,UAAY,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,IAAI,MAAM,YAAYA,UAAY,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD,QAAQ,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;AAClC,UAAU,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChE,QAAQ,IAAI,GAAG,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO;AAC7B,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAChD;AACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5C,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AACnH;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AACzD;AACA,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChD,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO;AACnD,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM;AACtC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,QAAQ,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;AACzB,UAAU,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrD,UAAU,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,UAAU,IAAI,GAAG,EAAE;AACnB,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;AACpD,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AACD;AACA;AACA,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;AAC7B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,aAAa,EAAE,YAAY;AAC7B,EAAE,UAAU,EAAE,MAAM;AACpB,CAAC,CAAC,CAAC;AACH,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;AAClC,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;AACpC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AACvE,OAAO,IAAI,KAAK,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACpD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACrE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,KAAK,CAAC;AACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACrE,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;AACtB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,MAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAC7C,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,QAAQ,CAAC;AACzC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,KAAK,EAAE,CAAC;AAChB,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,QAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAC/C,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE;AACpC,EAAE,IAAI,SAAS,KAAK,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxB,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,EAAE,OAAOA,OAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9C,CAAC;AACD;AACA;AACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;AAClC,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;AAChC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AACvB,EAAE,OAAOA,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,OAAO,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/B,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB;AACA,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;AAC7H,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,OAAO;AAC/B,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC;AAClE,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,MAAM,QAAQ,IAAI,GAAG,IAAI,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjG;AACA,IAAI,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;AAC/B,MAAM,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,GAAGD,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE;AACA,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACnC,QAAQ,IAAI,CAACpD,aAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;AACtC,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAC9E,OAAO,MAAM,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC9C,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC1B,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAACA,aAAK,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACzD,YAAY,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAChF,UAAU,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAC9B,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;AAClC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,SAAS,CAAC;AACnB;;ACzQA,iBAAc,GAAG;AACjB,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;AAC5C,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;AAC5C,CAAC,CAAC;AACF;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,EAAE,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC;AACrC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,CAAC;AACD;AACA;AACA,eAAe,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE;AACjD,EAAE,OAAO,2BAA2B,GAAG,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC;AAClE,CAAC,CAAC;AACF;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/C,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,UAAU,GAAGN,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,aAAa,GAAGA,SAAO,CAAC,WAAW,CAACA,SAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC;AAClB;;AC/BA,2BAAc,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE;AACvC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACzD,IAAI,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1E;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;AACxC,QAAQ,OAAO,UAAU,IAAI,EAAE;AAC/B,YAAY,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AACnC,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,aAAa,CAAC;AACd,SAAS,CAAC;AACV,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE;AACtC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;AACtE,YAAY,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO;AACvC,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;AAChF,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC;AACnB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY,GAAG,GAAG,GAAG,CAAC;AACtB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,gBAAgB,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC;AAClC,gBAAgB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AACpD,aAAa;AACb,YAAY,OAAO,GAAG,GAAG,GAAG,CAAC;AAC7B,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AACzC;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACvC,YAAY,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC3D,YAAY,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;AACzE,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C;AACA,YAAY,IAAI,CAAC,KAAK,EAAE,SAAS;AACjC,YAAY,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC;AAChC,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClC,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/B,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;;ACzDD,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;AACxC,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;AAChF,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9B,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/E,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,YAAY,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAC3D,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzE,WAAW,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI,GAAG,IAAI,kBAAkB,CAAC;AAC9B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,KAAK;AACL,IAAI,GAAG,IAAI,uFAAuF,CAAC;AACnG,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,MAAM,GAAG,IAAI,GAAG,IAAI,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3D,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAC1E,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC;AAClC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAChC,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACpE,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AAC3D,IAAI,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;AAC7B,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,aAAa,GAAG,IAAI,CAAC;AAC7B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,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;AAChN,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,0CAA0C,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnE,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACxE,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACxH,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,GAAG,IAAI,gBAAgB,CAAC;AAClC,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,wCAAwC,CAAC;AAC1D,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,uBAAuB,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;AACvB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;AACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AACjC,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,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;AACpE,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;AACvC,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC;AACpB,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC1F,MAAM,IAAI,WAAW,GAAG,uCAAuC,CAAC;AAChE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxE,WAAW,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,GAAG,IAAI,gDAAgD,CAAC;AAC5D,GAAG,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;AACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS;AAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5E,IAAI,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC;AAChD,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;AAC7B,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;AACtC,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;AAClC,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9C,EAAE,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AACtE,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtF,KAAK,MAAM,IAAI,WAAW,IAAI,MAAM,EAAE;AACtC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1C,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/C,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;AACtC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;AACtC,MAAM,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,aAAa,GAAG,2BAA2B,CAAC,CAAC;AAC7H,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5C,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAC5F,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAClD,IAAI,IAAI,cAAc,IAAI,YAAY,IAAI,WAAW,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE;AAClH,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACpD,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;AACnD,QAAQ,OAAO,GAAG,YAAY,GAAG,gBAAgB,GAAG,eAAe,CAAC;AACpE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AACpG,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,IAAI,SAAS,GAAG,UAAU,GAAG,IAAI;AACzC,UAAU,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,gBAAgB,CAAC;AACzG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC9U,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC3D,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,KAAK,IAAI,QAAQ,EAAE;AACnC,cAAc,GAAG,IAAI,YAAY,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;AACtN,aAAa,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;AAChE,cAAc,GAAG,IAAI,YAAY,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;AACjM,cAAc,IAAI,KAAK,IAAI,SAAS,EAAE;AACtC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;AACpD,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAClE,aAAa,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE;AAC3C,cAAc,GAAG,IAAI,YAAY,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;AAC7O,aAAa,MAAM,IAAI,KAAK,IAAI,MAAM,EAAE;AACxC,cAAc,GAAG,IAAI,YAAY,IAAI,KAAK,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;AAC7I,aAAa,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;AAC3E,cAAc,GAAG,IAAI,YAAY,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;AACnN,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AACjN,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACtC,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;AAC9C,YAAY,IAAI,YAAY,EAAE;AAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,qBAAqB,CAAC;AAC9D,QAAQ,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AACnF,UAAU,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC3F,QAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,UAAU,GAAG,IAAI,MAAM,IAAI,WAAW,CAAC,GAAG,iBAAiB,CAAC;AAC5D,SAAS;AACT,QAAQ,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;AAChG,OAAO,MAAM;AACb,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AACjN,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACtC,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;AAC9C,YAAY,IAAI,YAAY,EAAE;AAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AACvC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5D,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,oBAAoB,CAAC;AAClC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,GAAG,IAAI,GAAG,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,eAAe,IAAI,GAAG,CAAC;AAC7B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,WAAW,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;AAC1C,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;AAChC,YAAY,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9G,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AACnC,YAAY,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;AACtE,cAAc,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU;AAChD,gBAAgB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,cAAc,IAAI,IAAI,GAAG,WAAW,CAAC;AACrC,cAAc,IAAI,IAAI,EAAE;AACxB,gBAAgB,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACzC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;AAChC,kBAAkB,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,kBAAkB,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACnD,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC9E,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;AAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;AACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1D,uBAAuB;AACvB,qBAAqB,MAAM;AAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;AACnG,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AACzE,uBAAuB,MAAM;AAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;AAClC,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa,MAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACtF,cAAc,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,cAAc,IAAI,IAAI,EAAE;AACxB,gBAAgB,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;AAChC,kBAAkB,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AAC3D,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;AAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;AACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1D,uBAAuB;AACvB,qBAAqB,MAAM;AAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;AACnG,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AACzE,uBAAuB,MAAM;AAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;AAClC,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;AACvC,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5B,cAAc,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AACzC,gBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5E,gBAAgB,IAAI,KAAK,EAAE;AAC3B,kBAAkB,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC7C,kBAAkB,IAAI,aAAa,EAAE;AACrC,oBAAoB,eAAe,IAAI,GAAG,CAAC;AAC3C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AACjD,YAAY,eAAe,GAAG,EAAE,CAAC;AACjC,WAAW;AACX,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;AAChC,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,YAAY,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;AACpF,cAAc,GAAG,IAAI,UAAU,CAAC;AAChC,cAAc,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AACvD,gBAAgB,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AAC5D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,GAAG,GAAG,EAAE,CAAC;AACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC7C,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;AACvN,gBAAgB,IAAI,YAAY,EAAE;AAClC,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AAC5C,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAChD,kBAAkB,GAAG,IAAI,0BAA0B,CAAC;AACpD,kBAAkB,IAAI,YAAY,EAAE;AACpC,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,mBAAmB,MAAM;AACzB,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AAC9C,mBAAmB;AACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3J,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;AAC9B,eAAe;AACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AACtD;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;AAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3E,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAChF,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAChI,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,kBAAkB,CAAC;AACtC,YAAY,IAAI,IAAI,EAAE;AACtB,cAAc,GAAG,IAAI,GAAG,CAAC;AACzB,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;AACtC,aAAa;AACb,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,YAAY,eAAe,IAAI,GAAG,CAAC;AACnC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,CAAC;AAClC,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AACrE,GAAG;AACH;AACA,EAAE,SAAS,eAAe,CAAC,WAAW,EAAE;AACxC,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AAChD,GAAG;AACH;AACA,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE;AACjC,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7G,GAAG;AACH;AACA,EAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AACxC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;AACxD,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACxdA;AACA;AACA;AACA;AACA,IAAI4D,YAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACM;AACvC;AACA;AACA,IAAIC,iBAAe,GAAGC,aAAY,CAAC,UAAU,CAAC;AAC9C;AACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AAClD;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE;AAC5B,MAAM,IAAI,GAAG,EAAE;AACf,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB;AACA,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChE;AACA,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,WAAW,CAAC,YAAY,GAAG,YAAY,EAAE;AACpE;AACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB;AACA,EAAE,IAAI;AACN,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC1D,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC;AACtC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,SAAS;AACZ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,GAAG;AACH;AACA;AACA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACxC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,IAAI,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;AAC3D,IAAI,IAAI,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;AAC9D,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;AACnC,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;AACzC;AACA,IAAI,IAAI,UAAU,GAAGC,QAAiB,CAAC;AACvC,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,MAAM,EAAE,OAAO;AACrB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,UAAU,EAAE,EAAE;AACpB,MAAM,aAAa,EAAE,GAAG;AACxB,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,eAAe,EAAED,aAAY,CAAC,UAAU;AAC9C,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,QAAQ,EAAEC,QAAiB;AACjC,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE/D,SAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,aAAa,EAAE,aAAa;AAClC,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,MAAM,IAAI,EAAE,IAAI;AAChB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;AACvE,qBAAqB,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;AACpF,qBAAqB,UAAU,CAAC;AAChC;AACA,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,IAAIgE,UAAQ,CAAC;AACjB,IAAI,IAAI;AACR,MAAM,IAAI,YAAY,GAAG,IAAI,QAAQ;AACrC,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,OAAO;AACf,QAAQ,YAAY;AACpB,QAAQ,iBAAiB;AACzB,QAAQ,UAAU;AAClB,OAAO,CAAC;AACR;AACA,MAAMA,UAAQ,GAAG,YAAY;AAC7B,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,WAAW;AACnB,QAAQ1D,aAAK;AACb,QAAQsD,YAAU;AAClB,QAAQC,iBAAe;AACvB,OAAO,CAAC;AACR;AACA,MAAM,MAAM,CAAC,CAAC,CAAC,GAAGG,UAAQ,CAAC;AAC3B,KAAK,CAAC,MAAM,CAAC,EAAE;AACf,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAC;AAC9E,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL;AACA,IAAIA,UAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;AAC9B,IAAIA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,IAAIA,UAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAIA,UAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,IAAIA,UAAQ,CAAC,IAAI,GAAG,MAAM,GAAGA,UAAQ,GAAG,KAAK,CAAC;AAC9C,IAAI,IAAI,MAAM,EAAEA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAClC,MAAMA,UAAQ,CAAC,MAAM,GAAG;AACxB,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAOA,UAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAC3C,IAAI,GAAG,GAAGhE,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,OAAO,EAAE,OAAO,CAAC;AACzB,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC;AAC3C,MAAM,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AACnC,QAAQ,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzC,QAAQ,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5C,QAAQ,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAGA,SAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACzB,MAAM,IAAI,WAAW,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,CAAC,GAAGA,SAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3D,cAAc,WAAW;AACzB,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACzB,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK,MAAM;AACX,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,OAAO,QAAQ,GAAG,KAAK,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,SAAS,cAAc,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,GAAG;AACH;AACA,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,IAAI,OAAO,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AAClE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAC1D,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAChE,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACvC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvD,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,SAAS,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,KAAK,EAAE;AAC7B,IAAI,QAAQ,OAAO,KAAK;AACxB,MAAM,KAAK,SAAS,CAAC;AACrB,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,EAAE,GAAG,KAAK,CAAC;AAC1B,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,KAAK,QAAQ;AACnB,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAC1C,QAAQ,IAAI,QAAQ,GAAGiE,uBAAe,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,UAAU,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3D,UAAU,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,SAAS,GAAG,KAAK,CAAC;AACjC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;AACzD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;AAC7C,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAC9C,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE;AAChD,QAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3E,OAAO,CAAC;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F;AACA,MAAM,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AAC1D,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,UAAU,IAAI,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC/F,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7E,eAAe,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACxC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACzC,QAAQ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,QAAQ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtC;AACA,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC9D,KAAK,MAAM,IAAI,KAAK,EAAE;AACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC5D,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7E,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1C,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC;AAChF;AACA,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;AACnC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AAClC;AACA,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,YAAY,GAAG,KAAK;AAChC,MAAM,QAAQ,EAAE,QAAQ;AACxB,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9C;AACA,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzD,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC3D,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACpC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG;AAC9B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,MAAM;AAClB,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5C;AACA,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACzC;AACA,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE;AAClC,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxF,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;AACvD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;AAC/B,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC;AACnF,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,OAAO,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;AAC7D,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;AAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,EAAE,OAAO,IAAI,CAAC;AACd;;;ACjYA;AACA;AACA,IAAI,KAAK,GAAG,cAAc,GAAG,SAAS,KAAK,GAAG;AAC9C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE;AACrD,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,WAAW,GAAG;AAC/C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,CAAC;;;ACrBD,IAAI,IAAI,GAAG,4BAA4B,CAAC;AACxC,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;AACnD,IAAI,IAAI,GAAG,yDAAyD,CAAC;AACrE,IAAI,QAAQ,GAAG,uGAAuG,CAAC;AACvH,IAAI,GAAG,GAAG,8nCAA8nC,CAAC;AACzoC,IAAI,MAAM,GAAG,woCAAwoC,CAAC;AACtpC;AACA,IAAI,WAAW,GAAG,mLAAmL,CAAC;AACtM;AACA;AACA;AACA;AACA,IAAIC,KAAG,GAAG,2rDAA2rD,CAAC;AACtsD,IAAI,IAAI,GAAG,8DAA8D,CAAC;AAC1E,IAAIC,cAAY,GAAG,2BAA2B,CAAC;AAC/C,IAAI,yBAAyB,GAAG,8DAA8D,CAAC;AAC/F,IAAIC,uBAAqB,GAAG,kDAAkD,CAAC;AAC/E;AACA;AACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,EAAE,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AACD;AACA;AACA,OAAO,CAAC,IAAI,GAAG;AACf;AACA,EAAE,IAAI,EAAE,4BAA4B;AACpC;AACA,EAAE,IAAI,EAAE,6EAA6E;AACrF,EAAE,WAAW,EAAE,yGAAyG;AACxH;AACA,EAAE,GAAG,EAAE,2CAA2C;AAClD,EAAE,eAAe,EAAE,wEAAwE;AAC3F,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,GAAG,EAAEF,KAAG;AACV;AACA;AACA;AACA,EAAE,KAAK,EAAE,kHAAkH;AAC3H,EAAE,QAAQ,EAAE,QAAQ;AACpB;AACA,EAAE,IAAI,EAAE,2EAA2E;AACnF;AACA,EAAE,IAAI,EAAE,opCAAopC;AAC5pC,EAAE,KAAK,EAAE,KAAK;AACd;AACA,EAAE,IAAI,EAAE,IAAI;AACZ;AACA;AACA,EAAE,cAAc,EAAEC,cAAY;AAC9B,EAAE,2BAA2B,EAAE,yBAAyB;AACxD;AACA,EAAE,uBAAuB,EAAEC,uBAAqB;AAChD,CAAC,CAAC;AACF;AACA;AACA,OAAO,CAAC,IAAI,GAAG;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,GAAG,EAAEF,KAAG;AACV,EAAE,KAAK,EAAE,0IAA0I;AACnJ,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,IAAI,EAAE,2EAA2E;AACnF,EAAE,IAAI,EAAE,opCAAopC;AAC5pC,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,cAAc,EAAEC,cAAY;AAC9B,EAAE,2BAA2B,EAAE,yBAAyB;AACxD,EAAE,uBAAuB,EAAEC,uBAAqB;AAChD,CAAC,CAAC;AACF;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B;AACA,EAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB;AACA,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,EAAE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;AAC9C,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;AACzB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE;AACrD,WAAW,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;AACtD,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;AAC7B,CAAC;AACD;AACA;AACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;AAClC,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB;AACA,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAChD,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;AAC9E,CAAC;AACD;AACA;AACA,IAAI,gBAAgB,GAAG,MAAM,CAAC;AAC9B,SAAS,GAAG,CAAC,GAAG,EAAE;AAClB;AACA,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AACD;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC1B,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;AACvC,EAAE,IAAI;AACN,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,MAAM,CAAC,EAAE;AACb,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;;AC5IA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,MAAM,EAAE,QAAQ,CAAC;AACvB,EAAE,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE;AACzC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE;AACnB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC/D,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,IAAI,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;AACzC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClC,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC3O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,2CAA2C,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;AACzG,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/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;AAC1J,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,gBAAgB,CAAC;AAClC,SAAS;AACT,OAAO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAClD,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnE,OAAO;AACP,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAClB,MAAM,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AAC3C,MAAM,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AAC1B,MAAM,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;AAClC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,cAAc,CAAC;AAC/C,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,sBAAsB,CAAC;AAClD,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;AAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,eAAe,CAAC;AACnF,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC;AAC7B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC/E,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC;AACzC,OAAO;AACP,MAAM,GAAG,IAAI,eAAe,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC;AACvD,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAC5C,OAAO;AACP,MAAM,GAAG,IAAI,2KAA2K,CAAC;AACzL,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AAC7C,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,QAAQ,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,QAAQ,CAAC,GAAG,yCAAyC,IAAI,QAAQ,CAAC,GAAG,uCAAuC,CAAC;AAClM,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC1HA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;AACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3I,QAAQ,gBAAgB,GAAG,KAAK,CAAC;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACjD,UAAU,cAAc,IAAI,GAAG,CAAC;AAChC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACxCA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE;AACpD,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3I,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AACpC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;AAC5E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;AACvB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,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;AACzG,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC/E,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACtL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,oDAAoD,CAAC;AACpE,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjD,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACjC,IAAI,GAAG,IAAI,eAAe,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC/C,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;AACpD,IAAI,GAAG,IAAI,uBAAuB,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,CAAC;AAC/H,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACZA,UAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAE9G,GAEG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;AAC/E,GAAG;AACH,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;AAC5G,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACtDA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM;AAC9B,IAAI,eAAe,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/J,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,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;AAC3I,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;AACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,cAAc,CAAC;AACnD,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,UAAU,CAAC,GAAG,KAAK,CAAC;AACpE,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACvL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,YAAY,CAAC;AACtB,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AAChJ,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC/EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,WAAW,GAAG,EAAE;AACtB,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3C,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE;AAC7B,IAAI,IAAI,SAAS,IAAI,WAAW,EAAE,SAAS;AAC3C,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,WAAW,CAAC;AAClE,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACzC,EAAE,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AACvC,EAAE,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AACtC,EAAE,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE;AACvC,IAAI,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACrC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,MAAM,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC;AACvF,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3H,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC5D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,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;AACrI,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;AAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,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;AACxJ,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AACza,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,4BAA4B,CAAC;AAChD,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACnC,cAAc,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,aAAa;AACb,YAAY,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAC5F,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,aAAa;AACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC7D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC3C,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;AAC7a,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9C,gBAAgB,GAAG,IAAI,4BAA4B,CAAC;AACpD,gBAAgB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,kBAAkB,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAChG,eAAe;AACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACzJ,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;AACpG,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACnC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAClC,EAAE,KAAK,IAAI,SAAS,IAAI,WAAW,EAAE;AACrC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AACtC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACzI,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;AACpH,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3H,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,MAAM,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACpE,MAAM,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACnF,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AAC1E,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACtKA,SAAc,GAAG,SAAS,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACjE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAE9G,GAEG;AACH,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AACrB,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;AAC7E,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AACjC,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC/J,GAAG;AACH,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;AACvN,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,+DAA+D,CAAC;AAC7E,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AChEA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AAChC,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;AAC9C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACnD,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,OAAO,GAAG,QAAQ,GAAG,IAAI;AACjC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;AACnC,MAAM,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC;AACxC,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;AACtU,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU,CAAC;AACpE,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC;AACvE,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC1G,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,IAAI,eAAe,IAAI,QAAQ,EAAE;AACrC,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC;AAC/D,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,wCAAwC,IAAI,YAAY,CAAC,GAAG,UAAU,CAAC;AACtF,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,KAAK;AACL,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;AACtI,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,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;AACvH,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC;AAC9D,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,eAAe,IAAI,QAAQ,EAAE;AACvC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAChH,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,OAAO,MAAM,IAAI,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACzE,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AACjH,OAAO;AACP,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;AACnG,IAAI,IAAI,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5D,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,WAAW,IAAI,SAAS,EAAE;AAClC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,eAAe,CAAC;AAC/B,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACpE,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;AAC9E,MAAM,GAAG,IAAI,eAAe,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC;AACvE,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,SAAS,CAAC;AACvB,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAChE,MAAM,IAAI,SAAS,EAAE,UAAU,IAAI,WAAW,CAAC;AAC/C,MAAM,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;AACxC,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACzD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAC9D,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC7L,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,qCAAqC,CAAC;AACnD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACpJA,OAAc,GAAG,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC/D,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxL,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxL,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,EAAE,IAAI,YAAY,IAAI,YAAY,EAAE;AACpC,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AAC3E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,4BAA4B,CAAC;AACjJ,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC;AAC9C,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;AACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,UAAU,CAAC;AAC/B,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;AACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,UAAU,CAAC;AAC/B,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AACtD,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACxN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,mCAAmC,IAAI,SAAS,CAAC,GAAG,kBAAkB,CAAC;AACtF,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACrGA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/B,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;AACrD,IAAI,IAAI,gBAAgB,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACxF,MAAM,IAAI,kBAAkB,GAAG,cAAc,CAAC;AAC9C,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAC7D,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC7C,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,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;AACnO,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,0CAA0C,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAC7F,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnE,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACxE,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACxH,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;AACvB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;AAC/F,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACjD,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACxD,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACxD,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;AAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACzC,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACnD,YAAY,cAAc,IAAI,GAAG,CAAC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,OAAO,gBAAgB,IAAI,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,gBAAgB,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACpN,MAAM,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC;AACpC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC;AAC1D,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAChE,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;AACzN,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;AAC1F,MAAM,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC/C,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACvC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACvD,QAAQ,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7E,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAClF,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACrD,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACvJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,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;AACpH,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;AACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACnD,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC1IA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,QAAQ,IAAI,SAAS;AACpC,IAAI,iBAAiB,GAAG,MAAM,GAAG,kBAAkB,GAAG,kBAAkB;AACxE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK;AACnE,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;AAC5B,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;AAC/B,IAAI,aAAa,GAAG,SAAS,CAAC;AAC9B,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE;AACzE,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,EAAE,WAAW,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,IAAI,QAAQ,IAAI,OAAO,WAAW,IAAI,SAAS,CAAC,EAAE;AACxH,IAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,4BAA4B,CAAC,CAAC;AACtE,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC;AACvF,MAAM,UAAU,GAAG,WAAW,GAAG,IAAI;AACrC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;AACnC,MAAM,aAAa,GAAG,cAAc,GAAG,IAAI;AAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI;AAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAC3C,IAAI,GAAG,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC;AAC1E,IAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC;AAC3C,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;AAC7N,IAAI,IAAI,aAAa,GAAG,iBAAiB,CAAC;AAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACjN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,uBAAuB,CAAC;AAChF,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,eAAe,CAAC;AAC3B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC1G,KAAK;AACL,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;AAC1mB,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AAClE,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,GAAG,OAAO,WAAW,IAAI,QAAQ;AACtD,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,IAAI,IAAI,aAAa,IAAI,OAAO,EAAE;AAClC,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC5G,OAAO;AACP,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;AACvR,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,IAAI,OAAO,KAAK,SAAS,EAAE;AAClD,QAAQ,UAAU,GAAG,IAAI,CAAC;AAC1B,QAAQ,aAAa,GAAG,iBAAiB,CAAC;AAC1C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AACpE,QAAQ,YAAY,GAAG,WAAW,CAAC;AACnC,QAAQ,MAAM,IAAI,GAAG,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,IAAI,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC7F,QAAQ,IAAI,WAAW,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,EAAE;AACnE,UAAU,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,aAAa,GAAG,iBAAiB,CAAC;AAC5C,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AACtE,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS,MAAM;AACf,UAAU,UAAU,GAAG,KAAK,CAAC;AAC7B,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC5G,OAAO;AACP,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;AACnH,KAAK;AACL,GAAG;AACH,EAAE,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAC;AAC5C,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACrS,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,0BAA0B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AACzD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACjKA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/C,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AAC5E,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC1O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;AAC9C,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClC,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,WAAW,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;AACtC,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,cAAc,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3C,GAAG;AACH,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AACrD,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC3O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,MAAM,IAAI,QAAQ,IAAI,WAAW,EAAE;AACnC,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACnFA,oBAAc,GAAG,SAAS,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC7E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;AACpD,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,eAAe,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AACzF,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC/O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;AAC9C,MAAM,IAAI,QAAQ,IAAI,eAAe,EAAE;AACvC,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AAC3C,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,6BAA6B,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AACjF,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACnC,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;AAChI,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3E,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,GAAG,IAAI,SAAS,CAAC;AACnB,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC7N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;AACpD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;AAC9C,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,gBAAgB,CAAC;AACzB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;AAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1C,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;AAChE,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,CAAC;AAC7C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,gBAAgB,CAAC;AAC5B,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AClFA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;AACjC,IAAI,UAAU,GAAG,WAAW,GAAG,IAAI;AACnC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAC9C,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;AACvI,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACvC,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3I,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACpD,OAAO;AACP,MAAM,IAAI,EAAE,EAAE;AACd,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;AACjL,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,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;AACxI,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACvD,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC3E,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC/N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,2DAA2D,CAAC;AACzE,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,GAAG,IAAI,8EAA8E,CAAC;AACxF,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,uCAAuC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,GAAG,IAAI,qBAAqB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,0BAA0B,CAAC;AACrJ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxF,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;AAC5D,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC/L,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;AACpD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACzEA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACzB,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;AACpD,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB;AACjD,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;AACjE,IAAI,aAAa,GAAG,YAAY,KAAK,KAAK;AAC1C,IAAI,mBAAmB,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;AAC7F,IAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB;AAChD,IAAI,gBAAgB,GAAG,aAAa,IAAI,mBAAmB,IAAI,iBAAiB;AAChF,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;AAC1C,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/B,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrC,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;AACnG,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC;AAC7B,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC;AACzE,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,eAAe,CAAC;AACzD,GAAG;AACH,EAAE,IAAI,gBAAgB,EAAE;AACxB,IAAI,IAAI,cAAc,EAAE;AACxB,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;AACxQ,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,GAAG,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;AAC1D,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;AAC9B,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,UAAU,GAAG,IAAI,qBAAqB,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5F,SAAS,MAAM;AACf,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC;AACjC,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACrC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5B,cAAc,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,cAAc,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7F,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,YAAY,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACnF,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,sBAAsB,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;AACtD,KAAK;AACL,IAAI,IAAI,iBAAiB,IAAI,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACzD,KAAK,MAAM;AACX,MAAM,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AAC3C,MAAM,IAAI,mBAAmB,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AACzD,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC1C,QAAQ,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrF,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,UAAU,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAC7D,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;AACnD,UAAU,IAAI,kBAAkB,GAAG,cAAc,CAAC;AAClD,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACtE,UAAU,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC5C,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,GAAG,GAAG,EAAE,CAAC;AACnB,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,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;AAClQ,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;AACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,GAAG,IAAI,mCAAmC,CAAC;AAC3D,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,uCAAuC,CAAC;AAC/D,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,cAAc,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxH,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,WAAW;AACX,UAAU,IAAI,KAAK,GAAG,GAAG,CAAC;AAC1B,UAAU,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACjC,UAAU,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAClD;AACA,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1B,cAAc,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACvE,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC5E,aAAa;AACb,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC5H,WAAW;AACX,UAAU,cAAc,GAAG,kBAAkB,CAAC;AAC9C,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,UAAU,CAAC;AAC9B,WAAW;AACX,SAAS;AACT,OAAO,MAAM,IAAI,mBAAmB,EAAE;AACtC,QAAQ,IAAI,iBAAiB,IAAI,SAAS,EAAE;AAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;AACpD,UAAU,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AAC/C,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AACtD,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;AACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;AACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACzE,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;AACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,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;AACnO,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AAC/D,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;AACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;AACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACzE,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;AACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC7C,MAAM,cAAc,IAAI,GAAG,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAC9D,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC;AAC3B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACzC,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACvD,YAAY,SAAS,GAAG,KAAK,GAAG,KAAK;AACrC,YAAY,WAAW,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;AACrE,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAC/C,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1F,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC3E,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACpE,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;AACrC,WAAW,MAAM;AACjB,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;AACrC,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC;AACtE,WAAW;AACX,UAAU,IAAI,WAAW,EAAE;AAC3B,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACvC,WAAW,MAAM;AACjB,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;AAC9D,cAAc,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC/D,cAAc,IAAI,cAAc,EAAE;AAClC,gBAAgB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACxI,eAAe;AACf,cAAc,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;AAC1D,cAAc,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;AAClD,gBAAgB,kBAAkB,GAAG,cAAc;AACnD,gBAAgB,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AACtE,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtG,eAAe;AACf,cAAc,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC;AAC9D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,GAAG,GAAG,EAAE,CAAC;AACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC7C,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;AACpP,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAChD,kBAAkB,GAAG,IAAI,gBAAgB,CAAC;AAC1C,kBAAkB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACtD,oBAAoB,GAAG,IAAI,wBAAwB,CAAC;AACpD,mBAAmB,MAAM;AACzB,oBAAoB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC9F,mBAAmB;AACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3J,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;AAC9B,eAAe;AACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AACtD;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;AAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3E,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAChF,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAChI,eAAe;AACf,cAAc,cAAc,GAAG,kBAAkB,CAAC;AAClD,cAAc,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AAC/C,cAAc,GAAG,IAAI,YAAY,CAAC;AAClC,aAAa,MAAM;AACnB,cAAc,IAAI,aAAa,EAAE;AACjC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AACjE,gBAAgB,IAAI,cAAc,EAAE;AACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1I,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,oBAAoB,CAAC;AACpE,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAChE,gBAAgB,IAAI,cAAc,EAAE;AACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1I,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;AAC/B,eAAe;AACf,aAAa;AACb,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;AACzC,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACjD,UAAU,cAAc,IAAI,GAAG,CAAC;AAChC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC;AAC9B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClG,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC5G,UAAU,IAAI,cAAc,EAAE;AAC9B,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;AAC9Q,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AACrF,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxF,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACnD,YAAY,cAAc,IAAI,GAAG,CAAC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC7UA,iBAAc,GAAG,SAAS,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC1E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACzC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AAC3B,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI;AACzB,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI;AACrB,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO;AAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AACjD,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ;AACnC,MAAM,eAAe,GAAG,gBAAgB,GAAG,IAAI;AAC/C,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;AAC5C,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AACjC,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,gBAAgB,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,cAAc,EAAE;AACxB,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;AACxQ,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK;AACL,IAAI,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;AACrD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,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;AACvM,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACxO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,kCAAkC,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;AAC1F,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC/EA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAE9G,GAEG;AACH,EAAE,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AACjC,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,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;AACnH,MAAM,IAAI,SAAS,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC;AACzB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,EAAE,GAAG,EAAE,EAAE;AACxB,UAAU,SAAS,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,UAAU,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,UAAU,IAAI,EAAE,YAAY,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC1L,YAAY,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACpD,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE;AACnC,IAAI,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;AACxC,MAAM,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY;AACzE,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7C,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5C,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAChD,QAAQ,IAAI,OAAO,EAAE;AACrB,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;AACrK,SAAS;AACT,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;AAC7L,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAClH,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;AACpD,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC/C,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;AAC7B,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC5D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,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;AACrI,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;AAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,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;AACxJ,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAClG,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,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;AAChP,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;AACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,GAAG,IAAI,wBAAwB,CAAC;AAChD,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC1F,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,cAAc,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACvJ,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,WAAW;AACX,UAAU,GAAG,IAAI,yFAAyF,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC/I,SAAS;AACT,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;AAC9K,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAClH,SAAS;AACT,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,GAAG,IAAI,kFAAkF,CAAC;AAClG,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;AAC7B,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,aAAa;AACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC7D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC3C,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;AAClP,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9C,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACpD,kBAAkB,GAAG,IAAI,wBAAwB,CAAC;AAClD,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5F,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe;AACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACzJ,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;AACpG,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACrC,GAAG,MAAM,IAAI,aAAa,EAAE;AAC5B,IAAI,GAAG,IAAI,cAAc,CAAC;AAC1B,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC5QA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC7D,IAAI,IAAI,OAAO,EAAE;AACjB,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;AACtO,KAAK;AACL,IAAI,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,MAAM,CAAC,GAAG,4BAA4B,CAAC;AAC1F,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;AAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9C,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;AAChK,MAAM,GAAG,IAAI,sDAAsD,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,+BAA+B,CAAC;AAC5J,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,wDAAwD,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;AAC1F,MAAM,IAAI,OAAO,GAAG,eAAe,IAAI,YAAY,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAChE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC;AAC3G,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,GAAG,IAAI,uDAAuD,CAAC;AACvE,OAAO;AACP,MAAM,GAAG,IAAI,iDAAiD,IAAI,MAAM,CAAC,GAAG,qEAAqE,CAAC;AAClJ,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,KAAK;AACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACxM,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,uGAAuG,CAAC;AACvH,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,cAAc,CAAC;AAC9B,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACnD,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC1G,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACnFA;AACA,SAAc,GAAG;AACjB,EAAE,MAAM,EAAEb,GAAgB;AAC1B,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,KAAK,EAAEa,KAAkB;AAC3B,EAAE,UAAU,EAAEC,OAAoB;AAClC,EAAE,KAAK,EAAEC,MAAkB;AAC3B,EAAE,QAAQ,EAAEC,QAAqB;AACjC,EAAE,YAAY,EAAEC,YAAyB;AACzC,EAAE,MAAM,EAAEC,KAAiB;AAC3B,EAAE,MAAM,EAAEC,MAAmB;AAC7B,EAAE,IAAI,EAAEC,GAAe;AACvB,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,OAAO,EAAEC,MAAmB;AAC9B,EAAE,OAAO,EAAEA,MAAmB;AAC9B,EAAE,QAAQ,EAAEC,WAAwB;AACpC,EAAE,QAAQ,EAAEA,WAAwB;AACpC,EAAE,SAAS,EAAEC,YAAyB;AACtC,EAAE,SAAS,EAAEA,YAAyB;AACtC,EAAE,aAAa,EAAEC,gBAA6B;AAC9C,EAAE,aAAa,EAAEA,gBAA6B;AAC9C,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,GAAG,EAAEC,GAAgB;AACvB,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,OAAO,EAAEC,OAAoB;AAC/B,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,aAAa,EAAEC,aAA0B;AAC3C,EAAE,QAAQ,EAAEC,QAAqB;AACjC,EAAE,WAAW,EAAEC,WAAwB;AACvC,EAAE,QAAQ,EAAEC,QAAqB;AACjC,CAAC;;AC9BD,IACIC,QAAM,GAAGpC,IAAiB,CAAC,MAAM,CAAC;AACtC;AACA,SAAc,GAAG,SAAS,KAAK,GAAG;AAClC,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE;AAClD,eAAe,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;AAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AAChE,IAAI,EAAE,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;AAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe;AAC5F,eAAe,EAAE,YAAY,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE;AAClF,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;AAClF,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACnC,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;AACtD,IAAI,aAAa,EAAE,SAAS,EAAE,aAAa;AAC3C,IAAI,UAAU,EAAE,UAAU,EAAE,WAAW;AACvC,IAAI,kBAAkB,EAAE,iBAAiB;AACzC,IAAI,iBAAiB,EAAE,MAAM,EAAE,MAAM;AACrC,GAAG,CAAC;AACJ,EAAE,IAAI,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACtF,EAAE,KAAK,CAAC,GAAG,GAAGoC,QAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,EAAE,KAAK,CAAC,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACjC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;AACrD,MAAM,IAAI,YAAY,CAAC;AACvB,MAAM,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACtC,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,OAAO,GAAG,GAAG,CAAC;AACtB,QAAQ,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AACtC,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,IAAI,EAAEC,KAAW,CAAC,OAAO,CAAC;AAClC,QAAQ,UAAU,EAAE,YAAY;AAChC,OAAO,CAAC;AACR,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG;AACzB,MAAM,OAAO,EAAE,UAAU;AACzB,MAAM,IAAI,EAAEA,KAAW,CAAC,QAAQ;AAChC,KAAK,CAAC;AACN;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACpD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,KAAK,CAAC,QAAQ,GAAGD,QAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;;AC/DD,IAAI,QAAQ,GAAG;AACf,EAAE,YAAY;AACd,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,iBAAiB;AACnB,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,UAAU;AACZ,EAAE,sBAAsB;AACxB,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,CAAC,CAAC;AACF;AACA,QAAc,GAAG,UAAU,UAAU,EAAE,oBAAoB,EAAE;AAC7D,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC9B,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC;AACA,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG;AACxB,UAAU,KAAK,EAAE;AACjB,YAAY,MAAM;AAClB,YAAY,EAAE,IAAI,EAAE,gFAAgF,EAAE;AACtG,WAAW;AACX,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;;AC9CD,IAAIE,iBAAe,GAAGtC,aAA0B,CAAC,UAAU,CAAC;AAC5D;AACA,SAAc,GAAG,YAAY,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9C;AACA;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC/D;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,GAAG,SAAS,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY;AACpD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7D,IAAI,OAAO,SAAS,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1D,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,CAAC,CAAC,IAAI;AACV,MAAM,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,MAAM,QAAQ;AACd,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX;AACA;AACA,EAAE,SAAS,gBAAgB,CAAC,GAAG,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC9C,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;AAC9D,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC;AAChC,GAAG;AACH;AACA;AACA,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE;AACpC,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;AAC5C,IAAI,MAAM,CAAC,EAAE;AACb,MAAM,IAAI,CAAC,YAAYsC,iBAAe,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL;AACA;AACA,IAAI,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAClC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC;AAChC,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;AACA,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,QAAQ,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/E,QAAQ,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACzD,OAAO;AACP;AACA,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACzB,UAAU,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;AACxD,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACvE,WAAW,CAAC,CAAC;AACb,SAAS;AACT,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;AACzB,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AACxC,OAAO,CAAC,CAAC;AACT;AACA,MAAM,SAAS,aAAa,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACzC,OAAO;AACP;AACA,MAAM,SAAS,KAAK,CAAC,GAAG,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACrD,OAAO;AACP,KAAK;AACL,GAAG;AACH;;ACxFA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,IAAI,WAAW,GAAG,YAAY,GAAG,IAAI;AACrC,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU;AAC5B,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;AAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAI,aAAa,GAAG,iBAAiB,GAAG,IAAI,CAAC;AAC7C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;AAC/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;AACzJ,GAAG,MAAM;AACT,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO;AAC/B,IAAI,YAAY,GAAG,iBAAiB,GAAG,WAAW,CAAC;AACnD,IAAI,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;AACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,aAAa,GAAG,SAAS;AAC3C,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AACnB,IAAI,QAAQ,GAAG,SAAS,GAAG,IAAI;AAC/B,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC,EAAE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClF,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE;AAC5B,IAAI,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,UAAU,CAAC;AACzC,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAI,cAAc,IAAI,GAAG,CAAC;AAC1B,IAAI,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC7F,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,cAAc,IAAI,GAAG,CAAC;AAC5B,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;AAC1H,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,GAAG,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAClD,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACtE,KAAK;AACL,GAAG,MAAM,IAAI,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC;AAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AAChB,IAAI,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACzC,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;AACxC,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAC7E,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC;AACzB,GAAG,MAAM;AACT,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,IAAI,IAAI,aAAa,CAAC,GAAG,SAAS,CAAC;AAC9C,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAC5C,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;AACrG,KAAK;AACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;AAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,iBAAiB,CAAC;AACrF,IAAI,IAAI,oBAAoB,GAAG,GAAG,CAAC;AACnC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAChC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC;AACpC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,OAAO;AACP,MAAM,GAAG,IAAI,EAAE,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;AAC1C,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;AAC5O,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAClG,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE;AACvB,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;AACjH,GAAG;AACH,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,CAAC;AAC/B,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,QAAQ,CAAC;AACpB,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;AACnC,MAAM,GAAG,IAAI,IAAI,CAAC;AAClB,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,GAAG,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AAC9O,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;AAC3F,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,eAAe,GAAG,GAAG,CAAC;AAC9B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;AACpC,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;AAC/X,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/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;AACtH,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AACpC,UAAU,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AAC/C,SAAS,MAAM;AACf,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;AACnc,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/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;AACtH,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,OAAO;AACP,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,GAAG,IAAI,iBAAiB,CAAC;AAC/B,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,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;AAChP,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;AAC7F,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACnJ,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,GAAG,IAAI,8EAA8E,CAAC;AAC5F,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,uCAAuC,CAAC;AACzD,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,4CAA4C,CAAC;AAC9D,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,QAAQ,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AAC7C,OAAO,MAAM;AACb,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;AACtf,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,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;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,cAAc,IAAI,eAAe,CAAC,GAAG,KAAK,CAAC;AAC1D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/NA,qBAAc,GAAG;AACjB,EAAE,GAAG,EAAE,2EAA2E;AAClF,EAAE,WAAW,EAAE;AACf,IAAI,WAAW,EAAEC,UAAU,CAAC,WAAW,CAAC,WAAW;AACnD,GAAG;AACH,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,YAAY,EAAE;AAChB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC;AACxB,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC;AACvB,IAAI,UAAU,EAAE,CAAC,QAAQ,CAAC;AAC1B,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEA,UAAU,CAAC,UAAU,CAAC,IAAI;AACpC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC7B,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AACjC,IAAI,YAAY,EAAE;AAClB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAChC,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,MAAM,EAAE;AACZ,MAAM,KAAK,EAAE;AACb,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;AACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;AACvB,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AClCD,IAAIC,YAAU,GAAG,wBAAwB,CAAC;AACK;AACO;AACtD;AACA,WAAc,GAAG;AACjB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,QAAQ,EAAE,eAAe;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;AACzC;AACA;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,qBAAqB,CAAC,CAAC;AAClE;AACA,EAAE,IAAI,CAACA,YAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,4BAA4B,CAAC,CAAC;AACzE;AACA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C;AACA,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACjC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AAC1C,QAAQ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAChD,QAAQ,UAAU,GAAG;AACrB,UAAU,KAAK,EAAE;AACjB,YAAY,UAAU;AACtB,YAAY,EAAE,MAAM,EAAE,gFAAgF,EAAE;AACxG,WAAW;AACX,SAAS,CAAC;AACV,OAAO;AACP,MAAM,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjE,KAAK;AACL,GAAG;AACH;AACA,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACtD;AACA;AACA,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;AACnD,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;AAC/B,QAAQ,SAAS,GAAG,EAAE,CAAC;AACvB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAChD,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG;AACf,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,IAAI,EAAEC,MAAc;AAC1B,MAAM,UAAU,EAAE,UAAU,CAAC,UAAU;AACvC,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;AACxE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;AACvC,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;AACjD,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;AAChC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AACvD,qCAAqC,IAAI,CAAC,OAAO,CAACC,iBAAgB,EAAE,IAAI,CAAC,CAAC;AAC1E;AACA,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI,CAAC;AACjC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACpC,EAAE,IAAI,UAAU;AAChB,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3F;AACA,IAAI,OAAO,KAAK,CAAC;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIA,OAAc,GAAG,GAAG,CAAC;AACrB;AACA,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAGjC,UAAQ,CAAC;AAClC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAGkC,SAAO,CAAC;AAChC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;AAC9C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;AAC1C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC;AACA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC;AACA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG3C,KAA0B,CAAC;AACf;AACzC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG4C,OAAa,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC,SAAS,CAAC,UAAU,GAAGA,OAAa,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC,SAAS,CAAC,aAAa,GAAGA,OAAa,CAAC,MAAM,CAAC;AACnD,GAAG,CAAC,SAAS,CAAC,eAAe,GAAGA,OAAa,CAAC,QAAQ,CAAC;AACvD;AACsD;AACtD,GAAG,CAAC,eAAe,GAAGrC,aAAY,CAAC,UAAU,CAAC;AAC9C,GAAG,CAAC,eAAe,GAAGA,aAAY,CAAC,UAAU,CAAC;AAC9C,GAAG,CAAC,eAAe,GAAGsC,IAAe,CAAC;AACtC;AACA,IAAI,cAAc,GAAG,wCAAwC,CAAC;AAC9D;AACA,IAAI,mBAAmB,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACjG,IAAI,iBAAiB,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,CAAC,IAAI,EAAE;AACnB,EAAE,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5C,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,QAAQ,GAAGC,SAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAIC,KAAK,CAAC;AACxC,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;AACpD,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AAC3E,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,IAAI,CAAC,SAAS,GAAGrC,uBAAe,CAAC;AACrE,EAAE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5C,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC9C,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,UAAQ,CAAC,YAAY,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;AACvC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;AAChF,GAAG,MAAM;AACT,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAClD,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkC,SAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AAChC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5D,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE;AACxD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5B,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;AACrG,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,EAAE,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ;AAC/C,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,EAAE,GAAG,GAAGlG,SAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACvC,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;AACpD,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AACjD,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,EAAE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ;AACzD,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACnE,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5D,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvE,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ;AAClD,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;AACvD,8BAA8B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC5D,gCAAgC,cAAc;AAC9C,gCAAgC,SAAS,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAChC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,EAAE,QAAQ,OAAO,SAAS;AAC1B,IAAI,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzE,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpD,IAAI,KAAK,WAAW,EAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9D,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;AACvC,EAAE,IAAI,GAAG,GAAGA,SAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC3D,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;AAC3B,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI;AACvB,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,CAAC,GAAGuG,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI9C,UAAY,CAAC;AAC5C,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,QAAQ,EAAE,CAAC;AACjB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,MAAM,GAAGzD,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACvC,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,YAAY,EAAE;AACpC,EAAE,IAAI,YAAY,YAAY,MAAM,EAAE;AACtC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzD,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,OAAO,YAAY;AAC7B,IAAI,KAAK,WAAW;AACpB,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1B,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACxD,MAAM,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACtC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,MAAM,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACxE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9B,OAAO;AACP,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;AACjD,EAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC9B,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;AACnE,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AAC7D,IAAI,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC1D,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACvC,EAAE,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACxD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,EAAE,OAAO,MAAM,CAAC;AAC5B;AACA,EAAE,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC;AAC1E;AACA,EAAE,IAAI,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;AAC5E,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,YAAY,IAAI,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,IAAIA,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxF,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC;AACA,EAAE,IAAI,SAAS,GAAGA,SAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD;AACA,EAAE,IAAI,SAAS,GAAG,IAAIyD,UAAY,CAAC;AACnC,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,IAAI,EAAE,IAAI;AACd,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAClE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,YAAY,IAAI,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvE;AACA,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE;AAC3B,IAAI,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC;AACtC,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;AACnD,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;AACxC,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B;AACA,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE;AACtB,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,EAAE,CAAC,GAAG8C,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE;AACpF,EAAE,MAAM,CAAC,EAAE;AACX,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC;AAC9B,IAAI,MAAM,CAAC,CAAC;AACZ,GAAG;AACH,UAAU;AACV,IAAI,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AACjD,GAAG;AACH;AACA,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC9B,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX;AACA;AACA;AACA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,QAAQ,IAAI,CAAC,QAAQ;AACvB,IAAI,KAAK,MAAM,EAAE,OAAO,WAAW,CAAC;AACpC,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAC7B,IAAI,SAAS,OAAO,OAAO,CAAC;AAC5B,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACrE,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AACD;AACA;AACA,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAClE,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AACxD,IAAI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACvD,EAAE,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;AACjC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,WAAW,CAAC;AAClC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAC7E,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AACzE;AACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;AACtE,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7D,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC/B,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACxB,IAAI,WAAW,GAAG,UAA2B,CAAC;AAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,OAAO;AACxC,EAAE,IAAI,UAAU,GAAG,UAA2C,CAAC;AAC/D,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAGH,IAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpF,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,cAAc,CAAC;AAC/D,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACvC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO;AAC3B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC9D,OAAO,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1E,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjC,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACxC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE;AAC/B,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACzC,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;AACzE,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE;AACjD,IAAI,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACjC,EAAE,IAAI,MAAM,KAAK,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,GAAG,MAAM;AACT,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;AAC/C,IAAI,IAAI,EAAE,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;AACjF,MAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,IAAI,GAAG;;mBCnfO;QAEjBI,KAAG,OAAOC;eAAiB;;;;+BAGED,YAAA;;;;kCAIV;;;;;;;AAKrB,QAAA,yBAAA;;AAED;;;;;;;AASH,MAAM,4DAAN;;;YAIa;;;iBAGJ;;;;;;AAAA;;;;;;;;;;;;;;;;;;;oBAkCG;;;sBAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2CA;;;;;AAON,kBAAQ;;;;;;;;;;;;;;;;;;;;;;sBA0BA;;kBAEF;;;;;;;;;;;;sDC5IF;;;;;AAOR,cAAU,qDAAV;;;;8CAMkB,kBAAA;;;;;;mCAamB;;;;;;;;;;;;;kBAYvB,0GAAA;;;;;AAMV,sCAAA;;;AAKF,QAAA,YAAY,WAAZ;QACA,UAAA,EAAY;;;;aAEL;;;;sBAIc,UAAA,EAExB,SAFwB;;;;;;;;;;;;;;;AC/DzB;;AACA,IAAI,IAAI,GAAA,CAAA,EAAA,aAAA,UAAA,iBAAA,SAAA,UAAR;;IACE;qFACG;WACa;;AACZ,IAAA,YAAA;;;;;;;;;;;;;;YAgBW;;;;QAEb,MAAM;;;AAGR,+CAA2C,WAAA,KAAA,IAA3C;;;;QAKE,aAAaE,wBAAI,CAAC,OAAD;;YAKf,qBAAqB,OAAO,KAAK;yBAAA;;;;;AAenC,4BAAoB,GAAA,CAAA,EAAA,+BAAA,MAA+B,IAA/B,IAA+B,EAAA,KAAA,KAAA,CAA/B,GAA+B,EAA/B,GAAmC,EAAvD;uBACa;;;;;KAhBsB;;;wBAyB3B,IAAI,CAAC,OAAL,CAAa,QAAb,CAAsB,SAAS,IAAI;;;iBAEtC;;;wCAI2B;;8BAEV,YAAA,SAAA,MAAA;;;AACpB;AAEA,YAAA,IAAI,QAAJ,SAAA,OAAA,CAA6B,GAA7B,GAAA,0BAAA;;;;KApCiC;;;2BA4C5B,YAAA;;;;;;+BAKI;;;;uCAM+B;;;;;;;;;;;;;4BAmBhC,GAAG,IAAI,OAAJ,CAAY,OAAZ;gDAGN;;;+BAIY,SAAS;;;gCAKJ;;;;AAKpB,qCAAA;;+EAOM,QAAQ,CAAR,GAAY,WAAZ;;;;;;AAMV;AACA,iCAAA;;OAzGmC;;oBAiH7B,qBAAqB;iBACtB;KAlH8B;;;AAuHrC,0BAAsB,CAAA,mBAAtB;4EAGoB,gBAAA;KA1HiB;;;;AAkIjC,uBAAiB,WAAmC,WAChD,CADJ,EACO,OAAO,IAAI,QAAJ,CAAa,UAApB;KAnI0B;;AAwInC;;;QACA,qDAAU,QAAV;0BACgB;;;;;;;;;;;SAkBf,OAAA;;;;;;;eAOO;AACX;;6CAcO,iBAAW;;kBAEF;;AAIf,kCAAA;kBACY;QACV,IAAI,KAAA,IAAJ,IAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAA,IAAI;;;;;;;;;;;;kDAwBO;;4BAEO;;wCACU;YAC1B;;;;;;;;AAOL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/ainsley.mjs b/dist/ainsley.mjs index 7391b07..2783d7f 100644 --- a/dist/ainsley.mjs +++ b/dist/ainsley.mjs @@ -163,11 +163,6 @@ const ainsleyRuleToAst = (ainsleyRule, options, variables) => { const iterator = iteratorAndType[0]; const location = iteratorAndType[1]; const variableName = iterator.slice(1, -1); - - if (!(variableName in variables)) { - console.log(variables, variableName); - } - return Object.keys(variables[variableName]).map(abbreviation => [iterator, abbreviation, variables[variableName][abbreviation], location]); })).map(combination => { let combinationIndex = 0; @@ -246,7 +241,7 @@ function getCjsExportFromNamespace (n) { } var uri_all = createCommonjsModule(function (module, exports) { -/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ +/** @license URI.js v4.4.0 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ (function (global, factory) { factory(exports) ; }(commonjsGlobal, (function (exports) { @@ -1169,9 +1164,9 @@ function _recomposeAuthority(components, options) { return "[" + $1 + ($2 ? "%25" + $2 : "") + "]"; })); } - if (typeof components.port === "number") { + if (typeof components.port === "number" || typeof components.port === "string") { uriTokens.push(":"); - uriTokens.push(components.port.toString(10)); + uriTokens.push(String(components.port)); } return uriTokens.length ? uriTokens.join("") : undefined; } @@ -1374,8 +1369,9 @@ var handler = { return components; }, serialize: function serialize(components, options) { + var secure = String(components.scheme).toLowerCase() === "https"; //normalize the default port - if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") { + if (components.port === (secure ? 443 : 80) || components.port === "") { components.port = undefined; } //normalize the empty path @@ -1396,6 +1392,57 @@ var handler$1 = { serialize: handler.serialize }; +function isSecure(wsComponents) { + return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss"; +} +//RFC 6455 +var handler$2 = { + scheme: "ws", + domainHost: true, + parse: function parse(components, options) { + var wsComponents = components; + //indicate if the secure flag is set + wsComponents.secure = isSecure(wsComponents); + //construct resouce name + wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : ''); + wsComponents.path = undefined; + wsComponents.query = undefined; + return wsComponents; + }, + serialize: function serialize(wsComponents, options) { + //normalize the default port + if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") { + wsComponents.port = undefined; + } + //ensure scheme matches secure flag + if (typeof wsComponents.secure === 'boolean') { + wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws'; + wsComponents.secure = undefined; + } + //reconstruct path from resource name + if (wsComponents.resourceName) { + var _wsComponents$resourc = wsComponents.resourceName.split('?'), + _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), + path = _wsComponents$resourc2[0], + query = _wsComponents$resourc2[1]; + + wsComponents.path = path && path !== '/' ? path : undefined; + wsComponents.query = query; + wsComponents.resourceName = undefined; + } + //forbid fragment component + wsComponents.fragment = undefined; + return wsComponents; + } +}; + +var handler$3 = { + scheme: "wss", + domainHost: handler$2.domainHost, + parse: handler$2.parse, + serialize: handler$2.serialize +}; + var O = {}; //RFC 3986 var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + ( "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" ) + "]"; @@ -1425,7 +1472,7 @@ function decodeUnreserved(str) { var decStr = pctDecChars(str); return !decStr.match(UNRESERVED) ? str : decStr; } -var handler$2 = { +var handler$4 = { scheme: "mailto", parse: function parse$$1(components, options) { var mailtoComponents = components; @@ -1513,7 +1560,7 @@ var handler$2 = { var URN_PARSE = /^([^\:]+)\:(.*)/; //RFC 2141 -var handler$3 = { +var handler$5 = { scheme: "urn", parse: function parse$$1(components, options) { var matches = components.path && components.path.match(URN_PARSE); @@ -1552,7 +1599,7 @@ var handler$3 = { var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; //RFC 4122 -var handler$4 = { +var handler$6 = { scheme: "urn:uuid", parse: function parse(urnComponents, options) { var uuidComponents = urnComponents; @@ -1576,6 +1623,8 @@ SCHEMES[handler$1.scheme] = handler$1; SCHEMES[handler$2.scheme] = handler$2; SCHEMES[handler$3.scheme] = handler$3; SCHEMES[handler$4.scheme] = handler$4; +SCHEMES[handler$5.scheme] = handler$5; +SCHEMES[handler$6.scheme] = handler$6; exports.SCHEMES = SCHEMES; exports.pctEncChar = pctEncChar; @@ -1674,8 +1723,6 @@ var util = { ucs2length: ucs2length, varOccurences: varOccurences, varReplace: varReplace, - cleanUpCode: cleanUpCode, - finalCleanUpCode: finalCleanUpCode, schemaHasRules: schemaHasRules, schemaHasRulesExcept: schemaHasRulesExcept, schemaUnknownRules: schemaUnknownRules, @@ -1697,7 +1744,7 @@ function copy(o, to) { } -function checkDataType(dataType, data, negate) { +function checkDataType(dataType, data, strictNumbers, negate) { var EQUAL = negate ? ' !== ' : ' === ' , AND = negate ? ' || ' : ' && ' , OK = negate ? '!' : '' @@ -1710,15 +1757,18 @@ function checkDataType(dataType, data, negate) { NOT + 'Array.isArray(' + data + '))'; case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + NOT + '(' + data + ' % 1)' + - AND + data + EQUAL + data + ')'; + AND + data + EQUAL + data + + (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; + case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' + + (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; } } -function checkDataTypes(dataTypes, data) { +function checkDataTypes(dataTypes, data, strictNumbers) { switch (dataTypes.length) { - case 1: return checkDataType(dataTypes[0], data, true); + case 1: return checkDataType(dataTypes[0], data, strictNumbers, true); default: var code = ''; var types = toHash(dataTypes); @@ -1731,7 +1781,7 @@ function checkDataTypes(dataTypes, data) { } if (types.number) delete types.integer; for (var t in types) - code += (code ? ' && ' : '' ) + checkDataType(t, data, true); + code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true); return code; } @@ -1797,42 +1847,6 @@ function varReplace(str, dataVar, expr) { } -var EMPTY_ELSE = /else\s*{\s*}/g - , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g - , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g; -function cleanUpCode(out) { - return out.replace(EMPTY_ELSE, '') - .replace(EMPTY_IF_NO_ELSE, '') - .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))'); -} - - -var ERRORS_REGEXP = /[^v.]errors/g - , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g - , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g - , RETURN_VALID = 'return errors === 0;' - , RETURN_TRUE = 'validate.errors = null; return true;' - , RETURN_ASYNC = /if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/ - , RETURN_DATA_ASYNC = 'return data;' - , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g - , REMOVE_ROOTDATA = /if \(rootData === undefined\) rootData = data;/; - -function finalCleanUpCode(out, async) { - var matches = out.match(ERRORS_REGEXP); - if (matches && matches.length == 2) { - out = async - ? out.replace(REMOVE_ERRORS_ASYNC, '') - .replace(RETURN_ASYNC, RETURN_DATA_ASYNC) - : out.replace(REMOVE_ERRORS, '') - .replace(RETURN_VALID, RETURN_TRUE); - } - - matches = out.match(ROOTDATA_REGEXP); - if (!matches || matches.length !== 3) return out; - return out.replace(REMOVE_ROOTDATA, ''); -} - - function schemaHasRules(schema, rules) { if (typeof schema == 'boolean') return !schema; for (var key in schema) if (rules[key]) return true; @@ -1911,7 +1925,7 @@ function getData($data, lvl, paths) { function joinPaths (a, b) { if (a == '""') return b; - return (a + ' + ' + b).replace(/' \+ '/g, ''); + return (a + ' + ' + b).replace(/([^\\])' \+ '/g, '$1'); } @@ -2533,47 +2547,39 @@ var validate = function generate_validate(it, $keyword, $ruleType) { var $schemaPath = it.schemaPath + '.type', $errSchemaPath = it.errSchemaPath + '/type', $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { '; + out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { '; if ($coerceToTypes) { var $dataType = 'dataType' + $lvl, $coerced = 'coerced' + $lvl; - out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; '; + out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; '; if (it.opts.coerceTypes == 'array') { - out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; '; + out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } '; } - out += ' var ' + ($coerced) + ' = undefined; '; - var $bracesCoercion = ''; + out += ' if (' + ($coerced) + ' !== undefined) ; '; var arr1 = $coerceToTypes; if (arr1) { var $type, $i = -1, l1 = arr1.length - 1; while ($i < l1) { $type = arr1[$i += 1]; - if ($i) { - out += ' if (' + ($coerced) + ' === undefined) { '; - $bracesCoercion += '}'; - } - if (it.opts.coerceTypes == 'array' && $type != 'array') { - out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } '; - } if ($type == 'string') { - out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; + out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; } else if ($type == 'number' || $type == 'integer') { - out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; + out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; if ($type == 'integer') { out += ' && !(' + ($data) + ' % 1)'; } out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; } else if ($type == 'boolean') { - out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; + out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; } else if ($type == 'null') { - out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; + out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; } else if (it.opts.coerceTypes == 'array' && $type == 'array') { - out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; + out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; } } } - out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { '; + out += ' else { '; var $$outStack = $$outStack || []; $$outStack.push(out); out = ''; /* istanbul ignore else */ @@ -2613,7 +2619,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) { } else { out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; } - out += ' } else { '; + out += ' } if (' + ($coerced) + ' !== undefined) { '; var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; out += ' ' + ($data) + ' = ' + ($coerced) + '; '; @@ -2686,7 +2692,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) { $rulesGroup = arr2[i2 += 1]; if ($shouldUseGroup($rulesGroup)) { if ($rulesGroup.type) { - out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { '; + out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { '; } if (it.opts.useDefaults) { if ($rulesGroup.type == 'object' && it.schema.properties) { @@ -2854,10 +2860,6 @@ var validate = function generate_validate(it, $keyword, $ruleType) { } else { out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; } - out = it.util.cleanUpCode(out); - if ($top) { - out = it.util.finalCleanUpCode(out, $async); - } function $shouldUseGroup($rulesGroup) { var rules = $rulesGroup.rules; @@ -2983,7 +2985,7 @@ function compile(schema, root, localRefs, baseId) { + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode; - if (opts.processCode) sourceCode = opts.processCode(sourceCode); + if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); var validate$1; try { @@ -3586,7 +3588,6 @@ var allOf = function generate_allOf(it, $keyword, $ruleType) { out += ' ' + ($closingBraces.slice(0, -1)) + ' '; } } - out = it.util.cleanUpCode(out); return out; }; @@ -3655,7 +3656,6 @@ var anyOf = function generate_anyOf(it, $keyword, $ruleType) { if (it.opts.allErrors) { out += ' } '; } - out = it.util.cleanUpCode(out); } else { if ($breakOnError) { out += ' if (true) { '; @@ -3808,7 +3808,6 @@ var contains = function generate_contains(it, $keyword, $ruleType) { if (it.opts.allErrors) { out += ' } '; } - out = it.util.cleanUpCode(out); return out; }; @@ -3830,6 +3829,7 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) { $propertyDeps = {}, $ownProperties = it.opts.ownProperties; for ($property in $schema) { + if ($property == '__proto__') continue; var $sch = $schema[$property]; var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; $deps[$property] = $sch; @@ -3976,7 +3976,6 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -4287,7 +4286,6 @@ var _if = function generate_if(it, $keyword, $ruleType) { if ($breakOnError) { out += ' else { '; } - out = it.util.cleanUpCode(out); } else { if ($breakOnError) { out += ' if (true) { '; @@ -4433,7 +4431,6 @@ var items = function generate_items(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -4462,6 +4459,12 @@ var _limit = function generate__limit(it, $keyword, $ruleType) { $op = $isMax ? '<' : '>', $notOp = $isMax ? '>' : '<', $errorKeyword = undefined; + if (!($isData || typeof $schema == 'number' || $schema === undefined)) { + throw new Error($keyword + ' must be number'); + } + if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) { + throw new Error($exclusiveKeyword + ' must be number or boolean'); + } if ($isDataExcl) { var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), $exclusive = 'exclusive' + $lvl, @@ -4612,6 +4615,9 @@ var _limitItems = function generate__limitItems(it, $keyword, $ruleType) { } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxItems' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -4689,6 +4695,9 @@ var _limitLength = function generate__limitLength(it, $keyword, $ruleType) { } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxLength' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -4771,6 +4780,9 @@ var _limitProperties = function generate__limitProperties(it, $keyword, $ruleTyp } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } var $op = $keyword == 'maxProperties' ? '>' : '<'; out += 'if ( '; if ($isData) { @@ -4847,6 +4859,9 @@ var multipleOf = function generate_multipleOf(it, $keyword, $ruleType) { } else { $schemaValue = $schema; } + if (!($isData || typeof $schema == 'number')) { + throw new Error($keyword + ' must be number'); + } out += 'var division' + ($lvl) + ';if ('; if ($isData) { out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; @@ -5158,9 +5173,9 @@ var properties = function generate_properties(it, $keyword, $ruleType) { $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = 'data' + $dataNxt, $dataProperties = 'dataProperties' + $lvl; - var $schemaKeys = Object.keys($schema || {}), + var $schemaKeys = Object.keys($schema || {}).filter(notProto), $pProperties = it.schema.patternProperties || {}, - $pPropertyKeys = Object.keys($pProperties), + $pPropertyKeys = Object.keys($pProperties).filter(notProto), $aProperties = it.schema.additionalProperties, $someProperties = $schemaKeys.length || $pPropertyKeys.length, $noAdditional = $aProperties === false, @@ -5170,7 +5185,13 @@ var properties = function generate_properties(it, $keyword, $ruleType) { $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId; var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required); + if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { + var $requiredHash = it.util.toHash($required); + } + + function notProto(p) { + return p !== '__proto__'; + } out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; if ($ownProperties) { out += ' var ' + ($dataProperties) + ' = undefined;'; @@ -5465,7 +5486,6 @@ var properties = function generate_properties(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -5547,7 +5567,6 @@ var propertyNames = function generate_propertyNames(it, $keyword, $ruleType) { if ($breakOnError) { out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; } - out = it.util.cleanUpCode(out); return out; }; @@ -5847,7 +5866,7 @@ var uniqueItems = function generate_uniqueItems(it, $keyword, $ruleType) { } else { out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; '; var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); - out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; '; + out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; '; if ($typeIsArray) { out += ' if (typeof item == \'string\') item = \'"\' + item; '; } @@ -6037,7 +6056,7 @@ var data = function (metaSchema, keywordsJsonPointers) { keywords[key] = { anyOf: [ schema, - { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' } + { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } ] }; } @@ -6630,7 +6649,7 @@ var jsonSchemaDraft07$1 = /*#__PURE__*/Object.freeze({ var require$$2 = getCjsExportFromNamespace(jsonSchemaDraft07$1); var definition_schema = { - $id: 'https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js', + $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js', definitions: { simpleTypes: require$$2.definitions.simpleTypes }, @@ -6709,7 +6728,7 @@ function addKeyword(keyword, definition) { metaSchema = { anyOf: [ metaSchema, - { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' } + { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } ] }; } @@ -6809,7 +6828,7 @@ function validateKeyword(definition, throwError) { } var $schema$1 = "http://json-schema.org/draft-07/schema#"; -var $id$1 = "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"; +var $id$1 = "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"; var description = "Meta-schema for $data reference (JSON Schema extension proposal)"; var type$1 = "object"; var required$1 = [ @@ -7356,7 +7375,7 @@ const validate$2 = maybeAinsley => { if (ajv$1.errors !== null && ajv$1.errors !== undefined) { // find lowest error and show that - const lowestLength = Infinity; + let lowestLength = Infinity; let lowestErrors = []; ajv$1.errors.forEach(error => { const pathLength = error.schemaPath.split('/').length; @@ -7365,6 +7384,7 @@ const validate$2 = maybeAinsley => { lowestErrors.push(formatError(error)); } else if (pathLength < lowestLength) { lowestErrors = [formatError(error)]; + lowestLength = pathLength; } }); return lowestErrors; @@ -7373,7 +7393,7 @@ const validate$2 = maybeAinsley => { } }; -const formatError = error => `Ainsley${error.dataPath}${error.message === undefined ? '' : ` ${error.message}`}`; // prettier-ignore +const formatError = error => `Ainsley${error.dataPath} is invalid`; // prettier-ignore const schema = { @@ -7553,6 +7573,7 @@ if (csso === undefined) { /* TODOs: - mangle variable names +- if a variable is an empty object, remove all uses of it - check if strings can be turnt into numbers */ @@ -7698,7 +7719,7 @@ const minifyRaw = rawCSS => { try { return csso.minify(rawCSS).css; } catch (error) { - if (csso && csso.minify) { + if (csso === null || csso === void 0 ? void 0 : csso.minify) { console.error(error); } else { console.warn('`csso` - an optional dependency - is not installed; inline CSS will not be minified'); diff --git a/dist/ainsley.mjs.map b/dist/ainsley.mjs.map index 1a17696..793b6aa 100644 --- a/dist/ainsley.mjs.map +++ b/dist/ainsley.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.mjs","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.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/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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\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 = [];\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 = [];\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(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(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(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\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || 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\";\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,\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 = {\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 = {\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 = {\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 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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\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= 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= 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%\\\\^`{|}]|%[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\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n const lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath}${\n error.message === undefined ? '' : ` ${error.message}`\n }`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso && csso.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["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","http","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","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","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","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.mjs","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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 = [];\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 = [];\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(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(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(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,\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 = {\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 = {\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 = {\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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\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 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, strictNumbers, 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 (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, 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, strictNumbers, 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= 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= 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%\\\\^`{|}]|%[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\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 if ($property == '__proto__') continue;\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\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) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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', it.opts.strictNumbers, 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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["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","URL","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","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":";;;;MAAa,QAAQ,GAAI,GAAD,eAGX,eAAe;MAEjB;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ACmCD,EAAA;;;2EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;IAAA,CANc;;;;;;;;;;kBAqCR,CAAC;;;WAGJ;;;;uBAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;mBAkBtB,YAAoB;oBACrB;;eAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChSb;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;;;;;;;;;;;;;;;;;;ACbD,SAAAA,KAAA,GAAA;sCAAyBC,IAAzB;YAAA;;;QACKA,KAAKC,MAAL,GAAc,CAAlB,EAAqB;aACf,CAAL,IAAUD,KAAK,CAAL,EAAQE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;YACMC,KAAKH,KAAKC,MAAL,GAAc,CAAzB;aACK,IAAIG,IAAI,CAAb,EAAgBA,IAAID,EAApB,EAAwB,EAAEC,CAA1B,EAA6B;iBACvBA,CAAL,IAAUJ,KAAKI,CAAL,EAAQF,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;;aAEIC,EAAL,IAAWH,KAAKG,EAAL,EAASD,KAAT,CAAe,CAAf,CAAX;eACOF,KAAKK,IAAL,CAAU,EAAV,CAAP;KAPD,MAQO;eACCL,KAAK,CAAL,CAAP;;;AAIF,SAAAM,MAAA,CAAuBC,GAAvB,EAAA;WACQ,QAAQA,GAAR,GAAc,GAArB;;AAGD,SAAAC,MAAA,CAAuBC,CAAvB,EAAA;WACQA,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;;AAGD,SAAAC,WAAA,CAA4BZ,GAA5B,EAAA;WACQA,IAAIY,WAAJ,EAAP;;AAGD,SAAAC,OAAA,CAAwBC,GAAxB,EAAA;WACQA,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;;AAID,SAAAG,MAAA,CAAuBC,MAAvB,EAAuCC,MAAvC,EAAA;QACOL,MAAMI,MAAZ;QACIC,MAAJ,EAAY;aACN,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;gBACrBC,GAAJ,IAAWD,OAAOC,GAAP,CAAX;;;WAGKN,GAAP;;;ACnCD,SAAAO,SAAA,CAA0BC,KAA1B,EAAA;QAEEC,UAAU,UADX;QAGCC,UAAU,OAHX;QAKCC,WAAWjC,MAAMgC,OAAN,EAAe,UAAf,CALZ;QAQCE,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;;mBASgB,yBAThB;QAUCE,eAAe,qCAVhB;QAWCC,aAAapC,MAAMqC,YAAN,EAAoBF,YAApB,CAXd;QAYCG,YAAYR,QAAQ,6EAAR,GAAwF,IAZrG;;iBAacA,QAAQ,mBAAR,GAA8B,IAb5C;;mBAcgB9B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,gBAAxB,EAA0CM,SAA1C,CAdhB;QAeCC,UAAUhC,OAAOwB,UAAU/B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,aAAxB,CAAV,GAAmD,GAA1D,CAfX;QAgBCQ,YAAYjC,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CAhBb;QAkBCO,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;;mBAmBgBzB,OAAOmC,qBAAqB,KAArB,GAA6BA,kBAA7B,GAAkD,KAAlD,GAA0DA,kBAA1D,GAA+E,KAA/E,GAAuFA,kBAA9F,CAnBhB;QAoBCC,OAAOpC,OAAO0B,WAAW,OAAlB,CApBR;QAqBCW,QAAQrC,OAAOA,OAAOoC,OAAO,KAAP,GAAeA,IAAtB,IAA8B,GAA9B,GAAoCE,YAA3C,CArBT;QAsBCC,gBAAgBvC,OAAmEA,OAAOoC,OAAO,KAAd,IAAuB,KAAvB,GAA+BC,KAAlG,CAtBjB;;oBAuBiBrC,OAAwD,WAAWA,OAAOoC,OAAO,KAAd,CAAX,GAAkC,KAAlC,GAA0CC,KAAlG,CAvBjB;;oBAwBiBrC,OAAOA,OAAwCoC,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAxBjB;;oBAyBiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAzBjB;;oBA0BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CA1BjB;;oBA2BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAAmEA,IAAnE,GAA0E,KAA1E,GAA2FC,KAAlG,CA3BjB;;oBA4BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FC,KAAlG,CA5BjB;;oBA6BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FA,IAAlG,CA7BjB;;oBA8BiBpC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAvD,CA9BjB;;mBA+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;QAgCCiD,UAAUhD,OAAOA,OAAOkC,eAAe,GAAf,GAAqBP,YAA5B,IAA4C,GAAnD,CAhCX;;iBAmCc3B,OAAO,SAAS0B,QAAT,GAAoB,MAApB,GAA6BjC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA7B,GAA0E,GAAjF,CAnCd;;gBAqCa5B,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,CAA5B,IAAiE,GAAxE,CArCb;QAyCCqB,SAASjD,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,UAAlC,CAA5B,CAzCV;QA4CCsB,iBAAiBlD,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CA5ClB;QAmDCuB,SAASnD,OAAOA,OAAOiD,SAAS,GAAT,GAAexD,MAAM,UAAN,EAAkB2D,UAAlB,CAAtB,IAAuD,GAA9D,CAnDV;WAmEO;oBACO,IAAIC,MAAJ,CAAW5D,MAAM,KAAN,EAAa+B,OAAb,EAAsBC,OAAtB,EAA+B,aAA/B,CAAX,EAA0D,GAA1D,CADP;sBAES,IAAI4B,MAAJ,CAAW5D,MAAM,WAAN,EAAmByC,YAAnB,EAAiCN,YAAjC,CAAX,EAA2D,GAA3D,CAFT;kBAGK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAHL;kBAIK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAJL;2BAKc,IAAIyB,MAAJ,CAAW5D,MAAM,cAAN,EAAsByC,YAAtB,EAAoCN,YAApC,CAAX,EAA8D,GAA9D,CALd;mBAMM,IAAIyB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,EAA8DwB,UAA9D,CAAX,EAAsF,GAAtF,CANN;sBAOS,IAAIC,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,CAAX,EAA0E,GAA1E,CAPT;gBAQG,IAAIyB,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2BN,YAA3B,CAAX,EAAqD,GAArD,CARH;oBASO,IAAIyB,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CATP;qBAUQ,IAAImB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BL,UAA9B,CAAX,EAAsD,GAAtD,CAVR;qBAWQ,IAAIwB,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAXR;qBAYQ,IAAI0B,MAAJ,CAAW,OAAOf,YAAP,GAAsB,IAAjC,CAZR;qBAaQ,IAAIe,MAAJ,CAAW,WAAWC,YAAX,GAA0B,GAA1B,GAAgCtD,OAAOA,OAAO,iBAAiB0B,QAAjB,GAA4B,MAAnC,IAA6C,GAA7C,GAAmDsB,OAAnD,GAA6D,GAApE,CAAhC,GAA2G,QAAtH,CAbR;KAAP;;AAiBD,mBAAe1B,UAAU,KAAV,CAAf;;ACrFA,mBAAeA,UAAU,IAAV,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;;AACA,IAAMiC,SAAS,UAAf;;;AAGA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,CAAb;AACA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,GAAb;AACA,IAAMC,cAAc,EAApB;AACA,IAAMC,WAAW,GAAjB;AACA,IAAMC,YAAY,GAAlB;;;AAGA,IAAMC,gBAAgB,OAAtB;AACA,IAAMC,gBAAgB,YAAtB;AACA,IAAMC,kBAAkB,2BAAxB;;;AAGA,IAAMC,SAAS;aACF,iDADE;cAED,gDAFC;kBAGG;CAHlB;;;AAOA,IAAMC,gBAAgBZ,OAAOC,IAA7B;AACA,IAAMY,QAAQC,KAAKD,KAAnB;AACA,IAAME,qBAAqBC,OAAOC,YAAlC;;;;;;;;;;AAUA,SAASC,OAAT,CAAeC,IAAf,EAAqB;OACd,IAAIC,UAAJ,CAAeT,OAAOQ,IAAP,CAAf,CAAN;;;;;;;;;;;AAWD,SAASE,GAAT,CAAaC,KAAb,EAAoBC,EAApB,EAAwB;KACjBC,SAAS,EAAf;KACIrF,SAASmF,MAAMnF,MAAnB;QACOA,QAAP,EAAiB;SACTA,MAAP,IAAiBoF,GAAGD,MAAMnF,MAAN,CAAH,CAAjB;;QAEMqF,MAAP;;;;;;;;;;;;;AAaD,SAASC,SAAT,CAAmBC,MAAnB,EAA2BH,EAA3B,EAA+B;KACxBI,QAAQD,OAAOzE,KAAP,CAAa,GAAb,CAAd;KACIuE,SAAS,EAAb;KACIG,MAAMxF,MAAN,GAAe,CAAnB,EAAsB;;;WAGZwF,MAAM,CAAN,IAAW,GAApB;WACSA,MAAM,CAAN,CAAT;;;UAGQD,OAAOE,OAAP,CAAelB,eAAf,EAAgC,MAAhC,CAAT;KACMmB,SAASH,OAAOzE,KAAP,CAAa,GAAb,CAAf;KACM6E,UAAUT,IAAIQ,MAAJ,EAAYN,EAAZ,EAAgBhF,IAAhB,CAAqB,GAArB,CAAhB;QACOiF,SAASM,OAAhB;;;;;;;;;;;;;;;;AAgBD,SAASC,UAAT,CAAoBL,MAApB,EAA4B;KACrBM,SAAS,EAAf;KACIC,UAAU,CAAd;KACM9F,SAASuF,OAAOvF,MAAtB;QACO8F,UAAU9F,MAAjB,EAAyB;MAClB+F,QAAQR,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;MACIC,SAAS,MAAT,IAAmBA,SAAS,MAA5B,IAAsCD,UAAU9F,MAApD,EAA4D;;OAErDiG,QAAQV,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;OACI,CAACG,QAAQ,MAAT,KAAoB,MAAxB,EAAgC;;WACxBC,IAAP,CAAY,CAAC,CAACH,QAAQ,KAAT,KAAmB,EAApB,KAA2BE,QAAQ,KAAnC,IAA4C,OAAxD;IADD,MAEO;;;WAGCC,IAAP,CAAYH,KAAZ;;;GARF,MAWO;UACCG,IAAP,CAAYH,KAAZ;;;QAGKF,MAAP;;;;;;;;;;;AAWD,IAAMM,aAAa,SAAbA,UAAa;QAAStB,OAAOuB,aAAP,iCAAwBjB,KAAxB,EAAT;CAAnB;;;;;;;;;;;AAWA,IAAMkB,eAAe,SAAfA,YAAe,CAASC,SAAT,EAAoB;KACpCA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;KAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;KAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;QAEMzC,IAAP;CAVD;;;;;;;;;;;;;AAwBA,IAAM0C,eAAe,SAAfA,YAAe,CAASC,KAAT,EAAgBC,IAAhB,EAAsB;;;QAGnCD,QAAQ,EAAR,GAAa,MAAMA,QAAQ,EAAd,CAAb,IAAkC,CAACC,QAAQ,CAAT,KAAe,CAAjD,CAAP;CAHD;;;;;;;AAWA,IAAMC,QAAQ,SAARA,KAAQ,CAASC,KAAT,EAAgBC,SAAhB,EAA2BC,SAA3B,EAAsC;KAC/CC,IAAI,CAAR;SACQD,YAAYnC,MAAMiC,QAAQ1C,IAAd,CAAZ,GAAkC0C,SAAS,CAAnD;UACSjC,MAAMiC,QAAQC,SAAd,CAAT;+BAC8BD,QAAQlC,gBAAgBV,IAAhB,IAAwB,CAA9D,EAAiE+C,KAAKjD,IAAtE,EAA4E;UACnEa,MAAMiC,QAAQlC,aAAd,CAAR;;QAEMC,MAAMoC,IAAI,CAACrC,gBAAgB,CAAjB,IAAsBkC,KAAtB,IAA+BA,QAAQ3C,IAAvC,CAAV,CAAP;CAPD;;;;;;;;;AAiBA,IAAM+C,SAAS,SAATA,MAAS,CAASC,KAAT,EAAgB;;KAExBnB,SAAS,EAAf;KACMoB,cAAcD,MAAMhH,MAA1B;KACIkH,IAAI,CAAR;KACIC,IAAIhD,QAAR;KACIiD,OAAOlD,WAAX;;;;;;KAMImD,QAAQL,MAAMM,WAAN,CAAkBlD,SAAlB,CAAZ;KACIiD,QAAQ,CAAZ,EAAe;UACN,CAAR;;;MAGI,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,KAApB,EAA2B,EAAEE,CAA7B,EAAgC;;MAE3BP,MAAMhB,UAAN,CAAiBuB,CAAjB,KAAuB,IAA3B,EAAiC;WAC1B,WAAN;;SAEMrB,IAAP,CAAYc,MAAMhB,UAAN,CAAiBuB,CAAjB,CAAZ;;;;;;MAMI,IAAIC,QAAQH,QAAQ,CAAR,GAAYA,QAAQ,CAApB,GAAwB,CAAzC,EAA4CG,QAAQP,WAApD,4BAA4F;;;;;;;MAOvFQ,OAAOP,CAAX;OACK,IAAIQ,IAAI,CAAR,EAAWZ,IAAIjD,IAApB,qBAA8CiD,KAAKjD,IAAnD,EAAyD;;OAEpD2D,SAASP,WAAb,EAA0B;YACnB,eAAN;;;OAGKT,QAAQH,aAAaW,MAAMhB,UAAN,CAAiBwB,OAAjB,CAAb,CAAd;;OAEIhB,SAAS3C,IAAT,IAAiB2C,QAAQ9B,MAAM,CAACd,SAASsD,CAAV,IAAeQ,CAArB,CAA7B,EAAsD;YAC/C,UAAN;;;QAGIlB,QAAQkB,CAAb;OACMC,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;;OAEIZ,QAAQmB,CAAZ,EAAe;;;;OAITC,aAAa/D,OAAO8D,CAA1B;OACID,IAAIhD,MAAMd,SAASgE,UAAf,CAAR,EAAoC;YAC7B,UAAN;;;QAGIA,UAAL;;;MAIKC,MAAMhC,OAAO7F,MAAP,GAAgB,CAA5B;SACO0G,MAAMQ,IAAIO,IAAV,EAAgBI,GAAhB,EAAqBJ,QAAQ,CAA7B,CAAP;;;;MAII/C,MAAMwC,IAAIW,GAAV,IAAiBjE,SAASuD,CAA9B,EAAiC;WAC1B,UAAN;;;OAGIzC,MAAMwC,IAAIW,GAAV,CAAL;OACKA,GAAL;;;SAGOC,MAAP,CAAcZ,GAAd,EAAmB,CAAnB,EAAsBC,CAAtB;;;QAIMtC,OAAOuB,aAAP,eAAwBP,MAAxB,CAAP;CAjFD;;;;;;;;;AA2FA,IAAMkC,SAAS,SAATA,MAAS,CAASf,KAAT,EAAgB;KACxBnB,SAAS,EAAf;;;SAGQD,WAAWoB,KAAX,CAAR;;;KAGIC,cAAcD,MAAMhH,MAAxB;;;KAGImH,IAAIhD,QAAR;KACIwC,QAAQ,CAAZ;KACIS,OAAOlD,WAAX;;;;;;;;uBAG2B8C,KAA3B,8HAAkC;OAAvBgB,cAAuB;;OAC7BA,iBAAe,IAAnB,EAAyB;WACjB9B,IAAP,CAAYtB,mBAAmBoD,cAAnB,CAAZ;;;;;;;;;;;;;;;;;;KAIEC,cAAcpC,OAAO7F,MAAzB;KACIkI,iBAAiBD,WAArB;;;;;;KAMIA,WAAJ,EAAiB;SACT/B,IAAP,CAAY9B,SAAZ;;;;QAIM8D,iBAAiBjB,WAAxB,EAAqC;;;;MAIhCkB,IAAIvE,MAAR;;;;;;yBAC2BoD,KAA3B,mIAAkC;QAAvBgB,YAAuB;;QAC7BA,gBAAgBb,CAAhB,IAAqBa,eAAeG,CAAxC,EAA2C;SACtCH,YAAJ;;;;;;;;;;;;;;;;;;;;;MAMII,wBAAwBF,iBAAiB,CAA/C;MACIC,IAAIhB,CAAJ,GAAQzC,MAAM,CAACd,SAAS+C,KAAV,IAAmByB,qBAAzB,CAAZ,EAA6D;WACtD,UAAN;;;WAGQ,CAACD,IAAIhB,CAAL,IAAUiB,qBAAnB;MACID,CAAJ;;;;;;;yBAE2BnB,KAA3B,mIAAkC;QAAvBgB,aAAuB;;QAC7BA,gBAAeb,CAAf,IAAoB,EAAER,KAAF,GAAU/C,MAAlC,EAA0C;aACnC,UAAN;;QAEGoE,iBAAgBb,CAApB,EAAuB;;SAElBkB,IAAI1B,KAAR;UACK,IAAIG,IAAIjD,IAAb,qBAAuCiD,KAAKjD,IAA5C,EAAkD;UAC3C8D,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;UACIiB,IAAIV,CAAR,EAAW;;;UAGLW,UAAUD,IAAIV,CAApB;UACMC,aAAa/D,OAAO8D,CAA1B;aACOzB,IAAP,CACCtB,mBAAmB2B,aAAaoB,IAAIW,UAAUV,UAA3B,EAAuC,CAAvC,CAAnB,CADD;UAGIlD,MAAM4D,UAAUV,UAAhB,CAAJ;;;YAGM1B,IAAP,CAAYtB,mBAAmB2B,aAAa8B,CAAb,EAAgB,CAAhB,CAAnB,CAAZ;YACO3B,MAAMC,KAAN,EAAayB,qBAAb,EAAoCF,kBAAkBD,WAAtD,CAAP;aACQ,CAAR;OACEC,cAAF;;;;;;;;;;;;;;;;;;IAIAvB,KAAF;IACEQ,CAAF;;QAGMtB,OAAOzF,IAAP,CAAY,EAAZ,CAAP;CArFD;;;;;;;;;;;;;AAmGA,IAAMmI,YAAY,SAAZA,SAAY,CAASvB,KAAT,EAAgB;QAC1B1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;SACjClB,cAAcmE,IAAd,CAAmBjD,MAAnB,IACJwB,OAAOxB,OAAOtF,KAAP,CAAa,CAAb,EAAgBgB,WAAhB,EAAP,CADI,GAEJsE,MAFH;EADM,CAAP;CADD;;;;;;;;;;;;;AAmBA,IAAMkD,UAAU,SAAVA,OAAU,CAASzB,KAAT,EAAgB;QACxB1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;SACjCjB,cAAckE,IAAd,CAAmBjD,MAAnB,IACJ,SAASwC,OAAOxC,MAAP,CADL,GAEJA,MAFH;EADM,CAAP;CADD;;;;;AAWA,IAAMmD,WAAW;;;;;;YAML,OANK;;;;;;;;SAcR;YACG9C,UADH;YAEGO;EAhBK;WAkBNY,MAlBM;WAmBNgB,MAnBM;YAoBLU,OApBK;cAqBHF;CArBd,CAwBA;;ACvbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,IAAaI,UAA6C,EAAnD;AAEP,SAAAC,UAAA,CAA2BC,GAA3B,EAAA;QACOC,IAAID,IAAI7C,UAAJ,CAAe,CAAf,CAAV;QACI+C,UAAJ;QAEID,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;WAEE6H,CAAP;;AAGD,SAAAC,WAAA,CAA4B1I,GAA5B,EAAA;QACK2I,SAAS,EAAb;QACI/B,IAAI,CAAR;QACMgC,KAAK5I,IAAIN,MAAf;WAEOkH,IAAIgC,EAAX,EAAe;YACRJ,IAAIK,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAV;YAEI4B,IAAI,GAAR,EAAa;sBACFjE,OAAOC,YAAP,CAAoBgE,CAApB,CAAV;iBACK,CAAL;SAFD,MAIK,IAAIA,KAAK,GAAL,IAAYA,IAAI,GAApB,EAAyB;gBACxBI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;oBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;0BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,CAAb,GAAmBO,KAAK,EAA5C,CAAV;aAFD,MAGO;0BACI/I,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;iBAEI,CAAL;SAPI,MASA,IAAI4B,KAAK,GAAT,EAAc;gBACbI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;oBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;oBACMoC,KAAKH,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;0BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,EAAb,GAAoB,CAACO,KAAK,EAAN,KAAa,CAAjC,GAAuCC,KAAK,EAAhE,CAAV;aAHD,MAIO;0BACIhJ,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;iBAEI,CAAL;SARI,MAUA;sBACM5G,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;iBACK,CAAL;;;WAIK+B,MAAP;;AAGD,SAAAM,2BAAA,CAAqCC,UAArC,EAA+DC,QAA/D,EAAA;aACAC,gBAAC,CAA0BpJ,GAA1B,EAAD;YACQqJ,SAASX,YAAY1I,GAAZ,CAAf;eACQ,CAACqJ,OAAOC,KAAP,CAAaH,SAASI,UAAtB,CAAD,GAAqCvJ,GAArC,GAA2CqJ,MAAnD;;QAGGH,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;QACnBR,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;QACnCsI,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;QAC/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;QAC/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;QAChCsI,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;WAEhCsI,UAAP;;AACA;AAED,SAAAoB,kBAAA,CAA4BtK,GAA5B,EAAA;WACQA,IAAImF,OAAJ,CAAY,SAAZ,EAAuB,IAAvB,KAAgC,GAAvC;;AAGD,SAAAoF,cAAA,CAAwBV,IAAxB,EAAqCV,QAArC,EAAA;QACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASsB,WAApB,KAAoC,EAApD;;iCACoBD,OAFrB;QAEUE,OAFV;;QAIKA,OAAJ,EAAa;eACLA,QAAQlK,KAAR,CAAc,GAAd,EAAmBoE,GAAnB,CAAuB0F,kBAAvB,EAA2CxK,IAA3C,CAAgD,GAAhD,CAAP;KADD,MAEO;eACC+J,IAAP;;;AAIF,SAAAc,cAAA,CAAwBd,IAAxB,EAAqCV,QAArC,EAAA;QACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASyB,WAApB,KAAoC,EAApD;;kCAC0BJ,OAF3B;QAEUE,OAFV;QAEmBG,IAFnB;;QAIKH,OAAJ,EAAa;oCACUA,QAAQ/J,WAAR,GAAsBH,KAAtB,CAA4B,IAA5B,EAAkCsK,OAAlC,EADV;;YACLC,IADK;YACCC,KADD;;YAENC,cAAcD,QAAQA,MAAMxK,KAAN,CAAY,GAAZ,EAAiBoE,GAAjB,CAAqB0F,kBAArB,CAAR,GAAmD,EAAvE;YACMY,aAAaH,KAAKvK,KAAL,CAAW,GAAX,EAAgBoE,GAAhB,CAAoB0F,kBAApB,CAAnB;YACMa,yBAAyBhC,SAASsB,WAAT,CAAqBvC,IAArB,CAA0BgD,WAAWA,WAAWxL,MAAX,GAAoB,CAA/B,CAA1B,CAA/B;YACM0L,aAAaD,yBAAyB,CAAzB,GAA6B,CAAhD;YACME,kBAAkBH,WAAWxL,MAAX,GAAoB0L,UAA5C;YACME,SAASvK,MAAcqK,UAAd,CAAf;aAEK,IAAIvL,IAAI,CAAb,EAAgBA,IAAIuL,UAApB,EAAgC,EAAEvL,CAAlC,EAAqC;mBAC7BA,CAAP,IAAYoL,YAAYpL,CAAZ,KAAkBqL,WAAWG,kBAAkBxL,CAA7B,CAAlB,IAAqD,EAAjE;;YAGGsL,sBAAJ,EAA4B;mBACpBC,aAAa,CAApB,IAAyBb,eAAee,OAAOF,aAAa,CAApB,CAAf,EAAuCjC,QAAvC,CAAzB;;YAGKoC,gBAAgBD,OAAOE,MAAP,CAAmD,UAACC,GAAD,EAAMC,KAAN,EAAaxE,KAAb,EAA3E;gBACO,CAACwE,KAAD,IAAUA,UAAU,GAAxB,EAA6B;oBACtBC,cAAcF,IAAIA,IAAI/L,MAAJ,GAAa,CAAjB,CAApB;oBACIiM,eAAeA,YAAYzE,KAAZ,GAAoByE,YAAYjM,MAAhC,KAA2CwH,KAA9D,EAAqE;gCACxDxH,MAAZ;iBADD,MAEO;wBACFkG,IAAJ,CAAS,EAAEsB,YAAF,EAASxH,QAAS,CAAlB,EAAT;;;mBAGK+L,GAAP;SATqB,EAUnB,EAVmB,CAAtB;YAYMG,oBAAoBL,cAAcM,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ;mBAAUA,EAAErM,MAAF,GAAWoM,EAAEpM,MAAvB;SAAnB,EAAkD,CAAlD,CAA1B;YAEIsM,gBAAJ;YACIJ,qBAAqBA,kBAAkBlM,MAAlB,GAA2B,CAApD,EAAuD;gBAChDuM,WAAWX,OAAO3L,KAAP,CAAa,CAAb,EAAgBiM,kBAAkB1E,KAAlC,CAAjB;gBACMgF,UAAUZ,OAAO3L,KAAP,CAAaiM,kBAAkB1E,KAAlB,GAA0B0E,kBAAkBlM,MAAzD,CAAhB;sBACUuM,SAASnM,IAAT,CAAc,GAAd,IAAqB,IAArB,GAA4BoM,QAAQpM,IAAR,CAAa,GAAb,CAAtC;SAHD,MAIO;sBACIwL,OAAOxL,IAAP,CAAY,GAAZ,CAAV;;YAGG+K,IAAJ,EAAU;uBACE,MAAMA,IAAjB;;eAGMmB,OAAP;KA5CD,MA6CO;eACCnC,IAAP;;;AAIF,IAAMsC,YAAY,iIAAlB;AACA,IAAMC,wBAA4C,EAAD,CAAK9C,KAAL,CAAW,OAAX,EAAqB,CAArB,MAA4BnJ,SAA7E;AAEA,SAAAkM,KAAA,CAAsBC,SAAtB,EAAA;QAAwCC,OAAxC,uEAA6D,EAA7D;;QACOrD,aAA2B,EAAjC;QACMC,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QAEIH,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;QAE9B9B,UAAU8B,UAAUhD,KAAV,CAAgB6C,SAAhB,CAAhB;QAEI3B,OAAJ,EAAa;YACR4B,qBAAJ,EAA2B;;uBAEf5C,MAAX,GAAoBgB,QAAQ,CAAR,CAApB;uBACWb,QAAX,GAAsBa,QAAQ,CAAR,CAAtB;uBACWX,IAAX,GAAkBW,QAAQ,CAAR,CAAlB;uBACWoC,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;uBACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;uBACWN,KAAX,GAAmBM,QAAQ,CAAR,CAAnB;uBACWJ,QAAX,GAAsBI,QAAQ,CAAR,CAAtB;;gBAGIqC,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;2BAChBA,IAAX,GAAkBpC,QAAQ,CAAR,CAAlB;;SAZF,MAcO;;;uBAEKhB,MAAX,GAAoBgB,QAAQ,CAAR,KAAcrK,SAAlC;uBACWwJ,QAAX,GAAuB2C,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;uBACW0J,IAAX,GAAmByC,UAAUQ,OAAV,CAAkB,IAAlB,MAA4B,CAAC,CAA7B,GAAiCtC,QAAQ,CAAR,CAAjC,GAA8CrK,SAAjE;uBACWyM,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;uBACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;uBACWN,KAAX,GAAoBoC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAAjE;uBACWiK,QAAX,GAAuBkC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;;gBAGI0M,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;2BAChBA,IAAX,GAAmBN,UAAUhD,KAAV,CAAgB,+BAAhB,IAAmDkB,QAAQ,CAAR,CAAnD,GAAgErK,SAAnF;;;YAIE+I,WAAWW,IAAf,EAAqB;;uBAETA,IAAX,GAAkBc,eAAeJ,eAAerB,WAAWW,IAA1B,EAAgCV,QAAhC,CAAf,EAA0DA,QAA1D,CAAlB;;;YAIGD,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;uBACtLwM,SAAX,GAAuB,eAAvB;SADD,MAEO,IAAIzD,WAAWM,MAAX,KAAsBrJ,SAA1B,EAAqC;uBAChCwM,SAAX,GAAuB,UAAvB;SADM,MAEA,IAAIzD,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;uBAClCwM,SAAX,GAAuB,UAAvB;SADM,MAEA;uBACKA,SAAX,GAAuB,KAAvB;;;YAIGJ,QAAQI,SAAR,IAAqBJ,QAAQI,SAAR,KAAsB,QAA3C,IAAuDJ,QAAQI,SAAR,KAAsBzD,WAAWyD,SAA5F,EAAuG;uBAC3FlI,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,kBAAkB8H,QAAQI,SAA1B,GAAsC,aAA7E;;;YAIKI,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;YAGI,CAAC4L,QAAQS,cAAT,KAA4B,CAACD,aAAD,IAAkB,CAACA,cAAcC,cAA7D,CAAJ,EAAkF;;gBAE7E9D,WAAWW,IAAX,KAAoB0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1E,CAAJ,EAA4F;;oBAEvF;+BACQpD,IAAX,GAAkBzB,SAASD,OAAT,CAAiBe,WAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,SAASM,WAAjC,EAA8Cf,WAA9C,EAA2D/H,WAA3D,EAAjB,CAAlB;iBADD,CAEE,OAAO8H,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,oEAAoEgE,CAA3G;;;;wCAI0BS,UAA5B,EAAwCwD,YAAxC;SAXD,MAYO;;wCAEsBxD,UAA5B,EAAwCC,QAAxC;;;YAIG4D,iBAAiBA,cAAcV,KAAnC,EAA0C;0BAC3BA,KAAd,CAAoBnD,UAApB,EAAgCqD,OAAhC;;KA3EF,MA6EO;mBACK9H,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,wBAAvC;;WAGMyE,UAAP;;AACA;AAED,SAAAgE,mBAAA,CAA6BhE,UAA7B,EAAuDqD,OAAvD,EAAA;QACOpD,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QACMS,YAA0B,EAAhC;QAEIjE,WAAWS,QAAX,KAAwBxJ,SAA5B,EAAuC;kBAC5ByF,IAAV,CAAesD,WAAWS,QAA1B;kBACU/D,IAAV,CAAe,GAAf;;QAGGsD,WAAWW,IAAX,KAAoB1J,SAAxB,EAAmC;;kBAExByF,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;mBAAe,MAAMD,EAAN,IAAYC,KAAK,QAAQA,EAAb,GAAkB,EAA9B,IAAoC,GAAnD;SAA1G,CAAf;;QAGG,OAAOpE,WAAW0D,IAAlB,KAA2B,QAA3B,IAAuC,OAAO1D,WAAW0D,IAAlB,KAA2B,QAAtE,EAAgF;kBACrEhH,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAerB,OAAO2E,WAAW0D,IAAlB,CAAf;;WAGMO,UAAUzN,MAAV,GAAmByN,UAAUrN,IAAV,CAAe,EAAf,CAAnB,GAAwCK,SAA/C;;AACA;AAED,IAAMoN,OAAO,UAAb;AACA,IAAMC,OAAO,aAAb;AACA,IAAMC,OAAO,eAAb;AACA,IACMC,OAAO,wBAAb;AAEA,SAAAC,iBAAA,CAAkCjH,KAAlC,EAAA;QACOnB,SAAuB,EAA7B;WAEOmB,MAAMhH,MAAb,EAAqB;YAChBgH,MAAM4C,KAAN,CAAYiE,IAAZ,CAAJ,EAAuB;oBACd7G,MAAMvB,OAAN,CAAcoI,IAAd,EAAoB,EAApB,CAAR;SADD,MAEO,IAAI7G,MAAM4C,KAAN,CAAYkE,IAAZ,CAAJ,EAAuB;oBACrB9G,MAAMvB,OAAN,CAAcqI,IAAd,EAAoB,GAApB,CAAR;SADM,MAEA,IAAI9G,MAAM4C,KAAN,CAAYmE,IAAZ,CAAJ,EAAuB;oBACrB/G,MAAMvB,OAAN,CAAcsI,IAAd,EAAoB,GAApB,CAAR;mBACOhN,GAAP;SAFM,MAGA,IAAIiG,UAAU,GAAV,IAAiBA,UAAU,IAA/B,EAAqC;oBACnC,EAAR;SADM,MAEA;gBACAkH,KAAKlH,MAAM4C,KAAN,CAAYoE,IAAZ,CAAX;gBACIE,EAAJ,EAAQ;oBACDC,IAAID,GAAG,CAAH,CAAV;wBACQlH,MAAM/G,KAAN,CAAYkO,EAAEnO,MAAd,CAAR;uBACOkG,IAAP,CAAYiI,CAAZ;aAHD,MAIO;sBACA,IAAIC,KAAJ,CAAU,kCAAV,CAAN;;;;WAKIvI,OAAOzF,IAAP,CAAY,EAAZ,CAAP;;AACA;AAED,SAAAiO,SAAA,CAA0B7E,UAA1B,EAAA;QAAoDqD,OAApD,uEAAyE,EAAzE;;QACOpD,WAAYoD,QAAQC,GAAR,GAAcC,YAAd,GAA6BC,YAA/C;QACMS,YAA0B,EAAhC;;QAGMJ,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;QAGIoM,iBAAiBA,cAAcgB,SAAnC,EAA8ChB,cAAcgB,SAAd,CAAwB7E,UAAxB,EAAoCqD,OAApC;QAE1CrD,WAAWW,IAAf,EAAqB;;YAEhBV,SAASyB,WAAT,CAAqB1C,IAArB,CAA0BgB,WAAWW,IAArC,CAAJ,EAAgD;;;;aAK3C,IAAI0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1D,EAAuE;;oBAEvE;+BACQpD,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;iBADD,CAEE,OAAOpB,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,iDAAiD,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAA1E,IAAuF,iBAAvF,GAA2G/D,CAAlJ;;;;;gCAMyBS,UAA5B,EAAwCC,QAAxC;QAEIoD,QAAQI,SAAR,KAAsB,QAAtB,IAAkCzD,WAAWM,MAAjD,EAAyD;kBAC9C5D,IAAV,CAAesD,WAAWM,MAA1B;kBACU5D,IAAV,CAAe,GAAf;;QAGKoI,YAAYd,oBAAoBhE,UAApB,EAAgCqD,OAAhC,CAAlB;QACIyB,cAAc7N,SAAlB,EAA6B;YACxBoM,QAAQI,SAAR,KAAsB,QAA1B,EAAoC;sBACzB/G,IAAV,CAAe,IAAf;;kBAGSA,IAAV,CAAeoI,SAAf;YAEI9E,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBkE,MAAhB,CAAuB,CAAvB,MAA8B,GAArD,EAA0D;sBAC/CrI,IAAV,CAAe,GAAf;;;QAIEsD,WAAWa,IAAX,KAAoB5J,SAAxB,EAAmC;YAC9B0N,IAAI3E,WAAWa,IAAnB;YAEI,CAACwC,QAAQ2B,YAAT,KAA0B,CAACnB,aAAD,IAAkB,CAACA,cAAcmB,YAA3D,CAAJ,EAA8E;gBACzEP,kBAAkBE,CAAlB,CAAJ;;YAGGG,cAAc7N,SAAlB,EAA6B;gBACxB0N,EAAE1I,OAAF,CAAU,OAAV,EAAmB,MAAnB,CAAJ,CAD4B;;kBAInBS,IAAV,CAAeiI,CAAf;;QAGG3E,WAAWgB,KAAX,KAAqB/J,SAAzB,EAAoC;kBACzByF,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAesD,WAAWgB,KAA1B;;QAGGhB,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;kBAC5ByF,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAesD,WAAWkB,QAA1B;;WAGM+C,UAAUrN,IAAV,CAAe,EAAf,CAAP,CAxED;;AAyEC;AAED,SAAAqO,iBAAA,CAAkC5K,IAAlC,EAAsD6K,QAAtD,EAAA;QAA8E7B,OAA9E,uEAAmG,EAAnG;QAAuG8B,iBAAvG;;QACOnN,SAAuB,EAA7B;QAEI,CAACmN,iBAAL,EAAwB;eAChBhC,MAAM0B,UAAUxK,IAAV,EAAgBgJ,OAAhB,CAAN,EAAgCA,OAAhC,CAAP,CADuB;mBAEZF,MAAM0B,UAAUK,QAAV,EAAoB7B,OAApB,CAAN,EAAoCA,OAApC,CAAX,CAFuB;;cAIdA,WAAW,EAArB;QAEI,CAACA,QAAQ+B,QAAT,IAAqBF,SAAS5E,MAAlC,EAA0C;eAClCA,MAAP,GAAgB4E,SAAS5E,MAAzB;;eAEOG,QAAP,GAAkByE,SAASzE,QAA3B;eACOE,IAAP,GAAcuE,SAASvE,IAAvB;eACO+C,IAAP,GAAcwB,SAASxB,IAAvB;eACO7C,IAAP,GAAc4D,kBAAkBS,SAASrE,IAAT,IAAiB,EAAnC,CAAd;eACOG,KAAP,GAAekE,SAASlE,KAAxB;KAPD,MAQO;YACFkE,SAASzE,QAAT,KAAsBxJ,SAAtB,IAAmCiO,SAASvE,IAAT,KAAkB1J,SAArD,IAAkEiO,SAASxB,IAAT,KAAkBzM,SAAxF,EAAmG;;mBAE3FwJ,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;SAND,MAOO;gBACF,CAACkE,SAASrE,IAAd,EAAoB;uBACZA,IAAP,GAAcxG,KAAKwG,IAAnB;oBACIqE,SAASlE,KAAT,KAAmB/J,SAAvB,EAAkC;2BAC1B+J,KAAP,GAAekE,SAASlE,KAAxB;iBADD,MAEO;2BACCA,KAAP,GAAe3G,KAAK2G,KAApB;;aALF,MAOO;oBACFkE,SAASrE,IAAT,CAAckE,MAAd,CAAqB,CAArB,MAA4B,GAAhC,EAAqC;2BAC7BlE,IAAP,GAAc4D,kBAAkBS,SAASrE,IAA3B,CAAd;iBADD,MAEO;wBACF,CAACxG,KAAKoG,QAAL,KAAkBxJ,SAAlB,IAA+BoD,KAAKsG,IAAL,KAAc1J,SAA7C,IAA0DoD,KAAKqJ,IAAL,KAAczM,SAAzE,KAAuF,CAACoD,KAAKwG,IAAjG,EAAuG;+BAC/FA,IAAP,GAAc,MAAMqE,SAASrE,IAA7B;qBADD,MAEO,IAAI,CAACxG,KAAKwG,IAAV,EAAgB;+BACfA,IAAP,GAAcqE,SAASrE,IAAvB;qBADM,MAEA;+BACCA,IAAP,GAAcxG,KAAKwG,IAAL,CAAUpK,KAAV,CAAgB,CAAhB,EAAmB4D,KAAKwG,IAAL,CAAU/C,WAAV,CAAsB,GAAtB,IAA6B,CAAhD,IAAqDoH,SAASrE,IAA5E;;2BAEMA,IAAP,GAAc4D,kBAAkBzM,OAAO6I,IAAzB,CAAd;;uBAEMG,KAAP,GAAekE,SAASlE,KAAxB;;;mBAGMP,QAAP,GAAkBpG,KAAKoG,QAAvB;mBACOE,IAAP,GAActG,KAAKsG,IAAnB;mBACO+C,IAAP,GAAcrJ,KAAKqJ,IAAnB;;eAEMpD,MAAP,GAAgBjG,KAAKiG,MAArB;;WAGMY,QAAP,GAAkBgE,SAAShE,QAA3B;WAEOlJ,MAAP;;AACA;AAED,SAAAqN,OAAA,CAAwBC,OAAxB,EAAwCC,WAAxC,EAA4DlC,OAA5D,EAAA;QACOmC,oBAAoBzN,OAAO,EAAEuI,QAAS,MAAX,EAAP,EAA4B+C,OAA5B,CAA1B;WACOwB,UAAUI,kBAAkB9B,MAAMmC,OAAN,EAAeE,iBAAf,CAAlB,EAAqDrC,MAAMoC,WAAN,EAAmBC,iBAAnB,CAArD,EAA4FA,iBAA5F,EAA+G,IAA/G,CAAV,EAAgIA,iBAAhI,CAAP;;AACA;AAID,SAAAC,SAAA,CAA0BC,GAA1B,EAAmCrC,OAAnC,EAAA;QACK,OAAOqC,GAAP,KAAe,QAAnB,EAA6B;cACtBb,UAAU1B,MAAMuC,GAAN,EAAWrC,OAAX,CAAV,EAA+BA,OAA/B,CAAN;KADD,MAEO,IAAItM,OAAO2O,GAAP,MAAgB,QAApB,EAA8B;cAC9BvC,MAAM0B,UAAyBa,GAAzB,EAA8BrC,OAA9B,CAAN,EAA8CA,OAA9C,CAAN;;WAGMqC,GAAP;;AACA;AAID,SAAAC,KAAA,CAAsBC,IAAtB,EAAgCC,IAAhC,EAA0CxC,OAA1C,EAAA;QACK,OAAOuC,IAAP,KAAgB,QAApB,EAA8B;eACtBf,UAAU1B,MAAMyC,IAAN,EAAYvC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;KADD,MAEO,IAAItM,OAAO6O,IAAP,MAAiB,QAArB,EAA+B;eAC9Bf,UAAyBe,IAAzB,EAA+BvC,OAA/B,CAAP;;QAGG,OAAOwC,IAAP,KAAgB,QAApB,EAA8B;eACtBhB,UAAU1B,MAAM0C,IAAN,EAAYxC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;KADD,MAEO,IAAItM,OAAO8O,IAAP,MAAiB,QAArB,EAA+B;eAC9BhB,UAAyBgB,IAAzB,EAA+BxC,OAA/B,CAAP;;WAGMuC,SAASC,IAAhB;;AACA;AAED,SAAAC,eAAA,CAAgChP,GAAhC,EAA4CuM,OAA5C,EAAA;WACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAauC,MAAxC,GAAiDxC,aAAawC,MAAtF,EAA+F3G,UAA/F,CAAd;;AACA;AAED,SAAA4G,iBAAA,CAAkClP,GAAlC,EAA8CuM,OAA9C,EAAA;WACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAajD,WAAxC,GAAsDgD,aAAahD,WAA3F,EAAyGf,WAAzG,CAAd;CACA;;ACziBD,IAAMyG,UAA2B;YACvB,MADuB;gBAGnB,IAHmB;WAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;;YAEM,CAACrD,WAAWW,IAAhB,EAAsB;uBACVpF,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,6BAAvC;;eAGMyE,UAAP;KAX+B;eAcpB,mBAAUA,UAAV,EAAoCqD,OAApC,EAAb;YACQ6C,SAAS7K,OAAO2E,WAAWM,MAAlB,EAA0B7I,WAA1B,OAA4C,OAA3D;;YAGIuI,WAAW0D,IAAX,MAAqBwC,SAAS,GAAT,GAAe,EAApC,KAA2ClG,WAAW0D,IAAX,KAAoB,EAAnE,EAAuE;uBAC3DA,IAAX,GAAkBzM,SAAlB;;;YAIG,CAAC+I,WAAWa,IAAhB,EAAsB;uBACVA,IAAX,GAAkB,GAAlB;;;;;eAOMb,UAAP;;CA/BF,CAmCA;;AClCA,IAAMiG,YAA2B;YACvB,OADuB;gBAEnBE,QAAKpC,UAFc;WAGxBoC,QAAKhD,KAHmB;eAIpBgD,QAAKtB;CAJlB,CAOA;;ACHA,SAAAuB,QAAA,CAAkBC,YAAlB,EAAA;WACQ,OAAOA,aAAaH,MAApB,KAA+B,SAA/B,GAA2CG,aAAaH,MAAxD,GAAiE7K,OAAOgL,aAAa/F,MAApB,EAA4B7I,WAA5B,OAA8C,KAAtH;;;AAID,IAAMwO,YAA2B;YACvB,IADuB;gBAGnB,IAHmB;WAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQgD,eAAerG,UAArB;;qBAGakG,MAAb,GAAsBE,SAASC,YAAT,CAAtB;;qBAGaC,YAAb,GAA4B,CAACD,aAAaxF,IAAb,IAAqB,GAAtB,KAA8BwF,aAAarF,KAAb,GAAqB,MAAMqF,aAAarF,KAAxC,GAAgD,EAA9E,CAA5B;qBACaH,IAAb,GAAoB5J,SAApB;qBACa+J,KAAb,GAAqB/J,SAArB;eAEOoP,YAAP;KAhB+B;eAmBpB,mBAAUA,YAAV,EAAqChD,OAArC,EAAb;;YAEMgD,aAAa3C,IAAb,MAAuB0C,SAASC,YAAT,IAAyB,GAAzB,GAA+B,EAAtD,KAA6DA,aAAa3C,IAAb,KAAsB,EAAvF,EAA2F;yBAC7EA,IAAb,GAAoBzM,SAApB;;;YAIG,OAAOoP,aAAaH,MAApB,KAA+B,SAAnC,EAA8C;yBAChC5F,MAAb,GAAuB+F,aAAaH,MAAb,GAAsB,KAAtB,GAA8B,IAArD;yBACaA,MAAb,GAAsBjP,SAAtB;;;YAIGoP,aAAaC,YAAjB,EAA+B;wCACRD,aAAaC,YAAb,CAA0BhP,KAA1B,CAAgC,GAAhC,CADQ;;gBACvBuJ,IADuB;gBACjBG,KADiB;;yBAEjBH,IAAb,GAAqBA,QAAQA,SAAS,GAAjB,GAAuBA,IAAvB,GAA8B5J,SAAnD;yBACa+J,KAAb,GAAqBA,KAArB;yBACasF,YAAb,GAA4BrP,SAA5B;;;qBAIYiK,QAAb,GAAwBjK,SAAxB;eAEOoP,YAAP;;CA1CF,CA8CA;;ACvDA,IAAMJ,YAA2B;YACvB,KADuB;gBAEnBM,UAAGxC,UAFgB;WAGxBwC,UAAGpD,KAHqB;eAIpBoD,UAAG1B;CAJhB,CAOA;;ACMA,IAAM2B,IAAkB,EAAxB;;AAIA,IAAMzN,eAAe,6BAAoC,2EAAR,CAA5B,IAAwH,GAA7I;AACA,IAAMR,WAAW,aAAjB;AACA,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;;;;;;;;;;;;AAaA,IAAMkO,UAAU,uDAAhB;AACA,IAAMC,UAAU,4DAAhB;AACA,IAAMC,UAAUrQ,MAAMoQ,OAAN,EAAe,YAAf,CAAhB;AAMA,IAEME,gBAAgB,qCAAtB;AAWA,IAEMvG,aAAa,IAAInG,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CAAnB;AACA,IAAMwH,cAAc,IAAIrG,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAApB;AACA,IAAMqO,iBAAiB,IAAI3M,MAAJ,CAAW5D,MAAM,KAAN,EAAamQ,OAAb,EAAsB,OAAtB,EAA+B,OAA/B,EAAwCE,OAAxC,CAAX,EAA6D,GAA7D,CAAvB;AAEA,IAAMG,aAAa,IAAI5M,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2B6N,aAA3B,CAAX,EAAsD,GAAtD,CAAnB;AACA,IAAMG,cAAcD,UAApB;AAEA,SAEA5G,gBAAA,CAA0BpJ,GAA1B,EAAA;QACOqJ,SAASX,YAAY1I,GAAZ,CAAf;WACQ,CAACqJ,OAAOC,KAAP,CAAaC,UAAb,CAAD,GAA4BvJ,GAA5B,GAAkCqJ,MAA1C;;AAGD,IAAM8F,YAA8C;YAC1C,QAD0C;WAG3C,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ2D,mBAAmBhH,UAAzB;YACMiH,KAAKD,iBAAiBC,EAAjB,GAAuBD,iBAAiBnG,IAAjB,GAAwBmG,iBAAiBnG,IAAjB,CAAsBvJ,KAAtB,CAA4B,GAA5B,CAAxB,GAA2D,EAA7F;yBACiBuJ,IAAjB,GAAwB5J,SAAxB;YAEI+P,iBAAiBhG,KAArB,EAA4B;gBACvBkG,iBAAiB,KAArB;gBACMC,UAAwB,EAA9B;gBACMC,UAAUJ,iBAAiBhG,KAAjB,CAAuB1J,KAAvB,CAA6B,GAA7B,CAAhB;iBAEK,IAAIX,IAAI,CAAR,EAAWD,KAAK0Q,QAAQ5Q,MAA7B,EAAqCG,IAAID,EAAzC,EAA6C,EAAEC,CAA/C,EAAkD;oBAC3C0Q,SAASD,QAAQzQ,CAAR,EAAWW,KAAX,CAAiB,GAAjB,CAAf;wBAEQ+P,OAAO,CAAP,CAAR;yBACM,IAAL;4BACOC,UAAUD,OAAO,CAAP,EAAU/P,KAAV,CAAgB,GAAhB,CAAhB;6BACK,IAAIX,KAAI,CAAR,EAAWD,MAAK4Q,QAAQ9Q,MAA7B,EAAqCG,KAAID,GAAzC,EAA6C,EAAEC,EAA/C,EAAkD;+BAC9C+F,IAAH,CAAQ4K,QAAQ3Q,EAAR,CAAR;;;yBAGG,SAAL;yCACkB4Q,OAAjB,GAA2BvB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAA3B;;yBAEI,MAAL;yCACkBmE,IAAjB,GAAwBxB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAxB;;;yCAGiB,IAAjB;gCACQ2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAR,IAAiD2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAjD;;;;gBAKC6D,cAAJ,EAAoBF,iBAAiBG,OAAjB,GAA2BA,OAA3B;;yBAGJnG,KAAjB,GAAyB/J,SAAzB;aAEK,IAAIN,MAAI,CAAR,EAAWD,OAAKuQ,GAAGzQ,MAAxB,EAAgCG,MAAID,IAApC,EAAwC,EAAEC,GAA1C,EAA6C;gBACtC8Q,OAAOR,GAAGtQ,GAAH,EAAMW,KAAN,CAAY,GAAZ,CAAb;iBAEK,CAAL,IAAU0O,kBAAkByB,KAAK,CAAL,CAAlB,CAAV;gBAEI,CAACpE,QAAQS,cAAb,EAA6B;;oBAExB;yBACE,CAAL,IAAU5E,SAASD,OAAT,CAAiB+G,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAjB,CAAV;iBADD,CAEE,OAAO8H,CAAP,EAAU;qCACMhE,KAAjB,GAAyByL,iBAAiBzL,KAAjB,IAA0B,6EAA6EgE,CAAhI;;aALF,MAOO;qBACD,CAAL,IAAUyG,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAV;;eAGEd,GAAH,IAAQ8Q,KAAK7Q,IAAL,CAAU,GAAV,CAAR;;eAGMoQ,gBAAP;KA5DkD;eA+DvC,sBAAUA,gBAAV,EAA6C3D,OAA7C,EAAb;YACQrD,aAAagH,gBAAnB;YACMC,KAAKtP,QAAQqP,iBAAiBC,EAAzB,CAAX;YACIA,EAAJ,EAAQ;iBACF,IAAItQ,IAAI,CAAR,EAAWD,KAAKuQ,GAAGzQ,MAAxB,EAAgCG,IAAID,EAApC,EAAwC,EAAEC,CAA1C,EAA6C;oBACtC+Q,SAASrM,OAAO4L,GAAGtQ,CAAH,CAAP,CAAf;oBACMgR,QAAQD,OAAO5J,WAAP,CAAmB,GAAnB,CAAd;oBACM8J,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;oBACIyI,SAASH,OAAOjR,KAAP,CAAakR,QAAQ,CAArB,CAAb;;oBAGI;6BACO,CAACtE,QAAQC,GAAT,GAAepE,SAASD,OAAT,CAAiB+G,kBAAkB6B,MAAlB,EAA0BxE,OAA1B,EAAmC5L,WAAnC,EAAjB,CAAf,GAAoFyH,SAASH,SAAT,CAAmB8I,MAAnB,CAA9F;iBADD,CAEE,OAAOtI,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,0DAA0D,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAAnF,IAAgG,iBAAhG,GAAoH/D,CAA3J;;mBAGE5I,CAAH,IAAQiR,YAAY,GAAZ,GAAkBC,MAA1B;;uBAGUhH,IAAX,GAAkBoG,GAAGrQ,IAAH,CAAQ,GAAR,CAAlB;;YAGKuQ,UAAUH,iBAAiBG,OAAjB,GAA2BH,iBAAiBG,OAAjB,IAA4B,EAAvE;YAEIH,iBAAiBO,OAArB,EAA8BJ,QAAQ,SAAR,IAAqBH,iBAAiBO,OAAtC;YAC1BP,iBAAiBQ,IAArB,EAA2BL,QAAQ,MAAR,IAAkBH,iBAAiBQ,IAAnC;YAErBpF,SAAS,EAAf;aACK,IAAM0F,IAAX,IAAmBX,OAAnB,EAA4B;gBACvBA,QAAQW,IAAR,MAAkBtB,EAAEsB,IAAF,CAAtB,EAA+B;uBACvBpL,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;;;YAOEgD,OAAO5L,MAAX,EAAmB;uBACPwK,KAAX,GAAmBoB,OAAOxL,IAAP,CAAY,GAAZ,CAAnB;;eAGMoJ,UAAP;;CAzGF,CA6GA;;ACnKA,IAAM+H,YAAY,iBAAlB;AACA;AAGA,IAAM9B,YAAqD;YACjD,KADiD;WAGlD,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ/B,UAAUtB,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBT,KAAhB,CAAsB2H,SAAtB,CAAnC;YACIC,gBAAgBhI,UAApB;YAEIsB,OAAJ,EAAa;gBACNhB,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;gBACM2H,MAAM3G,QAAQ,CAAR,EAAW7J,WAAX,EAAZ;gBACMyQ,MAAM5G,QAAQ,CAAR,CAAZ;gBACM6G,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;gBACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;0BAEcF,GAAd,GAAoBA,GAApB;0BACcC,GAAd,GAAoBA,GAApB;0BACcrH,IAAd,GAAqB5J,SAArB;gBAEI4M,aAAJ,EAAmB;gCACFA,cAAcV,KAAd,CAAoB6E,aAApB,EAAmC3E,OAAnC,CAAhB;;SAZF,MAcO;0BACQ9H,KAAd,GAAsByM,cAAczM,KAAd,IAAuB,wBAA7C;;eAGMyM,aAAP;KAzByD;eA4B9C,sBAAUA,aAAV,EAAuC3E,OAAvC,EAAb;YACQ/C,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;YACM2H,MAAMD,cAAcC,GAA1B;YACME,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;YACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;YAEItE,aAAJ,EAAmB;4BACFA,cAAcgB,SAAd,CAAwBmD,aAAxB,EAAuC3E,OAAvC,CAAhB;;YAGK+E,gBAAgBJ,aAAtB;YACME,MAAMF,cAAcE,GAA1B;sBACcrH,IAAd,IAAwBoH,OAAO5E,QAAQ4E,GAAvC,UAA8CC,GAA9C;eAEOE,aAAP;;CA1CF,CA8CA;;AC5DA,IAAMC,OAAO,0DAAb;AACA;AAGA,IAAMpC,YAAsE;YAClE,UADkE;WAGnE,eAAU+B,aAAV,EAAuC3E,OAAvC,EAAT;YACQiF,iBAAiBN,aAAvB;uBACeO,IAAf,GAAsBD,eAAeJ,GAArC;uBACeA,GAAf,GAAqBjR,SAArB;YAEI,CAACoM,QAAQ+B,QAAT,KAAsB,CAACkD,eAAeC,IAAhB,IAAwB,CAACD,eAAeC,IAAf,CAAoBnI,KAApB,CAA0BiI,IAA1B,CAA/C,CAAJ,EAAqF;2BACrE9M,KAAf,GAAuB+M,eAAe/M,KAAf,IAAwB,oBAA/C;;eAGM+M,cAAP;KAZ0E;eAe/D,mBAAUA,cAAV,EAAyCjF,OAAzC,EAAb;YACQ2E,gBAAgBM,cAAtB;;sBAEcJ,GAAd,GAAoB,CAACI,eAAeC,IAAf,IAAuB,EAAxB,EAA4B9Q,WAA5B,EAApB;eACOuQ,aAAP;;CAnBF,CAuBA;;AChCA7I,QAAQgH,QAAK7F,MAAb,IAAuB6F,OAAvB;AAGAhH,QAAQqJ,UAAMlI,MAAd,IAAwBkI,SAAxB;AAGArJ,QAAQoH,UAAGjG,MAAX,IAAqBiG,SAArB;AAGApH,QAAQsJ,UAAInI,MAAZ,IAAsBmI,SAAtB;AAGAtJ,QAAQuJ,UAAOpI,MAAf,IAAyBoI,SAAzB;AAGAvJ,QAAQwJ,UAAIrI,MAAZ,IAAsBqI,SAAtB;AAGAxJ,QAAQoJ,UAAKjI,MAAb,IAAuBiI,SAAvB,CAEA;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,iBAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC9D,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC;AACtD;AACA,IAAI,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;AACxB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AAC3C,MAAM,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC7C,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AACtF,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACnF,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvF;AACA,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACvD;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC1E;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AACjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;;AC3CD;AACA;AACA,cAAc,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE;AAC1C,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AACtB,MAAM,GAAG,GAAG,CAAC;AACb,MAAM,KAAK,CAAC;AACZ,EAAE,OAAO,GAAG,GAAG,GAAG,EAAE;AACpB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC,IAAI,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AACzD;AACA,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;AChBD,QAAc,GAAG;AACjB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,KAAK,EAAEK,aAA0B;AACnC,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,oBAAoB,EAAE,oBAAoB;AAC5C,EAAE,kBAAkB,EAAE,kBAAkB;AACxC,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,mBAAmB,EAAE,mBAAmB;AAC1C,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,CAAC,CAAC;AACF;AACA;AACA,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;AACrB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE;AAC9D,EAAE,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO;AACxC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;AACpC,MAAM,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE;AAC5B,MAAM,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;AAC9B,EAAE,QAAQ,QAAQ;AAClB,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAC9C,IAAI,KAAK,OAAO,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,IAAI,GAAG,GAAG,CAAC;AAC5D,IAAI,KAAK,QAAQ,EAAE,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG;AAC/C,0BAA0B,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;AACrE,0BAA0B,GAAG,GAAG,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/D,IAAI,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;AACvE,2BAA2B,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO;AACrD,2BAA2B,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI;AACpD,4BAA4B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;AAC9F,IAAI,KAAK,QAAQ,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;AAC1E,2BAA2B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;AAC7F,IAAI,SAAS,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;AACpE,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;AACxD,EAAE,QAAQ,SAAS,CAAC,MAAM;AAC1B,IAAI,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1E,IAAI;AACJ,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;AACpB,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvC,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AACtD,QAAQ,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAAC;AACpD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC;AAC1B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC;AAC3B,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK;AACzB,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACpF;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,eAAe,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF,SAAS,aAAa,CAAC,iBAAiB,EAAE,SAAS,EAAE;AACrD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,WAAW,IAAI,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACnC,GAAG,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AACvB,GAAG,MAAM,IAAI,iBAAiB,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;AACrE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACrB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,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;AACvD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,IAAI,UAAU,GAAG,uBAAuB,CAAC;AACzC,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,EAAE,OAAO,OAAO,GAAG,IAAI,QAAQ;AAC/B,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG;AAC3B,YAAY,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,cAAc,GAAG,GAAG,GAAG;AACvB,cAAc,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9C,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;AAC1C,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;AACrC,EAAE,OAAO,IAAI,QAAQ,CAAC;AACtB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD,EAAE,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AACxC,EAAE,OAAO,IAAI,UAAU,CAAC;AACxB,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC5D,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;AACjD,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;AAC5D,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,CAAC;AAC3E,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AAC9E,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO;AACzC,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AAChE,EAAE,IAAI,IAAI,GAAG,YAAY;AACzB,gBAAgB,UAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,gDAAgD,CAAC;AACtG,iBAAiB,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;AACrG,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,YAAY;AACzB,gBAAgB,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7D,gBAAgB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,IAAI,YAAY,GAAG,qBAAqB,CAAC;AACzC,IAAI,qBAAqB,GAAG,kCAAkC,CAAC;AAC/D,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACpC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;AACrC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,UAAU,CAAC;AACtC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACrF,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,GAAG,UAAU,CAAC;AACtB,GAAG,MAAM;AACT,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACpE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,WAAW,IAAI,GAAG,EAAE;AAC5B,MAAM,IAAI,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACnH,MAAM,OAAO,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACtG,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;AAClC,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,IAAI,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,MAAM,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrD;;AC1OA,cAAc,GAAG,YAAY,CAAC;AAC9B;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvB;;;ACPA;AACA,IAAI,QAAQ,GAAG,cAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,EAAE,GAAG,IAAI,CAAC;AACd,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AACrB,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;AACrE,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;AACtC;AACA,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,QAAQ,GAAG;AACpB,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,oBAAoB,EAAE,IAAI;AAC5B,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,GAAG,EAAE,IAAI;AACX,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG;AACzB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG;AACzB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,YAAY,EAAE,IAAI;AACpB,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,YAAY,GAAG;AACxB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,aAAa,EAAE,IAAI;AACrB,CAAC,CAAC;AACF;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;AACvH,EAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC3F,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC3C,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,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;AACnH,SAAS;AACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAChD,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC3C,UAAU,KAAK,IAAI,IAAI,IAAI,GAAG;AAC9B,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;AAC3I,SAAS;AACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;AAChG,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;AAC/F,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC5F,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD;;;AChFA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;AAC/B,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;AACzB,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;AACzB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACrC;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACjC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxD,SAAS,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,YAAYC,UAAY,EAAE;AACtC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,cAAc,MAAM,CAAC,MAAM;AAC3B,cAAc,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,EAAE,IAAI,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;AACxB,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACxB,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,MAAM,YAAYA,UAAY,EAAE;AACtC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtF,GAAG,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AACnC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAChD,UAAU,MAAM;AAChB,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC9D,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;AAClC;AACA,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACxB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;AAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;AACnE,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACnC,MAAM,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAK,MAAM,IAAI,MAAM,YAAYD,UAAY,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,IAAI,MAAM,YAAYA,UAAY,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD,QAAQ,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;AAClC,UAAU,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChE,QAAQ,IAAI,GAAG,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO;AAC7B,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAChD;AACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5C,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AACnH;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AACzD;AACA,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChD,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO;AACnD,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM;AACtC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,QAAQ,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;AACzB,UAAU,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrD,UAAU,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,UAAU,IAAI,GAAG,EAAE;AACnB,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;AACpD,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AACD;AACA;AACA,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;AAC7B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,aAAa,EAAE,YAAY;AAC7B,EAAE,UAAU,EAAE,MAAM;AACpB,CAAC,CAAC,CAAC;AACH,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;AAClC,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;AACpC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AACvE,OAAO,IAAI,KAAK,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACpD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACrE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,KAAK,CAAC;AACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACrE,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;AACtB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,MAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAC7C,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,QAAQ,CAAC;AACzC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,KAAK,EAAE,CAAC;AAChB,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,QAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAC/C,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE;AACpC,EAAE,IAAI,SAAS,KAAK,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxB,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,EAAE,OAAOA,OAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9C,CAAC;AACD;AACA;AACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;AAClC,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;AAChC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AACvB,EAAE,OAAOA,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,OAAO,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/B,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB;AACA,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;AAC7H,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,OAAO;AAC/B,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC;AAClE,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,MAAM,QAAQ,IAAI,GAAG,IAAI,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjG;AACA,IAAI,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;AAC/B,MAAM,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,GAAGD,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE;AACA,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACnC,QAAQ,IAAI,CAACpD,aAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;AACtC,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAC9E,OAAO,MAAM,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC9C,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC1B,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAACA,aAAK,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACzD,YAAY,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAChF,UAAU,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAC9B,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;AAClC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,SAAS,CAAC;AACnB;;ACzQA,iBAAc,GAAG;AACjB,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;AAC5C,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;AAC5C,CAAC,CAAC;AACF;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,EAAE,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC;AACrC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,CAAC;AACD;AACA;AACA,eAAe,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE;AACjD,EAAE,OAAO,2BAA2B,GAAG,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC;AAClE,CAAC,CAAC;AACF;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/C,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,UAAU,GAAGN,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,aAAa,GAAGA,SAAO,CAAC,WAAW,CAACA,SAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC;AAClB;;AC/BA,2BAAc,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE;AACvC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACzD,IAAI,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1E;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;AACxC,QAAQ,OAAO,UAAU,IAAI,EAAE;AAC/B,YAAY,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AACnC,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,aAAa,CAAC;AACd,SAAS,CAAC;AACV,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE;AACtC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;AACtE,YAAY,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO;AACvC,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;AAChF,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC;AACnB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY,GAAG,GAAG,GAAG,CAAC;AACtB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,gBAAgB,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC;AAClC,gBAAgB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AACpD,aAAa;AACb,YAAY,OAAO,GAAG,GAAG,GAAG,CAAC;AAC7B,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AACzC;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACvC,YAAY,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC3D,YAAY,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;AACzE,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C;AACA,YAAY,IAAI,CAAC,KAAK,EAAE,SAAS;AACjC,YAAY,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC;AAChC,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClC,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/B,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;;ACzDD,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;AACxC,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;AAChF,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9B,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/E,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,YAAY,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAC3D,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzE,WAAW,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI,GAAG,IAAI,kBAAkB,CAAC;AAC9B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,KAAK;AACL,IAAI,GAAG,IAAI,uFAAuF,CAAC;AACnG,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,MAAM,GAAG,IAAI,GAAG,IAAI,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3D,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAC1E,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC;AAClC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAChC,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACpE,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AAC3D,IAAI,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;AAC7B,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,aAAa,GAAG,IAAI,CAAC;AAC7B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,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;AAChN,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,0CAA0C,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnE,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACxE,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACxH,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,GAAG,IAAI,gBAAgB,CAAC;AAClC,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,wCAAwC,CAAC;AAC1D,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,uBAAuB,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;AACvB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;AACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AACjC,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,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;AACpE,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;AACvC,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC;AACpB,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC1F,MAAM,IAAI,WAAW,GAAG,uCAAuC,CAAC;AAChE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxE,WAAW,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,GAAG,IAAI,gDAAgD,CAAC;AAC5D,GAAG,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;AACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS;AAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5E,IAAI,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC;AAChD,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;AAC7B,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;AACtC,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;AAClC,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9C,EAAE,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AACtE,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtF,KAAK,MAAM,IAAI,WAAW,IAAI,MAAM,EAAE;AACtC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1C,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/C,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;AACtC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;AACtC,MAAM,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,aAAa,GAAG,2BAA2B,CAAC,CAAC;AAC7H,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5C,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAC5F,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAClD,IAAI,IAAI,cAAc,IAAI,YAAY,IAAI,WAAW,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE;AAClH,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACpD,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;AACnD,QAAQ,OAAO,GAAG,YAAY,GAAG,gBAAgB,GAAG,eAAe,CAAC;AACpE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AACpG,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,IAAI,SAAS,GAAG,UAAU,GAAG,IAAI;AACzC,UAAU,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,gBAAgB,CAAC;AACzG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC9U,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC3D,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,KAAK,IAAI,QAAQ,EAAE;AACnC,cAAc,GAAG,IAAI,YAAY,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;AACtN,aAAa,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;AAChE,cAAc,GAAG,IAAI,YAAY,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;AACjM,cAAc,IAAI,KAAK,IAAI,SAAS,EAAE;AACtC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;AACpD,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAClE,aAAa,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE;AAC3C,cAAc,GAAG,IAAI,YAAY,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;AAC7O,aAAa,MAAM,IAAI,KAAK,IAAI,MAAM,EAAE;AACxC,cAAc,GAAG,IAAI,YAAY,IAAI,KAAK,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;AAC7I,aAAa,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;AAC3E,cAAc,GAAG,IAAI,YAAY,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;AACnN,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AACjN,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACtC,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;AAC9C,YAAY,IAAI,YAAY,EAAE;AAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,qBAAqB,CAAC;AAC9D,QAAQ,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AACnF,UAAU,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC3F,QAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,UAAU,GAAG,IAAI,MAAM,IAAI,WAAW,CAAC,GAAG,iBAAiB,CAAC;AAC5D,SAAS;AACT,QAAQ,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;AAChG,OAAO,MAAM;AACb,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AACjN,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACtC,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;AAC9C,YAAY,IAAI,YAAY,EAAE;AAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AACvC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5D,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,oBAAoB,CAAC;AAClC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,GAAG,IAAI,GAAG,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,eAAe,IAAI,GAAG,CAAC;AAC7B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,WAAW,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;AAC1C,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;AAChC,YAAY,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9G,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AACnC,YAAY,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;AACtE,cAAc,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU;AAChD,gBAAgB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,cAAc,IAAI,IAAI,GAAG,WAAW,CAAC;AACrC,cAAc,IAAI,IAAI,EAAE;AACxB,gBAAgB,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACzC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;AAChC,kBAAkB,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,kBAAkB,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACnD,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC9E,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;AAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;AACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1D,uBAAuB;AACvB,qBAAqB,MAAM;AAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;AACnG,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AACzE,uBAAuB,MAAM;AAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;AAClC,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa,MAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACtF,cAAc,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,cAAc,IAAI,IAAI,EAAE;AACxB,gBAAgB,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;AAChC,kBAAkB,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AAC3D,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;AAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;AACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1D,uBAAuB;AACvB,qBAAqB,MAAM;AAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;AACnG,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AACzE,uBAAuB,MAAM;AAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;AAClC,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;AACvC,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5B,cAAc,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AACzC,gBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5E,gBAAgB,IAAI,KAAK,EAAE;AAC3B,kBAAkB,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC7C,kBAAkB,IAAI,aAAa,EAAE;AACrC,oBAAoB,eAAe,IAAI,GAAG,CAAC;AAC3C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AACjD,YAAY,eAAe,GAAG,EAAE,CAAC;AACjC,WAAW;AACX,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;AAChC,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,YAAY,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;AACpF,cAAc,GAAG,IAAI,UAAU,CAAC;AAChC,cAAc,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AACvD,gBAAgB,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AAC5D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,GAAG,GAAG,EAAE,CAAC;AACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC7C,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;AACvN,gBAAgB,IAAI,YAAY,EAAE;AAClC,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AAC5C,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAChD,kBAAkB,GAAG,IAAI,0BAA0B,CAAC;AACpD,kBAAkB,IAAI,YAAY,EAAE;AACpC,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,mBAAmB,MAAM;AACzB,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AAC9C,mBAAmB;AACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3J,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;AAC9B,eAAe;AACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AACtD;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;AAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3E,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAChF,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAChI,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,kBAAkB,CAAC;AACtC,YAAY,IAAI,IAAI,EAAE;AACtB,cAAc,GAAG,IAAI,GAAG,CAAC;AACzB,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;AACtC,aAAa;AACb,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,YAAY,eAAe,IAAI,GAAG,CAAC;AACnC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,CAAC;AAClC,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AACrE,GAAG;AACH;AACA,EAAE,SAAS,eAAe,CAAC,WAAW,EAAE;AACxC,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AAChD,GAAG;AACH;AACA,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE;AACjC,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7G,GAAG;AACH;AACA,EAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AACxC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;AACxD,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACxdA;AACA;AACA;AACA;AACA,IAAI4D,YAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACM;AACvC;AACA;AACA,IAAIC,iBAAe,GAAGC,aAAY,CAAC,UAAU,CAAC;AAC9C;AACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AAClD;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE;AAC5B,MAAM,IAAI,GAAG,EAAE;AACf,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB;AACA,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChE;AACA,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,WAAW,CAAC,YAAY,GAAG,YAAY,EAAE;AACpE;AACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB;AACA,EAAE,IAAI;AACN,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC1D,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC;AACtC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,SAAS;AACZ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,GAAG;AACH;AACA;AACA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACxC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,IAAI,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;AAC3D,IAAI,IAAI,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;AAC9D,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;AACnC,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;AACzC;AACA,IAAI,IAAI,UAAU,GAAGC,QAAiB,CAAC;AACvC,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,MAAM,EAAE,OAAO;AACrB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,UAAU,EAAE,EAAE;AACpB,MAAM,aAAa,EAAE,GAAG;AACxB,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,eAAe,EAAED,aAAY,CAAC,UAAU;AAC9C,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,QAAQ,EAAEC,QAAiB;AACjC,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE/D,SAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,aAAa,EAAE,aAAa;AAClC,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,MAAM,IAAI,EAAE,IAAI;AAChB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;AACvE,qBAAqB,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;AACpF,qBAAqB,UAAU,CAAC;AAChC;AACA,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,IAAIgE,UAAQ,CAAC;AACjB,IAAI,IAAI;AACR,MAAM,IAAI,YAAY,GAAG,IAAI,QAAQ;AACrC,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,OAAO;AACf,QAAQ,YAAY;AACpB,QAAQ,iBAAiB;AACzB,QAAQ,UAAU;AAClB,OAAO,CAAC;AACR;AACA,MAAMA,UAAQ,GAAG,YAAY;AAC7B,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,WAAW;AACnB,QAAQ1D,aAAK;AACb,QAAQsD,YAAU;AAClB,QAAQC,iBAAe;AACvB,OAAO,CAAC;AACR;AACA,MAAM,MAAM,CAAC,CAAC,CAAC,GAAGG,UAAQ,CAAC;AAC3B,KAAK,CAAC,MAAM,CAAC,EAAE;AACf,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAC;AAC9E,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL;AACA,IAAIA,UAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;AAC9B,IAAIA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,IAAIA,UAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAIA,UAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,IAAIA,UAAQ,CAAC,IAAI,GAAG,MAAM,GAAGA,UAAQ,GAAG,KAAK,CAAC;AAC9C,IAAI,IAAI,MAAM,EAAEA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAClC,MAAMA,UAAQ,CAAC,MAAM,GAAG;AACxB,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAOA,UAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAC3C,IAAI,GAAG,GAAGhE,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,OAAO,EAAE,OAAO,CAAC;AACzB,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC;AAC3C,MAAM,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AACnC,QAAQ,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzC,QAAQ,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5C,QAAQ,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAGA,SAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACzB,MAAM,IAAI,WAAW,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,CAAC,GAAGA,SAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3D,cAAc,WAAW;AACzB,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACzB,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK,MAAM;AACX,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,OAAO,QAAQ,GAAG,KAAK,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,SAAS,cAAc,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,GAAG;AACH;AACA,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,IAAI,OAAO,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AAClE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAC1D,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAChE,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACvC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvD,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,SAAS,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,KAAK,EAAE;AAC7B,IAAI,QAAQ,OAAO,KAAK;AACxB,MAAM,KAAK,SAAS,CAAC;AACrB,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,EAAE,GAAG,KAAK,CAAC;AAC1B,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,KAAK,QAAQ;AACnB,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAC1C,QAAQ,IAAI,QAAQ,GAAGiE,uBAAe,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,UAAU,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3D,UAAU,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,SAAS,GAAG,KAAK,CAAC;AACjC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;AACzD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;AAC7C,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAC9C,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE;AAChD,QAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3E,OAAO,CAAC;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F;AACA,MAAM,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AAC1D,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,UAAU,IAAI,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC/F,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7E,eAAe,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACxC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACzC,QAAQ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,QAAQ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtC;AACA,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC9D,KAAK,MAAM,IAAI,KAAK,EAAE;AACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC5D,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7E,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1C,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC;AAChF;AACA,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;AACnC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AAClC;AACA,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,YAAY,GAAG,KAAK;AAChC,MAAM,QAAQ,EAAE,QAAQ;AACxB,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9C;AACA,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzD,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC3D,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACpC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG;AAC9B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,MAAM;AAClB,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5C;AACA,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACzC;AACA,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE;AAClC,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxF,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;AACvD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;AAC/B,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC;AACnF,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,OAAO,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;AAC7D,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;AAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,EAAE,OAAO,IAAI,CAAC;AACd;;;ACjYA;AACA;AACA,IAAI,KAAK,GAAG,cAAc,GAAG,SAAS,KAAK,GAAG;AAC9C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE;AACrD,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,WAAW,GAAG;AAC/C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,CAAC;;;ACrBD,IAAI,IAAI,GAAG,4BAA4B,CAAC;AACxC,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;AACnD,IAAI,IAAI,GAAG,yDAAyD,CAAC;AACrE,IAAI,QAAQ,GAAG,uGAAuG,CAAC;AACvH,IAAI,GAAG,GAAG,8nCAA8nC,CAAC;AACzoC,IAAI,MAAM,GAAG,woCAAwoC,CAAC;AACtpC;AACA,IAAI,WAAW,GAAG,mLAAmL,CAAC;AACtM;AACA;AACA;AACA;AACA,IAAIC,KAAG,GAAG,2rDAA2rD,CAAC;AACtsD,IAAI,IAAI,GAAG,8DAA8D,CAAC;AAC1E,IAAIC,cAAY,GAAG,2BAA2B,CAAC;AAC/C,IAAI,yBAAyB,GAAG,8DAA8D,CAAC;AAC/F,IAAIC,uBAAqB,GAAG,kDAAkD,CAAC;AAC/E;AACA;AACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,EAAE,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AACD;AACA;AACA,OAAO,CAAC,IAAI,GAAG;AACf;AACA,EAAE,IAAI,EAAE,4BAA4B;AACpC;AACA,EAAE,IAAI,EAAE,6EAA6E;AACrF,EAAE,WAAW,EAAE,yGAAyG;AACxH;AACA,EAAE,GAAG,EAAE,2CAA2C;AAClD,EAAE,eAAe,EAAE,wEAAwE;AAC3F,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,GAAG,EAAEF,KAAG;AACV;AACA;AACA;AACA,EAAE,KAAK,EAAE,kHAAkH;AAC3H,EAAE,QAAQ,EAAE,QAAQ;AACpB;AACA,EAAE,IAAI,EAAE,2EAA2E;AACnF;AACA,EAAE,IAAI,EAAE,opCAAopC;AAC5pC,EAAE,KAAK,EAAE,KAAK;AACd;AACA,EAAE,IAAI,EAAE,IAAI;AACZ;AACA;AACA,EAAE,cAAc,EAAEC,cAAY;AAC9B,EAAE,2BAA2B,EAAE,yBAAyB;AACxD;AACA,EAAE,uBAAuB,EAAEC,uBAAqB;AAChD,CAAC,CAAC;AACF;AACA;AACA,OAAO,CAAC,IAAI,GAAG;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,GAAG,EAAEF,KAAG;AACV,EAAE,KAAK,EAAE,0IAA0I;AACnJ,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,IAAI,EAAE,2EAA2E;AACnF,EAAE,IAAI,EAAE,opCAAopC;AAC5pC,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,cAAc,EAAEC,cAAY;AAC9B,EAAE,2BAA2B,EAAE,yBAAyB;AACxD,EAAE,uBAAuB,EAAEC,uBAAqB;AAChD,CAAC,CAAC;AACF;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B;AACA,EAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB;AACA,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,EAAE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;AAC9C,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;AACzB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE;AACrD,WAAW,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;AACtD,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;AAC7B,CAAC;AACD;AACA;AACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;AAClC,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB;AACA,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAChD,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;AAC9E,CAAC;AACD;AACA;AACA,IAAI,gBAAgB,GAAG,MAAM,CAAC;AAC9B,SAAS,GAAG,CAAC,GAAG,EAAE;AAClB;AACA,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AACD;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC1B,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;AACvC,EAAE,IAAI;AACN,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,MAAM,CAAC,EAAE;AACb,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;;AC5IA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,MAAM,EAAE,QAAQ,CAAC;AACvB,EAAE,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE;AACzC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE;AACnB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC/D,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,IAAI,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;AACzC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClC,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC3O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,2CAA2C,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;AACzG,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/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;AAC1J,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,gBAAgB,CAAC;AAClC,SAAS;AACT,OAAO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAClD,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnE,OAAO;AACP,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAClB,MAAM,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AAC3C,MAAM,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AAC1B,MAAM,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;AAClC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,cAAc,CAAC;AAC/C,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,sBAAsB,CAAC;AAClD,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;AAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,eAAe,CAAC;AACnF,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC;AAC7B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC/E,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC;AACzC,OAAO;AACP,MAAM,GAAG,IAAI,eAAe,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC;AACvD,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAC5C,OAAO;AACP,MAAM,GAAG,IAAI,2KAA2K,CAAC;AACzL,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AAC7C,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,QAAQ,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,QAAQ,CAAC,GAAG,yCAAyC,IAAI,QAAQ,CAAC,GAAG,uCAAuC,CAAC;AAClM,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC1HA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;AACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3I,QAAQ,gBAAgB,GAAG,KAAK,CAAC;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACjD,UAAU,cAAc,IAAI,GAAG,CAAC;AAChC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACxCA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE;AACpD,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3I,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AACpC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;AAC5E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;AACvB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,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;AACzG,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC/E,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACtL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,oDAAoD,CAAC;AACpE,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjD,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACjC,IAAI,GAAG,IAAI,eAAe,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC/C,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;AACpD,IAAI,GAAG,IAAI,uBAAuB,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,CAAC;AAC/H,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACZA,UAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAE9G,GAEG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;AAC/E,GAAG;AACH,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;AAC5G,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACtDA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM;AAC9B,IAAI,eAAe,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/J,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,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;AAC3I,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;AACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,cAAc,CAAC;AACnD,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,UAAU,CAAC,GAAG,KAAK,CAAC;AACpE,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACvL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,YAAY,CAAC;AACtB,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AAChJ,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC/EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,WAAW,GAAG,EAAE;AACtB,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3C,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE;AAC7B,IAAI,IAAI,SAAS,IAAI,WAAW,EAAE,SAAS;AAC3C,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,WAAW,CAAC;AAClE,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACzC,EAAE,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AACvC,EAAE,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AACtC,EAAE,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE;AACvC,IAAI,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACrC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,MAAM,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC;AACvF,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3H,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC5D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,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;AACrI,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;AAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,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;AACxJ,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AACza,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,4BAA4B,CAAC;AAChD,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACnC,cAAc,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,aAAa;AACb,YAAY,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAC5F,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,aAAa;AACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC7D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC3C,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;AAC7a,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9C,gBAAgB,GAAG,IAAI,4BAA4B,CAAC;AACpD,gBAAgB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,kBAAkB,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAChG,eAAe;AACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACzJ,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;AACpG,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACnC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAClC,EAAE,KAAK,IAAI,SAAS,IAAI,WAAW,EAAE;AACrC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AACtC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACzI,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;AACpH,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3H,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,MAAM,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACpE,MAAM,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACnF,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AAC1E,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACtKA,SAAc,GAAG,SAAS,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACjE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAE9G,GAEG;AACH,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AACrB,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;AAC7E,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AACjC,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC/J,GAAG;AACH,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;AACvN,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,+DAA+D,CAAC;AAC7E,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AChEA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AAChC,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;AAC9C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACnD,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,OAAO,GAAG,QAAQ,GAAG,IAAI;AACjC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;AACnC,MAAM,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC;AACxC,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;AACtU,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU,CAAC;AACpE,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC;AACvE,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC1G,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,IAAI,eAAe,IAAI,QAAQ,EAAE;AACrC,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC;AAC/D,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,wCAAwC,IAAI,YAAY,CAAC,GAAG,UAAU,CAAC;AACtF,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,KAAK;AACL,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;AACtI,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,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;AACvH,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC;AAC9D,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,eAAe,IAAI,QAAQ,EAAE;AACvC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAChH,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,OAAO,MAAM,IAAI,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACzE,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AACjH,OAAO;AACP,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;AACnG,IAAI,IAAI,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5D,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,WAAW,IAAI,SAAS,EAAE;AAClC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,eAAe,CAAC;AAC/B,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACpE,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;AAC9E,MAAM,GAAG,IAAI,eAAe,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC;AACvE,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,SAAS,CAAC;AACvB,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAChE,MAAM,IAAI,SAAS,EAAE,UAAU,IAAI,WAAW,CAAC;AAC/C,MAAM,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;AACxC,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACzD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAC9D,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC7L,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,qCAAqC,CAAC;AACnD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACpJA,OAAc,GAAG,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC/D,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxL,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxL,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,EAAE,IAAI,YAAY,IAAI,YAAY,EAAE;AACpC,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AAC3E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,4BAA4B,CAAC;AACjJ,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC;AAC9C,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;AACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,UAAU,CAAC;AAC/B,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;AACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,UAAU,CAAC;AAC/B,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AACtD,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACxN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,mCAAmC,IAAI,SAAS,CAAC,GAAG,kBAAkB,CAAC;AACtF,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACrGA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/B,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;AACrD,IAAI,IAAI,gBAAgB,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACxF,MAAM,IAAI,kBAAkB,GAAG,cAAc,CAAC;AAC9C,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAC7D,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC7C,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,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;AACnO,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,0CAA0C,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAC7F,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnE,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACxE,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACxH,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;AACvB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;AAC/F,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACjD,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACxD,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACxD,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;AAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACzC,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACnD,YAAY,cAAc,IAAI,GAAG,CAAC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,OAAO,gBAAgB,IAAI,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,gBAAgB,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACpN,MAAM,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC;AACpC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC;AAC1D,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAChE,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;AACzN,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;AAC1F,MAAM,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC/C,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACvC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACvD,QAAQ,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7E,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAClF,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACrD,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACvJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,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;AACpH,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;AACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACnD,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC1IA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,QAAQ,IAAI,SAAS;AACpC,IAAI,iBAAiB,GAAG,MAAM,GAAG,kBAAkB,GAAG,kBAAkB;AACxE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK;AACnE,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;AAC5B,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;AAC/B,IAAI,aAAa,GAAG,SAAS,CAAC;AAC9B,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE;AACzE,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,EAAE,WAAW,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,IAAI,QAAQ,IAAI,OAAO,WAAW,IAAI,SAAS,CAAC,EAAE;AACxH,IAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,4BAA4B,CAAC,CAAC;AACtE,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC;AACvF,MAAM,UAAU,GAAG,WAAW,GAAG,IAAI;AACrC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;AACnC,MAAM,aAAa,GAAG,cAAc,GAAG,IAAI;AAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI;AAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAC3C,IAAI,GAAG,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC;AAC1E,IAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC;AAC3C,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;AAC7N,IAAI,IAAI,aAAa,GAAG,iBAAiB,CAAC;AAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACjN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,uBAAuB,CAAC;AAChF,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,eAAe,CAAC;AAC3B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC1G,KAAK;AACL,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;AAC1mB,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AAClE,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,GAAG,OAAO,WAAW,IAAI,QAAQ;AACtD,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,IAAI,IAAI,aAAa,IAAI,OAAO,EAAE;AAClC,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC5G,OAAO;AACP,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;AACvR,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,IAAI,OAAO,KAAK,SAAS,EAAE;AAClD,QAAQ,UAAU,GAAG,IAAI,CAAC;AAC1B,QAAQ,aAAa,GAAG,iBAAiB,CAAC;AAC1C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AACpE,QAAQ,YAAY,GAAG,WAAW,CAAC;AACnC,QAAQ,MAAM,IAAI,GAAG,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,IAAI,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC7F,QAAQ,IAAI,WAAW,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,EAAE;AACnE,UAAU,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,aAAa,GAAG,iBAAiB,CAAC;AAC5C,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AACtE,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS,MAAM;AACf,UAAU,UAAU,GAAG,KAAK,CAAC;AAC7B,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC5G,OAAO;AACP,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;AACnH,KAAK;AACL,GAAG;AACH,EAAE,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAC;AAC5C,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AACrS,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,0BAA0B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AACzD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACjKA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/C,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AAC5E,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC1O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;AAC9C,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClC,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,WAAW,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;AACtC,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,cAAc,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3C,GAAG;AACH,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AACrD,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC3O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,MAAM,IAAI,QAAQ,IAAI,WAAW,EAAE;AACnC,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACnFA,oBAAc,GAAG,SAAS,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC7E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;AACpD,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,eAAe,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AACzF,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC/O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;AAC9C,MAAM,IAAI,QAAQ,IAAI,eAAe,EAAE;AACvC,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AAC3C,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,6BAA6B,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AACjF,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACnC,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;AAChI,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3E,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,GAAG,IAAI,SAAS,CAAC;AACnB,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC7N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;AACpD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;AAC9C,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,gBAAgB,CAAC;AACzB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;AAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1C,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;AAChE,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,CAAC;AAC7C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,gBAAgB,CAAC;AAC5B,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AClFA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;AACjC,IAAI,UAAU,GAAG,WAAW,GAAG,IAAI;AACnC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAC9C,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;AACvI,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACvC,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3I,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACpD,OAAO;AACP,MAAM,IAAI,EAAE,EAAE;AACd,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;AACjL,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,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;AACxI,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACvD,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC3E,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC/N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,2DAA2D,CAAC;AACzE,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,GAAG,IAAI,8EAA8E,CAAC;AACxF,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,uCAAuC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,GAAG,IAAI,qBAAqB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,0BAA0B,CAAC;AACrJ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxF,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;AAC5D,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,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;AAC/L,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;AACpD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACzEA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACzB,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;AACpD,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB;AACjD,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;AACjE,IAAI,aAAa,GAAG,YAAY,KAAK,KAAK;AAC1C,IAAI,mBAAmB,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;AAC7F,IAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB;AAChD,IAAI,gBAAgB,GAAG,aAAa,IAAI,mBAAmB,IAAI,iBAAiB;AAChF,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;AAC1C,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/B,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrC,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;AACnG,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC;AAC7B,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC;AACzE,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,eAAe,CAAC;AACzD,GAAG;AACH,EAAE,IAAI,gBAAgB,EAAE;AACxB,IAAI,IAAI,cAAc,EAAE;AACxB,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;AACxQ,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,GAAG,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;AAC1D,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;AAC9B,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,UAAU,GAAG,IAAI,qBAAqB,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5F,SAAS,MAAM;AACf,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC;AACjC,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACrC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5B,cAAc,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,cAAc,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7F,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,YAAY,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACnF,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,sBAAsB,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;AACtD,KAAK;AACL,IAAI,IAAI,iBAAiB,IAAI,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACzD,KAAK,MAAM;AACX,MAAM,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AAC3C,MAAM,IAAI,mBAAmB,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AACzD,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC1C,QAAQ,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrF,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,UAAU,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAC7D,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;AACnD,UAAU,IAAI,kBAAkB,GAAG,cAAc,CAAC;AAClD,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACtE,UAAU,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC5C,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,GAAG,GAAG,EAAE,CAAC;AACnB,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,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;AAClQ,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;AACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,GAAG,IAAI,mCAAmC,CAAC;AAC3D,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,uCAAuC,CAAC;AAC/D,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,cAAc,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxH,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,WAAW;AACX,UAAU,IAAI,KAAK,GAAG,GAAG,CAAC;AAC1B,UAAU,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACjC,UAAU,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAClD;AACA,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1B,cAAc,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACvE,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC5E,aAAa;AACb,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC5H,WAAW;AACX,UAAU,cAAc,GAAG,kBAAkB,CAAC;AAC9C,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,UAAU,CAAC;AAC9B,WAAW;AACX,SAAS;AACT,OAAO,MAAM,IAAI,mBAAmB,EAAE;AACtC,QAAQ,IAAI,iBAAiB,IAAI,SAAS,EAAE;AAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;AACpD,UAAU,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AAC/C,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AACtD,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;AACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;AACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACzE,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;AACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,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;AACnO,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AAC/D,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;AACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;AACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACzE,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;AACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC7C,MAAM,cAAc,IAAI,GAAG,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAC9D,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC;AAC3B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACzC,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACvD,YAAY,SAAS,GAAG,KAAK,GAAG,KAAK;AACrC,YAAY,WAAW,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;AACrE,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAC/C,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1F,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC3E,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACpE,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;AACrC,WAAW,MAAM;AACjB,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;AACrC,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC;AACtE,WAAW;AACX,UAAU,IAAI,WAAW,EAAE;AAC3B,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACvC,WAAW,MAAM;AACjB,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;AAC9D,cAAc,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC/D,cAAc,IAAI,cAAc,EAAE;AAClC,gBAAgB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACxI,eAAe;AACf,cAAc,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;AAC1D,cAAc,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;AAClD,gBAAgB,kBAAkB,GAAG,cAAc;AACnD,gBAAgB,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AACtE,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtG,eAAe;AACf,cAAc,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC;AAC9D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,GAAG,GAAG,EAAE,CAAC;AACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC7C,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;AACpP,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAChD,kBAAkB,GAAG,IAAI,gBAAgB,CAAC;AAC1C,kBAAkB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACtD,oBAAoB,GAAG,IAAI,wBAAwB,CAAC;AACpD,mBAAmB,MAAM;AACzB,oBAAoB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC9F,mBAAmB;AACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3J,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;AAC9B,eAAe;AACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AACtD;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;AAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3E,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAChF,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAChI,eAAe;AACf,cAAc,cAAc,GAAG,kBAAkB,CAAC;AAClD,cAAc,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AAC/C,cAAc,GAAG,IAAI,YAAY,CAAC;AAClC,aAAa,MAAM;AACnB,cAAc,IAAI,aAAa,EAAE;AACjC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AACjE,gBAAgB,IAAI,cAAc,EAAE;AACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1I,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,oBAAoB,CAAC;AACpE,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAChE,gBAAgB,IAAI,cAAc,EAAE;AACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1I,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;AAC/B,eAAe;AACf,aAAa;AACb,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;AACzC,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACjD,UAAU,cAAc,IAAI,GAAG,CAAC;AAChC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC;AAC9B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClG,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC5G,UAAU,IAAI,cAAc,EAAE;AAC9B,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;AAC9Q,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AACrF,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxF,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACnD,YAAY,cAAc,IAAI,GAAG,CAAC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC7UA,iBAAc,GAAG,SAAS,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC1E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACzC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AAC3B,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI;AACzB,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI;AACrB,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO;AAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AACjD,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ;AACnC,MAAM,eAAe,GAAG,gBAAgB,GAAG,IAAI;AAC/C,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;AAC5C,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AACjC,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,gBAAgB,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,cAAc,EAAE;AACxB,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;AACxQ,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK;AACL,IAAI,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;AACrD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,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;AACvM,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACxO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,kCAAkC,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;AAC1F,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC/EA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAE9G,GAEG;AACH,EAAE,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AACjC,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,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;AACnH,MAAM,IAAI,SAAS,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC;AACzB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,EAAE,GAAG,EAAE,EAAE;AACxB,UAAU,SAAS,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,UAAU,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,UAAU,IAAI,EAAE,YAAY,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC1L,YAAY,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACpD,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE;AACnC,IAAI,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;AACxC,MAAM,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY;AACzE,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7C,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5C,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAChD,QAAQ,IAAI,OAAO,EAAE;AACrB,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;AACrK,SAAS;AACT,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;AAC7L,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAClH,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;AACpD,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC/C,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;AAC7B,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC5D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,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;AACrI,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;AAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,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;AACxJ,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAClG,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,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;AAChP,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;AACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,GAAG,IAAI,wBAAwB,CAAC;AAChD,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC1F,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,cAAc,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACvJ,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,WAAW;AACX,UAAU,GAAG,IAAI,yFAAyF,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC/I,SAAS;AACT,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;AAC9K,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAClH,SAAS;AACT,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,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;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,GAAG,IAAI,kFAAkF,CAAC;AAClG,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;AAC7B,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,aAAa;AACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC7D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC3C,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;AAClP,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9C,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACpD,kBAAkB,GAAG,IAAI,wBAAwB,CAAC;AAClD,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5F,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe;AACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACzJ,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;AACpG,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACrC,GAAG,MAAM,IAAI,aAAa,EAAE;AAC5B,IAAI,GAAG,IAAI,cAAc,CAAC;AAC1B,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC5QA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC7D,IAAI,IAAI,OAAO,EAAE;AACjB,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;AACtO,KAAK;AACL,IAAI,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,MAAM,CAAC,GAAG,4BAA4B,CAAC;AAC1F,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;AAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9C,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;AAChK,MAAM,GAAG,IAAI,sDAAsD,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,+BAA+B,CAAC;AAC5J,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,wDAAwD,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;AAC1F,MAAM,IAAI,OAAO,GAAG,eAAe,IAAI,YAAY,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAChE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC;AAC3G,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,GAAG,IAAI,uDAAuD,CAAC;AACvE,OAAO;AACP,MAAM,GAAG,IAAI,iDAAiD,IAAI,MAAM,CAAC,GAAG,qEAAqE,CAAC;AAClJ,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,KAAK;AACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AACxM,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,uGAAuG,CAAC;AACvH,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,cAAc,CAAC;AAC9B,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACnD,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC1G,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACnFA;AACA,SAAc,GAAG;AACjB,EAAE,MAAM,EAAEb,GAAgB;AAC1B,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,KAAK,EAAEa,KAAkB;AAC3B,EAAE,UAAU,EAAEC,OAAoB;AAClC,EAAE,KAAK,EAAEC,MAAkB;AAC3B,EAAE,QAAQ,EAAEC,QAAqB;AACjC,EAAE,YAAY,EAAEC,YAAyB;AACzC,EAAE,MAAM,EAAEC,KAAiB;AAC3B,EAAE,MAAM,EAAEC,MAAmB;AAC7B,EAAE,IAAI,EAAEC,GAAe;AACvB,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,OAAO,EAAEC,MAAmB;AAC9B,EAAE,OAAO,EAAEA,MAAmB;AAC9B,EAAE,QAAQ,EAAEC,WAAwB;AACpC,EAAE,QAAQ,EAAEA,WAAwB;AACpC,EAAE,SAAS,EAAEC,YAAyB;AACtC,EAAE,SAAS,EAAEA,YAAyB;AACtC,EAAE,aAAa,EAAEC,gBAA6B;AAC9C,EAAE,aAAa,EAAEA,gBAA6B;AAC9C,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,GAAG,EAAEC,GAAgB;AACvB,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,OAAO,EAAEC,OAAoB;AAC/B,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,aAAa,EAAEC,aAA0B;AAC3C,EAAE,QAAQ,EAAEC,QAAqB;AACjC,EAAE,WAAW,EAAEC,WAAwB;AACvC,EAAE,QAAQ,EAAEC,QAAqB;AACjC,CAAC;;AC9BD,IACIC,QAAM,GAAGpC,IAAiB,CAAC,MAAM,CAAC;AACtC;AACA,SAAc,GAAG,SAAS,KAAK,GAAG;AAClC,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE;AAClD,eAAe,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;AAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AAChE,IAAI,EAAE,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;AAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe;AAC5F,eAAe,EAAE,YAAY,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE;AAClF,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;AAClF,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACnC,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;AACtD,IAAI,aAAa,EAAE,SAAS,EAAE,aAAa;AAC3C,IAAI,UAAU,EAAE,UAAU,EAAE,WAAW;AACvC,IAAI,kBAAkB,EAAE,iBAAiB;AACzC,IAAI,iBAAiB,EAAE,MAAM,EAAE,MAAM;AACrC,GAAG,CAAC;AACJ,EAAE,IAAI,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACtF,EAAE,KAAK,CAAC,GAAG,GAAGoC,QAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,EAAE,KAAK,CAAC,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACjC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;AACrD,MAAM,IAAI,YAAY,CAAC;AACvB,MAAM,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACtC,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,OAAO,GAAG,GAAG,CAAC;AACtB,QAAQ,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AACtC,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,IAAI,EAAEC,KAAW,CAAC,OAAO,CAAC;AAClC,QAAQ,UAAU,EAAE,YAAY;AAChC,OAAO,CAAC;AACR,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG;AACzB,MAAM,OAAO,EAAE,UAAU;AACzB,MAAM,IAAI,EAAEA,KAAW,CAAC,QAAQ;AAChC,KAAK,CAAC;AACN;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACpD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,KAAK,CAAC,QAAQ,GAAGD,QAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;;AC/DD,IAAI,QAAQ,GAAG;AACf,EAAE,YAAY;AACd,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,iBAAiB;AACnB,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,UAAU;AACZ,EAAE,sBAAsB;AACxB,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,CAAC,CAAC;AACF;AACA,QAAc,GAAG,UAAU,UAAU,EAAE,oBAAoB,EAAE;AAC7D,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC9B,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC;AACA,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG;AACxB,UAAU,KAAK,EAAE;AACjB,YAAY,MAAM;AAClB,YAAY,EAAE,IAAI,EAAE,gFAAgF,EAAE;AACtG,WAAW;AACX,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;;AC9CD,IAAIE,iBAAe,GAAGtC,aAA0B,CAAC,UAAU,CAAC;AAC5D;AACA,SAAc,GAAG,YAAY,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9C;AACA;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC/D;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,GAAG,SAAS,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY;AACpD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7D,IAAI,OAAO,SAAS,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1D,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,CAAC,CAAC,IAAI;AACV,MAAM,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,MAAM,QAAQ;AACd,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX;AACA;AACA,EAAE,SAAS,gBAAgB,CAAC,GAAG,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC9C,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;AAC9D,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC;AAChC,GAAG;AACH;AACA;AACA,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE;AACpC,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;AAC5C,IAAI,MAAM,CAAC,EAAE;AACb,MAAM,IAAI,CAAC,YAAYsC,iBAAe,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL;AACA;AACA,IAAI,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAClC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC;AAChC,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;AACA,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,QAAQ,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/E,QAAQ,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACzD,OAAO;AACP;AACA,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACzB,UAAU,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;AACxD,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACvE,WAAW,CAAC,CAAC;AACb,SAAS;AACT,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;AACzB,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AACxC,OAAO,CAAC,CAAC;AACT;AACA,MAAM,SAAS,aAAa,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACzC,OAAO;AACP;AACA,MAAM,SAAS,KAAK,CAAC,GAAG,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACrD,OAAO;AACP,KAAK;AACL,GAAG;AACH;;ACxFA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,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;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,IAAI,WAAW,GAAG,YAAY,GAAG,IAAI;AACrC,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU;AAC5B,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;AAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAI,aAAa,GAAG,iBAAiB,GAAG,IAAI,CAAC;AAC7C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;AAC/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;AACzJ,GAAG,MAAM;AACT,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO;AAC/B,IAAI,YAAY,GAAG,iBAAiB,GAAG,WAAW,CAAC;AACnD,IAAI,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;AACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,aAAa,GAAG,SAAS;AAC3C,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AACnB,IAAI,QAAQ,GAAG,SAAS,GAAG,IAAI;AAC/B,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC,EAAE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClF,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE;AAC5B,IAAI,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,UAAU,CAAC;AACzC,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAI,cAAc,IAAI,GAAG,CAAC;AAC1B,IAAI,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC7F,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,cAAc,IAAI,GAAG,CAAC;AAC5B,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;AAC1H,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,GAAG,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAClD,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACtE,KAAK;AACL,GAAG,MAAM,IAAI,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC;AAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AAChB,IAAI,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACzC,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;AACxC,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAC7E,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC;AACzB,GAAG,MAAM;AACT,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,IAAI,IAAI,aAAa,CAAC,GAAG,SAAS,CAAC;AAC9C,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAC5C,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;AACrG,KAAK;AACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;AAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,iBAAiB,CAAC;AACrF,IAAI,IAAI,oBAAoB,GAAG,GAAG,CAAC;AACnC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAChC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC;AACpC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,OAAO;AACP,MAAM,GAAG,IAAI,EAAE,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;AAC1C,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;AAC5O,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAClG,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE;AACvB,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;AACjH,GAAG;AACH,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,CAAC;AAC/B,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,QAAQ,CAAC;AACpB,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;AACnC,MAAM,GAAG,IAAI,IAAI,CAAC;AAClB,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,GAAG,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,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;AAC9O,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;AAC3F,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,eAAe,GAAG,GAAG,CAAC;AAC9B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;AACpC,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;AAC/X,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/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;AACtH,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AACpC,UAAU,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AAC/C,SAAS,MAAM;AACf,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;AACnc,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/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;AACtH,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,OAAO;AACP,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,GAAG,IAAI,iBAAiB,CAAC;AAC/B,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,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;AAChP,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;AAC7F,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACnJ,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,GAAG,IAAI,8EAA8E,CAAC;AAC5F,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,uCAAuC,CAAC;AACzD,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,4CAA4C,CAAC;AAC9D,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,QAAQ,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AAC7C,OAAO,MAAM;AACb,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;AACtf,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,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;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,cAAc,IAAI,eAAe,CAAC,GAAG,KAAK,CAAC;AAC1D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/NA,qBAAc,GAAG;AACjB,EAAE,GAAG,EAAE,2EAA2E;AAClF,EAAE,WAAW,EAAE;AACf,IAAI,WAAW,EAAEC,UAAU,CAAC,WAAW,CAAC,WAAW;AACnD,GAAG;AACH,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,YAAY,EAAE;AAChB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC;AACxB,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC;AACvB,IAAI,UAAU,EAAE,CAAC,QAAQ,CAAC;AAC1B,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEA,UAAU,CAAC,UAAU,CAAC,IAAI;AACpC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC7B,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AACjC,IAAI,YAAY,EAAE;AAClB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAChC,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,MAAM,EAAE;AACZ,MAAM,KAAK,EAAE;AACb,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;AACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;AACvB,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AClCD,IAAIC,YAAU,GAAG,wBAAwB,CAAC;AACK;AACO;AACtD;AACA,WAAc,GAAG;AACjB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,QAAQ,EAAE,eAAe;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;AACzC;AACA;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,qBAAqB,CAAC,CAAC;AAClE;AACA,EAAE,IAAI,CAACA,YAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,4BAA4B,CAAC,CAAC;AACzE;AACA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C;AACA,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACjC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AAC1C,QAAQ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAChD,QAAQ,UAAU,GAAG;AACrB,UAAU,KAAK,EAAE;AACjB,YAAY,UAAU;AACtB,YAAY,EAAE,MAAM,EAAE,gFAAgF,EAAE;AACxG,WAAW;AACX,SAAS,CAAC;AACV,OAAO;AACP,MAAM,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjE,KAAK;AACL,GAAG;AACH;AACA,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACtD;AACA;AACA,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;AACnD,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;AAC/B,QAAQ,SAAS,GAAG,EAAE,CAAC;AACvB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAChD,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG;AACf,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,IAAI,EAAEC,MAAc;AAC1B,MAAM,UAAU,EAAE,UAAU,CAAC,UAAU;AACvC,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;AACxE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;AACvC,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;AACjD,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;AAChC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AACvD,qCAAqC,IAAI,CAAC,OAAO,CAACC,iBAAgB,EAAE,IAAI,CAAC,CAAC;AAC1E;AACA,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI,CAAC;AACjC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACpC,EAAE,IAAI,UAAU;AAChB,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3F;AACA,IAAI,OAAO,KAAK,CAAC;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIA,OAAc,GAAG,GAAG,CAAC;AACrB;AACA,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAGjC,UAAQ,CAAC;AAClC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAGkC,SAAO,CAAC;AAChC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;AAC9C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;AAC1C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC;AACA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC;AACA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG3C,KAA0B,CAAC;AACf;AACzC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG4C,OAAa,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC,SAAS,CAAC,UAAU,GAAGA,OAAa,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC,SAAS,CAAC,aAAa,GAAGA,OAAa,CAAC,MAAM,CAAC;AACnD,GAAG,CAAC,SAAS,CAAC,eAAe,GAAGA,OAAa,CAAC,QAAQ,CAAC;AACvD;AACsD;AACtD,GAAG,CAAC,eAAe,GAAGrC,aAAY,CAAC,UAAU,CAAC;AAC9C,GAAG,CAAC,eAAe,GAAGA,aAAY,CAAC,UAAU,CAAC;AAC9C,GAAG,CAAC,eAAe,GAAGsC,IAAe,CAAC;AACtC;AACA,IAAI,cAAc,GAAG,wCAAwC,CAAC;AAC9D;AACA,IAAI,mBAAmB,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACjG,IAAI,iBAAiB,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,CAAC,IAAI,EAAE;AACnB,EAAE,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5C,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,QAAQ,GAAGC,SAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAIC,KAAK,CAAC;AACxC,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;AACpD,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AAC3E,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,IAAI,CAAC,SAAS,GAAGrC,uBAAe,CAAC;AACrE,EAAE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5C,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC9C,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,UAAQ,CAAC,YAAY,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;AACvC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;AAChF,GAAG,MAAM;AACT,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAClD,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkC,SAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AAChC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5D,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE;AACxD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5B,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;AACrG,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,EAAE,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ;AAC/C,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,EAAE,GAAG,GAAGlG,SAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACvC,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;AACpD,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AACjD,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,EAAE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ;AACzD,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACnE,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5D,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvE,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ;AAClD,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;AACvD,8BAA8B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC5D,gCAAgC,cAAc;AAC9C,gCAAgC,SAAS,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAChC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,EAAE,QAAQ,OAAO,SAAS;AAC1B,IAAI,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzE,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpD,IAAI,KAAK,WAAW,EAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9D,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;AACvC,EAAE,IAAI,GAAG,GAAGA,SAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC3D,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;AAC3B,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI;AACvB,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,CAAC,GAAGuG,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI9C,UAAY,CAAC;AAC5C,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,QAAQ,EAAE,CAAC;AACjB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,MAAM,GAAGzD,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACvC,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,YAAY,EAAE;AACpC,EAAE,IAAI,YAAY,YAAY,MAAM,EAAE;AACtC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzD,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,OAAO,YAAY;AAC7B,IAAI,KAAK,WAAW;AACpB,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1B,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACxD,MAAM,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACtC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,MAAM,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACxE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9B,OAAO;AACP,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;AACjD,EAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC9B,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;AACnE,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AAC7D,IAAI,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC1D,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACvC,EAAE,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACxD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,EAAE,OAAO,MAAM,CAAC;AAC5B;AACA,EAAE,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC;AAC1E;AACA,EAAE,IAAI,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;AAC5E,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,YAAY,IAAI,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,IAAIA,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxF,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC;AACA,EAAE,IAAI,SAAS,GAAGA,SAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD;AACA,EAAE,IAAI,SAAS,GAAG,IAAIyD,UAAY,CAAC;AACnC,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,IAAI,EAAE,IAAI;AACd,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAClE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,YAAY,IAAI,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvE;AACA,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE;AAC3B,IAAI,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC;AACtC,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;AACnD,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;AACxC,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B;AACA,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE;AACtB,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,EAAE,CAAC,GAAG8C,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE;AACpF,EAAE,MAAM,CAAC,EAAE;AACX,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC;AAC9B,IAAI,MAAM,CAAC,CAAC;AACZ,GAAG;AACH,UAAU;AACV,IAAI,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AACjD,GAAG;AACH;AACA,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC9B,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX;AACA;AACA;AACA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,QAAQ,IAAI,CAAC,QAAQ;AACvB,IAAI,KAAK,MAAM,EAAE,OAAO,WAAW,CAAC;AACpC,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAC7B,IAAI,SAAS,OAAO,OAAO,CAAC;AAC5B,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACrE,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AACD;AACA;AACA,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAClE,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AACxD,IAAI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACvD,EAAE,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;AACjC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,WAAW,CAAC;AAClC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAC7E,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AACzE;AACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;AACtE,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7D,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC/B,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACxB,IAAI,WAAW,GAAG,UAA2B,CAAC;AAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,OAAO;AACxC,EAAE,IAAI,UAAU,GAAG,UAA2C,CAAC;AAC/D,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAGH,IAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpF,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,cAAc,CAAC;AAC/D,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACvC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO;AAC3B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC9D,OAAO,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1E,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjC,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACxC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE;AAC/B,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACzC,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;AACzE,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE;AACjD,IAAI,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACjC,EAAE,IAAI,MAAM,KAAK,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,GAAG,MAAM;AACT,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;AAC/C,IAAI,IAAI,EAAE,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;AACjF,MAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,IAAI,GAAG;;mBCnfO;QAEjBI,KAAG,OAAOC;eAAiB;;;;+BAGED,YAAA;;;;kCAIV;;;;;;;AAKrB,QAAA,yBAAA;;AAED;;;;;;;AASH,MAAM,4DAAN;;;YAIa;;;iBAGJ;;;;;;AAAA;;;;;;;;;;;;;;;;;;;oBAkCG;;;sBAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2CA;;;;;AAON,kBAAQ;;;;;;;;;;;;;;;;;;;;;;sBA0BA;;kBAEF;;;;;;;;;;;;sDC5IF;;;;;AAOR,cAAU,qDAAV;;;;4BAMkB,kBAAA;;;;;;mCAamB;;;;;;;;;;;;;kBAYvB,8BAAA;;;;;AAMV,sCAAA;;;AAKF,QAAA,YAAY,WAAZ;QACA,UAAA,EAAY;;;;aAEL;;;;sBAIc,UAAA,EAExB,SAFwB;;;;;;;;;;;;;;;AC/DzB;;AACA,IAAI,IAAI,GAAA,CAAA,EAAA,aAAA,UAAA,iBAAA,SAAA,UAAR;;IACE;SACG;WACa;;AACZ,IAAA,YAAA;;;;;;;;;;;;;;YAgBW;;;;QAEb,MAAM;;;AAGR,+CAA2C,WAAA,KAAA,IAA3C;;;;QAKE,aAAaE,MAAI,CAAC,OAAD;;YAKf,qBAAqB,OAAO,KAAK;yBAAA;;;;;AAenC,4BAAoB,GAAA,CAAA,EAAA,+BAAA,MAA+B,IAA/B,IAA+B,EAAA,KAAA,KAAA,CAA/B,GAA+B,EAA/B,GAAmC,EAAvD;uBACa;;;;;KAhBsB;;;wBAyB3B,IAAI,CAAC,OAAL,CAAa,QAAb,CAAsB,SAAS,IAAI;;;iBAEtC;;;wCAI2B;;8BAEV,YAAA,SAAA,MAAA;;;AACpB;AAEA,YAAA,IAAI,QAAJ,SAAA,OAAA,CAA6B,GAA7B,GAAA,0BAAA;;;;KApCiC;;;2BA4C5B,YAAA;;;;;;+BAKI;;;;uCAM+B;;;;;;;;;;;;;4BAmBhC,GAAG,IAAI,OAAJ,CAAY,OAAZ;gDAGN;;;+BAIY,SAAS;;;gCAKJ;;;;AAKpB,qCAAA;;+EAOM,QAAQ,CAAR,GAAY,WAAZ;;;;;;AAMV;AACA,iCAAA;;OAzGmC;;oBAiH7B,qBAAqB;iBACtB;KAlH8B;;;AAuHrC,0BAAsB,CAAA,mBAAtB;4EAGoB,gBAAA;KA1HiB;;;;AAkIjC,uBAAiB,WAAmC,WAChD,CADJ,EACO,OAAO,IAAI,QAAJ,CAAa,UAApB;KAnI0B;;AAwInC;;;QACA,qDAAU,QAAV;0BACgB;;;;;;;;;;;SAkBf,OAAA;;;;;;;eAOO;AACX;;6CAcO,iBAAW;;kBAEF;;AAIf,kCAAA;kBACY;QACV,IAAI,KAAA,IAAJ,IAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAA,IAAI;;;;;;;;;;;;kDAwBO;;4BAEO;;wCACU;YAC1B;;;;;;;;AAOL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/ainsley.production.js b/dist/ainsley.production.js index bf2a403..9960dd4 100644 --- a/dist/ainsley.production.js +++ b/dist/ainsley.production.js @@ -1,3 +1,3 @@ /*! ainsley MIT @tbjgolden */ -var Ainsley=function(r,e){"use strict";e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;const a=r=>!(null===r||"object"!=typeof r||Array.isArray(r)),t=r=>{let e=[[]],a=0;for(;ae.map(e=>e.concat([r])));return e},i={addVariationToSelector:(r,e)=>e+"-"+r,addPropertyToSelector:(r,e)=>r+e.toLowerCase(),addValueToSelector:(r,e)=>r+e.toUpperCase(),abbreviateProperty:r=>[r.split("-").map(r=>r.charAt(0)).join("").toLowerCase(),r.toLowerCase()]},n=/\{[a-zA-Z0-9_-]+\}/g,o=(r,e)=>{let a="",t=[];for(let i=0;i`${r[0]}:${r[1]}`).join(";")}}`}t=n.t}for(const r of t){r[1].startsWith("@")&&(a+="}")}return a},s=(r,e,a)=>{var i;const n={...a};if(void 0!==r.variables){const e=r.variables;Object.keys(e).map(r=>{var t;const i=l(r),o=i[0],s=i[1];0===o||1===o&&void 0===n[s]?n[s]=e[r]:2===o&&(n[s]={...null!==(t=a[s])&&void 0!==t?t:{},...e[r]})})}const o=void 0===r.children?[]:f(r.children,e,n);return t((null!==(i=r.variations)&&void 0!==i?i:[]).map(r=>[["",""]].concat(r))).flatMap(r=>o.map(e=>({t:[...r,...e.t],i:e.i})))},f=(r,e,a)=>r.flatMap(r=>"string"==typeof r?[{t:[],i:r}]:Array.isArray(r)?Array.isArray(r[1])?u(r,e,a):d(r,e):s(r,e,a)),u=(r,e,a)=>{const i=r[0],o=r[1],s=[];return o.map(r=>{var e,a;const t=null!==(e=r[0].match(n))&&void 0!==e?e:[],i=null!==(a=(""+r[1]).match(n))&&void 0!==a?a:[];t.map(r=>s.push([r,0])),i.map(r=>s.push([r,1]))}),t(s.map(r=>{const e=r[0],t=r[1],i=e.slice(1,-1);return i in a||console.log(a,i),Object.keys(a[i]).map(r=>[e,r,a[i][r],t])})).map(r=>{let a=0,t=r[a];return{t:[],i:[r.reduce((r,a)=>0===a[3]?e.addPropertyToSelector(r,a[1]):e.addValueToSelector(r,a[1]),i),o.map(e=>{const i=e=>{for(;a{const a=r[1],t=e.abbreviateProperty(r[0]),i=t[0],n=t[1];return Object.keys(a).map(r=>({t:[],i:[e.addValueToSelector(e.addPropertyToSelector("",i),r),[[n,a[r]]]]}))},l=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]};var v=Function.prototype.toString,c=Object.create,h=Object.defineProperty,m=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,g=Object.getPrototypeOf,E=Object.prototype,b=E.hasOwnProperty,w=E.propertyIsEnumerable,F="function"==typeof y,P="function"==typeof WeakMap,$=function(r,e){if(!r.constructor)return c(null);var a=r.constructor,t=r.__proto__||g(r);if(a===e.Object)return t===e.Object.prototype?{}:c(t);if(~v.call(a).indexOf("[native code]"))try{return new a}catch(r){}return c(t)},j=function(r,e,a,t){var i=$(r,e);for(var n in t.set(r,i),r)b.call(r,n)&&(i[n]=a(r[n],t));if(F){var o=y(r),s=o.length;if(s)for(var f=0,u=void 0;f1){e[0]=e[0].slice(0,-1);for(var t=e.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},h=Math.floor,m=String.fromCharCode;function p(r){throw new RangeError(c[r])}function y(r,e){var a=r.split("@"),t="";a.length>1&&(t=a[0]+"@",r=a[1]);var i=function(r,e){for(var a=[],t=r.length;t--;)a[t]=e(r[t]);return a}((r=r.replace(v,".")).split("."),e).join(".");return t+i}function g(r){for(var e=[],a=0,t=r.length;a=55296&&i<=56319&&a>1,r+=h(r/e);r>455;t+=36)r=h(r/35);return h(t+36*r/(r+38))},w=function(r){var e,a=[],t=r.length,i=0,n=128,o=72,s=r.lastIndexOf("-");s<0&&(s=0);for(var f=0;f=128&&p("not-basic"),a.push(r.charCodeAt(f));for(var d=s>0?s+1:0;d=t&&p("invalid-input");var m=(e=r.charCodeAt(d++))-48<10?e-22:e-65<26?e-65:e-97<26?e-97:36;(m>=36||m>h((u-i)/v))&&p("overflow"),i+=m*v;var y=c<=o?1:c>=o+26?26:c-o;if(mh(u/g)&&p("overflow"),v*=g}var E=a.length+1;o=b(i-l,E,0==l),h(i/E)>u-n&&p("overflow"),n+=h(i/E),i%=E,a.splice(i++,0,n)}return String.fromCodePoint.apply(String,a)},F=function(r){var e=[],a=(r=g(r)).length,t=128,i=0,n=72,o=!0,s=!1,f=void 0;try{for(var d,l=r[Symbol.iterator]();!(o=(d=l.next()).done);o=!0){var v=d.value;v<128&&e.push(m(v))}}catch(r){s=!0,f=r}finally{try{!o&&l.return&&l.return()}finally{if(s)throw f}}var c=e.length,y=c;for(c&&e.push("-");y=t&&xh((u-i)/D)&&p("overflow"),i+=(w-t)*D,t=w;var A=!0,I=!1,S=void 0;try{for(var k,_=r[Symbol.iterator]();!(A=(k=_.next()).done);A=!0){var z=k.value;if(zu&&p("overflow"),z==t){for(var R=i,N=36;;N+=36){var V=N<=n?1:N>=n+26?26:N-n;if(R>6|192).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase():"%"+(e>>12|224).toString(16).toUpperCase()+"%"+(e>>6&63|128).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase()}function x(r){for(var e="",a=0,t=r.length;a=194&&i<224){if(t-a>=6){var n=parseInt(r.substr(a+4,2),16);e+=String.fromCharCode((31&i)<<6|63&n)}else e+=r.substr(a,6);a+=6}else if(i>=224){if(t-a>=9){var o=parseInt(r.substr(a+4,2),16),s=parseInt(r.substr(a+7,2),16);e+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else e+=r.substr(a,9);a+=9}else e+=r.substr(a,3),a+=3}return e}function D(r,e){function a(r){var a=x(r);return a.match(e.UNRESERVED)?a:r}return r.scheme&&(r.scheme=(r.scheme+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_SCHEME,"")),void 0!==r.userinfo&&(r.userinfo=(r.userinfo+"").replace(e.PCT_ENCODED,a).replace(e.NOT_USERINFO,O).replace(e.PCT_ENCODED,i)),void 0!==r.host&&(r.host=(r.host+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_HOST,O).replace(e.PCT_ENCODED,i)),void 0!==r.path&&(r.path=(r.path+"").replace(e.PCT_ENCODED,a).replace(r.scheme?e.NOT_PATH:e.NOT_PATH_NOSCHEME,O).replace(e.PCT_ENCODED,i)),void 0!==r.query&&(r.query=(r.query+"").replace(e.PCT_ENCODED,a).replace(e.NOT_QUERY,O).replace(e.PCT_ENCODED,i)),void 0!==r.fragment&&(r.fragment=(r.fragment+"").replace(e.PCT_ENCODED,a).replace(e.NOT_FRAGMENT,O).replace(e.PCT_ENCODED,i)),r}function A(r){return r.replace(/^0*(.*)/,"$1")||"0"}function I(r,e){var a=r.match(e.IPV4ADDRESS)||[],t=f(a,2)[1];return t?t.split(".").map(A).join("."):r}function S(r,e){var a=r.match(e.IPV6ADDRESS)||[],t=f(a,3),i=t[1],n=t[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=f(o,2),u=s[0],d=s[1],l=d?d.split(":").map(A):[],v=u.split(":").map(A),c=e.IPV4ADDRESS.test(v[v.length-1]),h=c?7:8,m=v.length-h,p=Array(h),y=0;y1){var b=p.slice(0,g.index),w=p.slice(g.index+g.length);E=b.join(":")+"::"+w.join(":")}else E=p.join(":");return n&&(E+="%"+n),E}return r}var k=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,_=void 0==="".match(/(){0}/)[1];function z(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a={},t=!1!==e.iri?s:o;"suffix"===e.reference&&(r=(e.scheme?e.scheme+":":"")+"//"+r);var i=r.match(k);if(i){_?(a.scheme=i[1],a.userinfo=i[3],a.host=i[4],a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=i[7],a.fragment=i[8],isNaN(a.port)&&(a.port=i[5])):(a.scheme=i[1]||void 0,a.userinfo=-1!==r.indexOf("@")?i[3]:void 0,a.host=-1!==r.indexOf("//")?i[4]:void 0,a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=-1!==r.indexOf("?")?i[7]:void 0,a.fragment=-1!==r.indexOf("#")?i[8]:void 0,isNaN(a.port)&&(a.port=r.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),a.host&&(a.host=S(I(a.host,t),t)),a.reference=void 0!==a.scheme||void 0!==a.userinfo||void 0!==a.host||void 0!==a.port||a.path||void 0!==a.query?void 0===a.scheme?"relative":void 0===a.fragment?"absolute":"uri":"same-document",e.reference&&"suffix"!==e.reference&&e.reference!==a.reference&&(a.error=a.error||"URI is not a "+e.reference+" reference.");var n=j[(e.scheme||a.scheme||"").toLowerCase()];if(e.unicodeSupport||n&&n.unicodeSupport)D(a,t);else{if(a.host&&(e.domainHost||n&&n.domainHost))try{a.host=P(a.host.replace(t.PCT_ENCODED,x).toLowerCase())}catch(r){a.error=a.error||"Host's domain name can not be converted to ASCII via punycode: "+r}D(a,o)}n&&n.parse&&n.parse(a,e)}else a.error=a.error||"URI can not be parsed.";return a}function R(r,e){var a=!1!==e.iri?s:o,t=[];return void 0!==r.userinfo&&(t.push(r.userinfo),t.push("@")),void 0!==r.host&&t.push(S(I(r.host+"",a),a).replace(a.IPV6ADDRESS,(function(r,e,a){return"["+e+(a?"%25"+a:"")+"]"}))),"number"==typeof r.port&&(t.push(":"),t.push(r.port.toString(10))),t.length?t.join(""):void 0}var N=/^\.\.?\//,V=/^\/\.(\/|$)/,C=/^\/\.\.(\/|$)/,T=/^\/?(?:.|\n)*?(?=\/|$)/;function q(r){for(var e=[];r.length;)if(r.match(N))r=r.replace(N,"");else if(r.match(V))r=r.replace(V,"/");else if(r.match(C))r=r.replace(C,"/"),e.pop();else if("."===r||".."===r)r="";else{var a=r.match(T);if(!a)throw Error("Unexpected dot segment condition");var t=a[0];r=r.slice(t.length),e.push(t)}return e.join("")}function M(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.iri?s:o,t=[],i=j[(e.scheme||r.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(r,e),r.host)if(a.IPV6ADDRESS.test(r.host));else if(e.domainHost||i&&i.domainHost)try{r.host=e.iri?$(r.host):P(r.host.replace(a.PCT_ENCODED,x).toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to "+(e.iri?"Unicode":"ASCII")+" via punycode: "+a}D(r,a),"suffix"!==e.reference&&r.scheme&&(t.push(r.scheme),t.push(":"));var n=R(r,e);if(void 0!==n&&("suffix"!==e.reference&&t.push("//"),t.push(n),r.path&&"/"!==r.path.charAt(0)&&t.push("/")),void 0!==r.path){var f=r.path;e.absolutePath||i&&i.absolutePath||(f=q(f)),void 0===n&&(f=f.replace(/^\/\//,"/%2F")),t.push(f)}return void 0!==r.query&&(t.push("?"),t.push(r.query)),void 0!==r.fragment&&(t.push("#"),t.push(r.fragment)),t.join("")}function U(r,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=arguments[3],i={};return t||(r=z(M(r,a),a),e=z(M(e,a),a)),!(a=a||{}).tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=q(e.path||""),i.query=e.query):(void 0!==e.userinfo||void 0!==e.host||void 0!==e.port?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=q(e.path||""),i.query=e.query):(e.path?("/"===e.path.charAt(0)?i.path=q(e.path):(i.path=void 0===r.userinfo&&void 0===r.host&&void 0===r.port||r.path?r.path?r.path.slice(0,r.path.lastIndexOf("/")+1)+e.path:e.path:"/"+e.path,i.path=q(i.path)),i.query=e.query):(i.path=r.path,i.query=void 0!==e.query?e.query:r.query),i.userinfo=r.userinfo,i.host=r.host,i.port=r.port),i.scheme=r.scheme),i.fragment=e.fragment,i}function B(r,e){return r&&(""+r).replace(e&&e.iri?s.PCT_ENCODED:o.PCT_ENCODED,x)}var L={scheme:"http",domainHost:!0,parse:function(r,e){return r.host||(r.error=r.error||"HTTP URIs must have a host."),r},serialize:function(r,e){return r.port!==("https"!==(r.scheme+"").toLowerCase()?80:443)&&""!==r.port||(r.port=void 0),r.path||(r.path="/"),r}},H={scheme:"https",domainHost:L.domainHost,parse:L.parse,serialize:L.serialize},J={},Z="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",K="[0-9A-Fa-f]",Q=a(a("%[EFef]"+K+"%"+K+K+"%"+K+K)+"|"+a("%[89A-Fa-f]"+K+"%"+K+K)+"|"+a("%"+K+K)),W=e("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),G=/[A-Za-z0-9\-\.\_\~\xA0-\u200D\u2010-\u2029\u202F-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]/g,Y=RegExp(Q,"g"),X=RegExp(e("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',W),"g"),rr=RegExp(e("[^]",Z,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),er=rr;function ar(r){var e=x(r);return e.match(G)?e:r}var tr={scheme:"mailto",parse:function(r,e){var a=r,t=a.to=a.path?a.path.split(","):[];if(a.path=void 0,a.query){for(var i=!1,n={},o=a.query.split("&"),s=0,f=o.length;s=55296&&e<=56319&&i=e)throw Error("Cannot access property/index "+t+" levels up, current level is "+e);return a[e-t]}if(t>e)throw Error("Cannot access data "+t+" levels up, current level is "+e);if(n="data"+(e-t||""),!i)return n}for(var s=n,f=i.split("/"),u=0;u=0?{index:t,compiling:!0}:(this._compilations[t=this._compilations.length]={schema:r,root:e,baseId:a},{index:t,compiling:!1})}function Dr(r,e,a){var t=Ar.call(this,r,e,a);t>=0&&this._compilations.splice(t,1)}function Ar(r,e,a){for(var t=0;t%\\^`{|}]|%[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,Ur=/^(?:(?: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,Br=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Lr=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Hr=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Jr=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Zr=Kr;function Kr(r){return R.copy(Kr[r="full"==r?"full":"fast"])}function Qr(r){var e=r.match(Nr);if(!e)return!1;var a=+e[2],t=+e[3];return a>=1&&a<=12&&t>=1&&t<=(2==a&&function(r){return r%4==0&&(r%100!=0||r%400==0)}(+e[1])?29:Vr[a])}function Wr(r,e){var a=r.match(Cr);if(!a)return!1;var t=a[1],i=a[2],n=a[3];return(t<=23&&i<=59&&n<=59||23==t&&59==i&&60==n)&&(!e||a[5])}Kr.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"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,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":Mr,url:Ur,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,hostname:Tr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,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,regex:re,uuid:Br,"json-pointer":Lr,"json-pointer-uri-fragment":Hr,"relative-json-pointer":Jr},Kr.full={date:Qr,time:Wr,"date-time":function(r){var e=r.split(Gr);return 2==e.length&&Qr(e[0])&&Wr(e[1],!0)},uri:function(r){return Yr.test(r)&&qr.test(r)},"uri-reference":/^(?:[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,"uri-template":Mr,url:Ur,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,hostname:Tr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,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,regex:re,uuid:Br,"json-pointer":Lr,"json-pointer-uri-fragment":Hr,"relative-json-pointer":Jr};var Gr=/t|\s/i;var Yr=/\/|:/;var Xr=/[^\\]\\Z/;function re(r){if(Xr.test(r))return!1;try{return RegExp(r),!0}catch(r){return!1}}var ee=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.l&&s&&s.l;v?(i+=" var schema"+n+" = "+r.util.getData(s.l,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c="maximum"==e,h=c?"exclusiveMaximum":"exclusiveMinimum",m=r.schema[h],p=r.opts.l&&m&&m.l,y=c?"<":">",g=c?">":"<",E=void 0;if(p){var b=r.util.getData(m.l,o,r.dataPathArr),w="exclusive"+n,F="exclType"+n,P="exclIsNumber"+n,$="' + "+(x="op"+n)+" + '";i+=" var schemaExcl"+n+" = "+b+"; ";var j;E=h;(j=j||[]).push(i+=" var "+w+"; var "+F+" = typeof "+(b="schemaExcl"+n)+"; if ("+F+" != 'boolean' && "+F+" != 'undefined' && "+F+" != 'number') { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: {} ",!1!==r.opts.messages&&(i+=" , message: '"+h+" should be boolean' "),r.opts.verbose&&(i+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var O=i;i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+F+" == 'number' ? ( ("+w+" = "+t+" === undefined || "+b+" "+y+"= "+t+") ? "+l+" "+g+"= "+b+" : "+l+" "+g+" "+t+" ) : ( ("+w+" = "+b+" === true) ? "+l+" "+g+"= "+t+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { var op"+n+" = "+w+" ? '"+y+"' : '"+y+"='; ",void 0===s&&(E=h,u=r.errSchemaPath+"/"+h,t=b,v=p)}else{$=y;if((P="number"==typeof m)&&v){var x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" ( "+t+" === undefined || "+m+" "+y+"= "+t+" ? "+l+" "+g+"= "+m+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { "}else{P&&void 0===s?(w=!0,E=h,u=r.errSchemaPath+"/"+h,t=m,g+="="):(P&&(t=Math[c?"min":"max"](m,s)),m===(!P||t)?(w=!0,E=h,u=r.errSchemaPath+"/"+h,g+="="):(w=!1,$+="="));x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+l+" "+g+" "+t+" || "+l+" !== "+l+") { "}}E=E||e,(j=j||[]).push(i),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_limit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { comparison: "+x+", limit: "+t+", exclusive: "+w+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be "+$+" ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";O=i;return i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { "),i},ae=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.l&&s&&s.l;v?(i+=" var schema"+n+" = "+r.util.getData(s.l,o,r.dataPathArr)+"; ",t="schema"+n):t=s,i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" "+l+".length "+("maxItems"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitItems")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxItems"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" items' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},te=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.l&&s&&s.l;v?(i+=" var schema"+n+" = "+r.util.getData(s.l,o,r.dataPathArr)+"; ",t="schema"+n):t=s,i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=!1===r.opts.unicode?" "+l+".length ":" ucs2length("+l+") ";var c=e,h=h||[];h.push(i+=" "+("maxLength"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitLength")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT be ",i+="maxLength"==e?"longer":"shorter",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" characters' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},ie=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.l&&s&&s.l;v?(i+=" var schema"+n+" = "+r.util.getData(s.l,o,r.dataPathArr)+"; ",t="schema"+n):t=s,i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" Object.keys("+l+").length "+("maxProperties"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitProperties")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxProperties"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" properties' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},ne={o:function(r,e,a){var t,i,n=" ",o=r.dataLevel,s=r.schema[e],f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(o||""),l="valid"+r.level;if("#"==s||"#/"==s)r.isRoot?(t=r.async,i="validate"):(t=!0===r.root.schema.s,i="root.refVal[0]");else{var v=r.resolveRef(r.baseId,s,r.isRoot);if(void 0===v){var c=r.MissingRefError.message(r.baseId,s);if("fail"==r.opts.missingRefs){r.logger.error(c),(y=y||[]).push(n),n="",!1!==r.createErrors?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { ref: '"+r.util.escapeQuotes(s)+"' } ",!1!==r.opts.messages&&(n+=" , message: 'can\\'t resolve reference "+r.util.escapeQuotes(s)+"' "),r.opts.verbose&&(n+=" , schema: "+r.util.toQuotedString(s)+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;n=y.pop(),n+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(n+=" if (false) { ")}else{if("ignore"!=r.opts.missingRefs)throw new r.MissingRefError(r.baseId,s,c);r.logger.warn(c),u&&(n+=" if (true) { ")}}else if(v.inline){var m=r.util.copy(r);m.level++;var p="valid"+m.level;m.schema=v.schema,m.schemaPath="",m.errSchemaPath=s,n+=" "+r.validate(m).replace(/validate\.schema/g,v.code)+" ",u&&(n+=" if ("+p+") { ")}else t=!0===v.s||r.async&&!1!==v.s,i=v.code}if(i){var y;(y=y||[]).push(n),n="",n+=r.opts.passContext?" "+i+".call(this, ":" "+i+"( ",n+=" "+d+", (dataPath || '')",'""'!=r.errorPath&&(n+=" + "+r.errorPath);var g=n+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?r.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(n=y.pop(),t){if(!r.async)throw Error("async schema referenced by sync schema");u&&(n+=" var "+l+"; "),n+=" try { await "+g+"; ",u&&(n+=" "+l+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(n+=" "+l+" = false; "),n+=" } ",u&&(n+=" if ("+l+") { ")}else n+=" if (!"+g+") { if (vErrors === null) vErrors = "+i+".errors; else vErrors = vErrors.concat("+i+".errors); errors = vErrors.length; } ",u&&(n+=" else { ")}return n},allOf:function(r,e,a){var t=" ",i=r.schema[e],n=r.schemaPath+r.util.getProperty(e),o=r.errSchemaPath+"/"+e,s=!r.opts.allErrors,f=r.util.copy(r),u="";f.level++;var d="valid"+f.level,l=f.baseId,v=!0,c=i;if(c)for(var h,m=-1,p=c.length-1;m0:r.util.schemaHasRules(h,r.RULES.all))&&(v=!1,f.schema=h,f.schemaPath=n+"["+m+"]",f.errSchemaPath=o+"/"+m,t+=" "+r.validate(f)+" ",f.baseId=l,s&&(t+=" if ("+d+") { ",u+="}"));return s&&(t+=v?" if (true) { ":" "+u.slice(0,-1)+" "),t=r.util.cleanUpCode(t)},anyOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level;if(o.every((function(e){return r.opts.strictKeywords?"object"==typeof e&&Object.keys(e).length>0:r.util.schemaHasRules(e,r.RULES.all)}))){var p=c.baseId;t+=" var "+v+" = errors; var "+l+" = false; ";var y=r.compositeRule;r.compositeRule=c.compositeRule=!0;var g=o;if(g)for(var E,b=-1,w=g.length-1;b0:r.util.schemaHasRules(o,r.RULES.all);if(t+="var "+v+" = errors;var "+l+";",E){var b=r.compositeRule;r.compositeRule=c.compositeRule=!0,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+h+" = false; for (var "+m+" = 0; "+m+" < "+d+".length; "+m+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers,!0);var w=d+"["+m+"]";c.dataPathArr[p]=m;var F=r.validate(c);c.baseId=g,r.util.varOccurences(F,y)<2?t+=" "+r.util.varReplace(F,y,w)+" ":t+=" var "+y+" = "+w+"; "+F+" ",t+=" if ("+h+") break; } ",r.compositeRule=c.compositeRule=b,t+=" if (!"+h+") {"}else t+=" if ("+d+".length == 0) {";var P=P||[];P.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should contain a valid item' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;return t=P.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",E&&(t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } "),r.opts.allErrors&&(t+=" } "),t=r.util.cleanUpCode(t)},dependencies:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m={},p={},y=r.opts.ownProperties;for(b in o){var g=Array.isArray(R=o[b])?p:m;g[b]=R}t+="var "+l+" = errors;";var E=r.errorPath;for(var b in t+="var missing"+i+";",p)if((g=p[b]).length){if(t+=" if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),u){t+=" && ( ";var w=g;if(w)for(var F=-1,P=w.length-1;F0:r.util.schemaHasRules(R,r.RULES.all))&&(t+=" "+h+" = true; if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),t+=") { ",v.schema=R,v.schemaPath=s+r.util.getProperty(b),v.errSchemaPath=f+"/"+r.util.escapeFragment(b),t+=" "+r.validate(v)+" ",v.baseId=z,t+=" } ",u&&(t+=" if ("+h+") { ",c+="}"))}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t=r.util.cleanUpCode(t)},enum:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v=r.opts.l&&o&&o.l;v&&(t+=" var schema"+i+" = "+r.util.getData(o.l,n,r.dataPathArr)+"; ");var c="i"+i,h="schema"+i;v||(t+=" var "+h+" = validate.schema"+s+";"),t+="var "+l+";",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=l+" = false;for (var "+c+"=0; "+c+"<"+h+".length; "+c+"++) if (equal("+d+", "+h+"["+c+"])) { "+l+" = true; break; }",v&&(t+=" } ");var m=m||[];m.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { allowedValues: schema"+i+" } ",!1!==r.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var p=t;return t=m.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",u&&(t+=" else { "),t},format:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||"");if(!1===r.opts.format)return u&&(t+=" if (true) { "),t;var l,v=r.opts.l&&o&&o.l;v?(t+=" var schema"+i+" = "+r.util.getData(o.l,n,r.dataPathArr)+"; ",l="schema"+i):l=o;var c=r.opts.unknownFormats,h=Array.isArray(c);if(v){t+=" var "+(m="format"+i)+" = formats["+l+"]; var "+(p="isObject"+i)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+i)+" = "+p+" && "+m+".type || 'string'; if ("+p+") { ",r.async&&(t+=" var async"+i+" = "+m+".async; "),t+=" "+m+" = "+m+".validate; } if ( ",v&&(t+=" ("+l+" !== undefined && typeof "+l+" != 'string') || "),t+=" (","ignore"!=c&&(t+=" ("+l+" && !"+m+" ",h&&(t+=" && self._opts.unknownFormats.indexOf("+l+") == -1 "),t+=") || "),t+=" ("+m+" && "+y+" == '"+a+"' && !(typeof "+m+" == 'function' ? ",t+=r.async?" (async"+i+" ? await "+m+"("+d+") : "+m+"("+d+")) ":" "+m+"("+d+") ",t+=" : "+m+".test("+d+"))))) {"}else{var m;if(!(m=r.formats[o])){if("ignore"==c)return r.logger.warn('unknown format "'+o+'" ignored in schema at path "'+r.errSchemaPath+'"'),u&&(t+=" if (true) { "),t;if(h&&c.indexOf(o)>=0)return u&&(t+=" if (true) { "),t;throw Error('unknown format "'+o+'" is used in schema at path "'+r.errSchemaPath+'"')}var p,y=(p="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(p){var g=!0===m.async;m=m.validate}if(y!=a)return u&&(t+=" if (true) { "),t;if(g){if(!r.async)throw Error("async format in sync schema");t+=" if (!(await "+(E="formats"+r.util.getProperty(o)+".validate")+"("+d+"))) { "}else{t+=" if (! ";var E="formats"+r.util.getProperty(o);p&&(E+=".validate"),t+="function"==typeof m?" "+E+"("+d+") ":" "+E+".test("+d+") ",t+=") { "}}var b=b||[];b.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'format' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { format: ",t+=v?""+l:""+r.util.toQuotedString(o),t+=" } ",!1!==r.opts.messages&&(t+=" , message: 'should match format \"",t+=v?"' + "+l+" + '":""+r.util.escapeQuotes(o),t+="\"' "),r.opts.verbose&&(t+=" , schema: ",t+=v?"validate.schema"+s:""+r.util.toQuotedString(o),t+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var w=t;return t=b.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",u&&(t+=" else { "),t},if:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r);c.level++;var h="valid"+c.level,m=r.schema.then,p=r.schema.else,y=void 0!==m&&(r.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:r.util.schemaHasRules(m,r.RULES.all)),g=void 0!==p&&(r.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:r.util.schemaHasRules(p,r.RULES.all)),E=c.baseId;if(y||g){var b;c.createErrors=!1,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+v+" = errors; var "+l+" = true; ";var w=r.compositeRule;r.compositeRule=c.compositeRule=!0,t+=" "+r.validate(c)+" ",c.baseId=E,c.createErrors=!0,t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } ",r.compositeRule=c.compositeRule=w,y?(t+=" if ("+h+") { ",c.schema=r.schema.then,c.schemaPath=r.schemaPath+".then",c.errSchemaPath=r.errSchemaPath+"/then",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'then'; ":b="'then'",t+=" } ",g&&(t+=" else { ")):t+=" if (!"+h+") { ",g&&(c.schema=r.schema.else,c.schemaPath=r.schemaPath+".else",c.errSchemaPath=r.errSchemaPath+"/else",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'else'; ":b="'else'",t+=" } "),t+=" if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { failingKeyword: "+b+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match \"' + "+b+" + '\" schema' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } ",u&&(t+=" else { "),t=r.util.cleanUpCode(t)}else u&&(t+=" if (true) { ");return t},items:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p="i"+i,y=c.dataLevel=r.dataLevel+1,g="data"+y,E=r.baseId;if(t+="var "+v+" = errors;var "+l+";",Array.isArray(o)){var b=r.schema.additionalItems;if(!1===b){t+=" "+l+" = "+d+".length <= "+o.length+"; ";var w=f;f=r.errSchemaPath+"/additionalItems";var F=F||[];F.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { limit: "+o.length+" } ",!1!==r.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),r.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var P=t;t=F.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+P+"]); ":" validate.errors = ["+P+"]; return false; ":" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",f=w,u&&(h+="}",t+=" else { ")}var $=o;if($)for(var j,O=-1,x=$.length-1;O0:r.util.schemaHasRules(j,r.RULES.all)){t+=" "+m+" = true; if ("+d+".length > "+O+") { ";var D=d+"["+O+"]";c.schema=j,c.schemaPath=s+"["+O+"]",c.errSchemaPath=f+"/"+O,c.errorPath=r.util.getPathExpr(r.errorPath,O,r.opts.jsonPointers,!0),c.dataPathArr[y]=O;var A=r.validate(c);c.baseId=E,r.util.varOccurences(A,g)<2?t+=" "+r.util.varReplace(A,g,D)+" ":t+=" var "+g+" = "+D+"; "+A+" ",t+=" } ",u&&(t+=" if ("+m+") { ",h+="}")}if("object"==typeof b&&(r.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:r.util.schemaHasRules(b,r.RULES.all))){c.schema=b,c.schemaPath=r.schemaPath+".additionalItems",c.errSchemaPath=r.errSchemaPath+"/additionalItems",t+=" "+m+" = true; if ("+d+".length > "+o.length+") { for (var "+p+" = "+o.length+"; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;A=r.validate(c);c.baseId=E,r.util.varOccurences(A,g)<2?t+=" "+r.util.varReplace(A,g,D)+" ":t+=" var "+g+" = "+D+"; "+A+" ",u&&(t+=" if (!"+m+") break; "),t+=" } } ",u&&(t+=" if ("+m+") { ",h+="}")}}else if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" for (var "+p+" = 0; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;A=r.validate(c);c.baseId=E,r.util.varOccurences(A,g)<2?t+=" "+r.util.varReplace(A,g,D)+" ":t+=" var "+g+" = "+D+"; "+A+" ",u&&(t+=" if (!"+m+") break; "),t+=" }"}return u&&(t+=" "+h+" if ("+v+" == errors) {"),t=r.util.cleanUpCode(t)},maximum:ee,minimum:ee,maxItems:ae,minItems:ae,maxLength:te,minLength:te,maxProperties:ie,minProperties:ie,multipleOf:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.l&&s&&s.l;v?(i+=" var schema"+n+" = "+r.util.getData(s.l,o,r.dataPathArr)+"; ",t="schema"+n):t=s,i+="var division"+n+";if (",v&&(i+=" "+t+" !== undefined && ( typeof "+t+" != 'number' || "),i+=" (division"+n+" = "+l+" / "+t+", ",i+=r.opts.multipleOfPrecision?" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+r.opts.multipleOfPrecision+" ":" division"+n+" !== parseInt(division"+n+") ",i+=" ) ",v&&(i+=" ) ");var c=c||[];c.push(i+=" ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { multipleOf: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be multiple of ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var h=i;return i=c.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},not:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f,t+=" var "+l+" = errors; ";var h,m=r.compositeRule;r.compositeRule=v.compositeRule=!0,v.createErrors=!1,v.opts.allErrors&&(h=v.opts.allErrors,v.opts.allErrors=!1),t+=" "+r.validate(v)+" ",v.createErrors=!0,h&&(v.opts.allErrors=h),r.compositeRule=v.compositeRule=m;var p=p||[];p.push(t+=" if ("+c+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var y=t;t=p.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } ")}else t+=" var err = ",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(t+=" if (false) { ");return t},oneOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p=c.baseId,y="prevValid"+i,g="passingSchemas"+i;t+="var "+v+" = errors , "+y+" = false , "+l+" = false , "+g+" = null; ";var E=r.compositeRule;r.compositeRule=c.compositeRule=!0;var b=o;if(b)for(var w,F=-1,P=b.length-1;F0:r.util.schemaHasRules(w,r.RULES.all))?(c.schema=w,c.schemaPath=s+"["+F+"]",c.errSchemaPath=f+"/"+F,t+=" "+r.validate(c)+" ",c.baseId=p):t+=" var "+m+" = true; ",F&&(t+=" if ("+m+" && "+y+") { "+l+" = false; "+g+" = ["+g+", "+F+"]; } else { ",h+="}"),t+=" if ("+m+") { "+l+" = "+y+" = true; "+g+" = "+F+"; }";return r.compositeRule=c.compositeRule=E,t+=h+"if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { passingSchemas: "+g+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else { errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; }",r.opts.allErrors&&(t+=" } "),t},pattern:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.l&&s&&s.l;v?(i+=" var schema"+n+" = "+r.util.getData(s.l,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c=v?"(new RegExp("+t+"))":r.usePattern(s);i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'string') || ");var h=h||[];h.push(i+=" !"+c+".test("+l+") ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { pattern: ",i+=v?""+t:""+r.util.toQuotedString(s),i+=" } ",!1!==r.opts.messages&&(i+=" , message: 'should match pattern \"",i+=v?"' + "+t+" + '":""+r.util.escapeQuotes(s),i+="\"' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+r.util.toQuotedString(s),i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},properties:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m="key"+i,p="idx"+i,y=v.dataLevel=r.dataLevel+1,g="data"+y,E="dataProperties"+i,b=Object.keys(o||{}),w=r.schema.patternProperties||{},F=Object.keys(w),P=r.schema.additionalProperties,$=b.length||F.length,j=!1===P,O="object"==typeof P&&Object.keys(P).length,x=r.opts.removeAdditional,D=j||O||x,A=r.opts.ownProperties,I=r.baseId,S=r.schema.required;if(S&&(!r.opts.l||!S.l)&&S.length8)t+=" || validate.schema"+s+".hasOwnProperty("+m+") ";else{var _=b;if(_)for(var z=-1,R=_.length-1;z0:r.util.schemaHasRules(G,r.RULES.all)){var Y=r.util.getProperty(K),X=(L=d+Y,J&&void 0!==G.default);v.schema=G,v.schemaPath=s+Y,v.errSchemaPath=f+"/"+r.util.escapeFragment(K),v.errorPath=r.util.getPath(r.errorPath,K,r.opts.jsonPointers),v.dataPathArr[y]=r.util.toQuotedString(K);H=r.validate(v);if(v.baseId=I,r.util.varOccurences(H,g)<2){H=r.util.varReplace(H,g,L);var rr=L}else{rr=g;t+=" var "+g+" = "+L+"; "}if(X)t+=" "+H+" ";else{if(k&&k[K]){t+=" if ( "+rr+" === undefined ",A&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(K)+"') "),t+=") { "+h+" = false; ";T=r.errorPath,M=f;var er,ar=r.util.escapeQuotes(K);r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPath(T,K,r.opts.jsonPointers)),f=r.errSchemaPath+"/required",(er=er||[]).push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+ar+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+ar+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";U=t;t=er.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+U+"]); ":" validate.errors = ["+U+"]; return false; ":" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f=M,r.errorPath=T,t+=" } else { "}else u?(t+=" if ( "+rr+" === undefined ",A&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(K)+"') "),t+=") { "+h+" = true; } else { "):(t+=" if ("+rr+" !== undefined ",A&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(K)+"') "),t+=" ) { ");t+=" "+H+" } "}}u&&(t+=" if ("+h+") { ",c+="}")}}if(F.length){var tr=F;if(tr)for(var ir,nr=-1,or=tr.length-1;nr0:r.util.schemaHasRules(G,r.RULES.all)){v.schema=G,v.schemaPath=r.schemaPath+".patternProperties"+r.util.getProperty(ir),v.errSchemaPath=r.errSchemaPath+"/patternProperties/"+r.util.escapeFragment(ir),t+=A?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+p+"=0; "+p+"<"+E+".length; "+p+"++) { var "+m+" = "+E+"["+p+"]; ":" for (var "+m+" in "+d+") { ",t+=" if ("+r.usePattern(ir)+".test("+m+")) { ",v.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers);L=d+"["+m+"]";v.dataPathArr[y]=m;H=r.validate(v);v.baseId=I,r.util.varOccurences(H,g)<2?t+=" "+r.util.varReplace(H,g,L)+" ":t+=" var "+g+" = "+L+"; "+H+" ",u&&(t+=" if (!"+h+") break; "),t+=" } ",u&&(t+=" else "+h+" = true; "),t+=" } ",u&&(t+=" if ("+h+") { ",c+="}")}}}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t=r.util.cleanUpCode(t)},propertyNames:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(t+="var "+l+" = errors;",r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f;var h="key"+i,m="idx"+i,p="i"+i,y="' + "+h+" + '",g="data"+(v.dataLevel=r.dataLevel+1),E="dataProperties"+i,b=r.opts.ownProperties,w=r.baseId;b&&(t+=" var "+E+" = undefined; "),t+=b?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+m+"=0; "+m+"<"+E+".length; "+m+"++) { var "+h+" = "+E+"["+m+"]; ":" for (var "+h+" in "+d+") { ",t+=" var startErrs"+i+" = errors; ";var F=h,P=r.compositeRule;r.compositeRule=v.compositeRule=!0;var $=r.validate(v);v.baseId=w,r.util.varOccurences($,g)<2?t+=" "+r.util.varReplace($,g,F)+" ":t+=" var "+g+" = "+F+"; "+$+" ",r.compositeRule=v.compositeRule=P,t+=" if (!"+c+") { for (var "+p+"=startErrs"+i+"; "+p+"0:r.util.schemaHasRules(E,r.RULES.all))||(h[h.length]=p)}}else h=o;if(v||h.length){var b=r.errorPath,w=v||h.length>=r.opts.loopRequired,F=r.opts.ownProperties;if(u)if(t+=" var missing"+i+"; ",w){v||(t+=" var "+c+" = validate.schema"+s+"; ");var P="' + "+(A="schema"+i+"["+(O="i"+i)+"]")+" + '";r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPathExpr(b,A,r.opts.jsonPointers)),t+=" var "+l+" = true; ",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=" for (var "+O+" = 0; "+O+" < "+c+".length; "+O+"++) { "+l+" = "+d+"["+c+"["+O+"]] !== undefined ",F&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", "+c+"["+O+"]) "),t+="; if (!"+l+") break; } ",v&&(t+=" } "),(D=D||[]).push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+P+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+P+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;t=D.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var j=h;if(j)for(var O=-1,x=j.length-1;O 1) { ";var h=r.schema.items&&r.schema.items.type,m=Array.isArray(h);if(!h||"object"==h||"array"==h||m&&(h.indexOf("object")>=0||h.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+l+"[i], "+l+"[j])) { "+v+" = false; break outer; } } } ";else i+=" var itemIndices = {}, item; for (;i--;) { var item = "+l+"[i]; ",i+=" if ("+r.util["checkDataType"+(m?"s":"")](h,"item",!0)+") continue; ",m&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+v+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";i+=" } ",c&&(i+=" } ");var p=p||[];p.push(i+=" if (!"+v+") { "),i="",!1!==r.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { i: i, j: j } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),r.opts.verbose&&(i+=" , schema: ",i+=c?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var y=i;i=p.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { ")}else d&&(i+=" if (true) { ");return i},validate:Pr},oe=R.toHash,se=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"],fe=function(r,e){for(var a=0;a{const e=new Se({allErrors:!0});if(e.validate(He,r),null!=e.errors){const r=Infinity;let a=[];return e.errors.forEach(e=>{const t=e.schemaPath.split("/").length;t===r?a.push(Le(e)):t`Ainsley${r.dataPath}${void 0===r.message?"":" "+r.message}`,He={v:"http://json-schema.org/draft-07/schema#",definitions:{Primitive:{anyOf:[{type:"string"},{type:"number"}]}},properties:{children:{items:{anyOf:[{items:[{type:"string"},{items:{items:[{type:"string"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"},type:"array"}],minItems:2,maxItems:2,type:"array"},{items:[{type:"string"},{anyOf:[{type:"object",additionalProperties:{o:"#/definitions/Primitive"}},{type:"array",items:{anyOf:[{o:"#/definitions/Primitive"},{items:[{o:"#/definitions/Primitive"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"}]}}]}],minItems:2,maxItems:2,type:"array"},{type:"string"},{o:"#"}]},type:"array"},variables:{type:"object",additionalProperties:{type:"object",additionalProperties:{o:"#/definitions/Primitive"}}},variations:{items:{items:{items:[{type:"string"},{type:"string"}],minItems:2,maxItems:2,type:"array"},type:"array"},type:"array"}},type:"object"},Je=async(r,e=Ze)=>{const a=Be(r);if(a.length>0)throw Error("Invalid input Ainsley:\n"+a.join("\n"));const t=A(r);return Array.isArray(t.children)&&await Promise.all(t.children.map(async(r,a)=>{if("string"==typeof r&&r.startsWith("$")){const i=await Ke(r.slice(1),e);t.children[a]=i}return r})),t},Ze=async r=>{try{return(await import("ainsley-config-"+r)).config}catch(a){try{const a=new URL(r),t=await e(a.href);let i=await t.text();try{i=JSON.parse(i)}catch(r){}return i}catch(e){return`/* ${r.trim()} */`}}},Ke=async(r,e)=>{try{const t=await e(r);return a(t)?await Je(t,e):t}catch(e){return`/* ${r.trim()} */`}};var Qe;let We=null===(Qe=globalThis)||void 0===Qe?void 0:Qe.csso;void 0===We&&import("csso").then(({default:r})=>{We=r}).catch(()=>{});const Ge=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]},Ye=(r,e)=>`${["","?","+"][r]}${e}`,Xe=r=>{try{return We.minify(r).css}catch(e){return We&&We.minify?console.error(e):console.warn("`csso` - an optional dependency - is not installed; inline CSS will not be minified"),r}},ra=/\{[a-z]+\}/gi,ea=(r,e=new Set)=>(r.forEach(r=>{if(Array.isArray(r))ea(r,e);else if("string"==typeof r){const a=r.match(ra);for(let r=0;r<(null!=a?a:[]).length;r++)e.add(a[r].slice(1,-1))}}),e),aa=(r,e,t)=>{var i,n;const o=null!==(i=r.children)&&void 0!==i?i:[],s=new Map,f={ainsley:r,parent:t,usageCounts:s,definedVariables:e},u=[f];for(let r=0;rGe(r)[1])]),f);new Set(a.map(r=>[...r.usageCounts.keys()]).reduce((r,e)=>[...r,...e],[])).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)}),u.push(...a)}else if(Array.isArray(t)){ea(t).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)})}else o.splice(r,1,Xe(t))}return u};return r.DEFAULT_OPTIONS=i,r.ITERATOR_REGEX="\\{[a-zA-Z0-9_-]+\\}",r.combinations=t,r.defaultGetConfig=Ze,r.embed=(r,e)=>{let a=null;void 0!==e&&(a=document.querySelector("style#"+e)),null===a&&(a=document.createElement("style"),a.type="text/css",void 0!==e&&a.setAttribute("id",e),document.head.appendChild(a)),a.innerHTML=r},r.flatten=Je,r.generate=(r,e={})=>{const a={...i,...e};return o(s(r,a,{}),a)},r.getFlatConfig=Ke,r.isObject=a,r.minify=r=>{var e,a;const t=Be(r);if(t.length>0)throw Error("Invalid input Ainsley:\n"+t.join("\n"));const i=aa(A(r),new Set);for(let r=i.length-1;r>=0;r--){const t=i[r];if(void 0===t.ainsley.children||0===t.ainsley.children.length){if(void 0!==t.parent){const r=null!==(e=t.parent.ainsley.children)&&void 0!==e?e:[];r.splice(r.findIndex(r=>r===t.ainsley),1)}continue}for(let r=0;r0){const a=t.ainsley.children[r-1];"string"==typeof a&&t.ainsley.children.splice(--r,2,`${a}${e}`)}}const n=null!==(a=t.ainsley.variables)&&void 0!==a?a:{};if(Object.keys(n).forEach(r=>{var e,a,i;const[o,s]=Ge(r);if(t.usageCounts.has(s)){if(void 0!==t.parent){if(1===o&&t.parent.definedVariables.has(s))return void delete n[r];if((null!==(e=t.parent.usageCounts.get(s))&&void 0!==e?e:0)<2){"variables"in t.parent.ainsley||(t.parent.ainsley.variables={});const e=t.parent.ainsley.variables,f=null!==(a=Object.keys(e).find(r=>r.endsWith(s)))&&void 0!==a?a:Ye(o,""),[u]=Ge(f),d=null!==(i=e[f])&&void 0!==i?i:{},l=n[r];void 0!==e[f]&&delete e[f],delete n[r],e[Ye(2===o?u:0,s)]={...2===o?d:{},...l}}}}else delete n[r]}),0===Object.keys(n).length&&delete t.ainsley.variables,Array.isArray(t.ainsley.variations)&&(t.ainsley.variations=t.ainsley.variations.filter(r=>0!==r.length)),Array.isArray(t.ainsley.variations)&&0===t.ainsley.variations.length&&delete t.ainsley.variations,!("variations"in t.ainsley)&&!("variables"in t.ainsley)&&void 0!==t.parent){const r=t.parent.ainsley.children,e=r.findIndex(r=>r===t.ainsley);-1!==e&&r.splice(e,1,...t.ainsley.children)}}return i[0].ainsley},r.schema=He,r.validate=Be,r}({},fetch); +var Ainsley=function(r,e){"use strict";function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var t=a(e);const i=r=>!(null===r||"object"!=typeof r||Array.isArray(r)),n=r=>{let e=[[]],a=0;for(;ae.map(e=>e.concat([r])));return e},o="\\{[a-zA-Z0-9_-]+\\}",s={addVariationToSelector:(r,e)=>e+"-"+r,addPropertyToSelector:(r,e)=>r+e.toLowerCase(),addValueToSelector:(r,e)=>r+e.toUpperCase(),abbreviateProperty:r=>[r.split("-").map(r=>r.charAt(0)).join("").toLowerCase(),r.toLowerCase()]},f=/\{[a-zA-Z0-9_-]+\}/g,u=(r,e)=>{let a="",t=[];for(let i=0;i`${r[0]}:${r[1]}`).join(";")}}`}t=n.t}for(const r of t){r[1].startsWith("@")&&(a+="}")}return a},d=(r,e,a)=>{var t;const i={...a};if(void 0!==r.variables){const e=r.variables;Object.keys(e).map(r=>{var t;const n=h(r),o=n[0],s=n[1];0===o||1===o&&void 0===i[s]?i[s]=e[r]:2===o&&(i[s]={...null!==(t=a[s])&&void 0!==t?t:{},...e[r]})})}const o=void 0===r.children?[]:l(r.children,e,i);return n((null!==(t=r.variations)&&void 0!==t?t:[]).map(r=>[["",""]].concat(r))).flatMap(r=>o.map(e=>({t:[...r,...e.t],i:e.i})))},l=(r,e,a)=>r.flatMap(r=>"string"==typeof r?[{t:[],i:r}]:Array.isArray(r)?Array.isArray(r[1])?v(r,e,a):c(r,e):d(r,e,a)),v=(r,e,a)=>{const t=r[0],i=r[1],o=[];return i.map(r=>{var e,a;const t=null!==(e=r[0].match(f))&&void 0!==e?e:[],i=null!==(a=(""+r[1]).match(f))&&void 0!==a?a:[];t.map(r=>o.push([r,0])),i.map(r=>o.push([r,1]))}),n(o.map(r=>{const e=r[0],t=r[1],i=e.slice(1,-1);return Object.keys(a[i]).map(r=>[e,r,a[i][r],t])})).map(r=>{let a=0,n=r[a];return{t:[],i:[r.reduce((r,a)=>0===a[3]?e.addPropertyToSelector(r,a[1]):e.addValueToSelector(r,a[1]),t),i.map(e=>{const t=e=>{for(;a{const a=r[1],t=e.abbreviateProperty(r[0]),i=t[0],n=t[1];return Object.keys(a).map(r=>({t:[],i:[e.addValueToSelector(e.addPropertyToSelector("",i),r),[[n,a[r]]]]}))},h=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]};var m=Function.prototype.toString,p=Object.create,y=Object.defineProperty,g=Object.getOwnPropertyDescriptor,E=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,w=Object.getPrototypeOf,F=Object.prototype,P=F.hasOwnProperty,$=F.propertyIsEnumerable,j="function"==typeof b,O="function"==typeof WeakMap,x=function(r,e){if(!r.constructor)return p(null);var a=r.constructor,t=r.__proto__||w(r);if(a===e.Object)return t===e.Object.prototype?{}:p(t);if(~m.call(a).indexOf("[native code]"))try{return new a}catch(r){}return p(t)},D=function(r,e,a,t){var i=x(r,e);for(var n in t.set(r,i),r)P.call(r,n)&&(i[n]=a(r[n],t));if(j){var o=b(r),s=o.length;if(s)for(var f=0,u=void 0;f1){e[0]=e[0].slice(0,-1);for(var t=e.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=c-h,O=Math.floor,x=String.fromCharCode;function D(r){throw new RangeError($[r])}function I(r,e){for(var a=[],t=r.length;t--;)a[t]=e(r[t]);return a}function S(r,e){var a=r.split("@"),t="";return a.length>1&&(t=a[0]+"@",r=a[1]),t+I((r=r.replace(P,".")).split("."),e).join(".")}function A(r){for(var e=[],a=0,t=r.length;a=55296&&i<=56319&&a>1,r+=O(r/e);r>j*m>>1;t+=c)r=O(r/j);return O(t+(j+1)*r/(r+p))},R=function(r){var e=[],a=r.length,t=0,i=E,n=g,o=r.lastIndexOf(b);o<0&&(o=0);for(var s=0;s=128&&D("not-basic"),e.push(r.charCodeAt(s));for(var f=o>0?o+1:0;f=a&&D("invalid-input");var p=_(r.charCodeAt(f++));(p>=c||p>O((v-t)/d))&&D("overflow"),t+=p*d;var y=l<=n?h:l>=n+m?m:l-n;if(pO(v/w)&&D("overflow"),d*=w}var F=e.length+1;n=z(t-u,F,0==u),O(t/F)>v-i&&D("overflow"),i+=O(t/F),t%=F,e.splice(t++,0,i)}return String.fromCodePoint.apply(String,e)},N=function(r){var e=[],a=(r=A(r)).length,t=E,i=0,n=g,o=!0,s=!1,f=void 0;try{for(var u,d=r[Symbol.iterator]();!(o=(u=d.next()).done);o=!0){var l=u.value;l<128&&e.push(x(l))}}catch(r){s=!0,f=r}finally{try{!o&&d.return&&d.return()}finally{if(s)throw f}}var p=e.length,y=p;for(p&&e.push(b);y=t&&SO((v-i)/_)&&D("overflow"),i+=(w-t)*_,t=w;var R=!0,N=!1,V=void 0;try{for(var T,q=r[Symbol.iterator]();!(R=(T=q.next()).done);R=!0){var C=T.value;if(Cv&&D("overflow"),C==t){for(var M=i,B=c;;B+=c){var U=B<=n?h:B>=n+m?m:B-n;if(M>6|192).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase():"%"+(e>>12|224).toString(16).toUpperCase()+"%"+(e>>6&63|128).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase()}function B(r){for(var e="",a=0,t=r.length;a=194&&i<224){if(t-a>=6){var n=parseInt(r.substr(a+4,2),16);e+=String.fromCharCode((31&i)<<6|63&n)}else e+=r.substr(a,6);a+=6}else if(i>=224){if(t-a>=9){var o=parseInt(r.substr(a+4,2),16),s=parseInt(r.substr(a+7,2),16);e+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else e+=r.substr(a,9);a+=9}else e+=r.substr(a,3),a+=3}return e}function U(r,e){function a(r){var a=B(r);return a.match(e.UNRESERVED)?a:r}return r.scheme&&(r.scheme=(r.scheme+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_SCHEME,"")),void 0!==r.userinfo&&(r.userinfo=(r.userinfo+"").replace(e.PCT_ENCODED,a).replace(e.NOT_USERINFO,M).replace(e.PCT_ENCODED,i)),void 0!==r.host&&(r.host=(r.host+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_HOST,M).replace(e.PCT_ENCODED,i)),void 0!==r.path&&(r.path=(r.path+"").replace(e.PCT_ENCODED,a).replace(r.scheme?e.NOT_PATH:e.NOT_PATH_NOSCHEME,M).replace(e.PCT_ENCODED,i)),void 0!==r.query&&(r.query=(r.query+"").replace(e.PCT_ENCODED,a).replace(e.NOT_QUERY,M).replace(e.PCT_ENCODED,i)),void 0!==r.fragment&&(r.fragment=(r.fragment+"").replace(e.PCT_ENCODED,a).replace(e.NOT_FRAGMENT,M).replace(e.PCT_ENCODED,i)),r}function L(r){return r.replace(/^0*(.*)/,"$1")||"0"}function H(r,e){var a=r.match(e.IPV4ADDRESS)||[],t=d(a,2)[1];return t?t.split(".").map(L).join("."):r}function J(r,e){var a=r.match(e.IPV6ADDRESS)||[],t=d(a,3),i=t[1],n=t[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=d(o,2),f=s[0],u=s[1],l=u?u.split(":").map(L):[],v=f.split(":").map(L),c=e.IPV4ADDRESS.test(v[v.length-1]),h=c?7:8,m=v.length-h,p=Array(h),y=0;y1){var b=p.slice(0,g.index),w=p.slice(g.index+g.length);E=b.join(":")+"::"+w.join(":")}else E=p.join(":");return n&&(E+="%"+n),E}return r}var K=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Z=void 0==="".match(/(){0}/)[1];function Q(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a={},t=!1!==e.iri?u:f;"suffix"===e.reference&&(r=(e.scheme?e.scheme+":":"")+"//"+r);var i=r.match(K);if(i){Z?(a.scheme=i[1],a.userinfo=i[3],a.host=i[4],a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=i[7],a.fragment=i[8],isNaN(a.port)&&(a.port=i[5])):(a.scheme=i[1]||void 0,a.userinfo=-1!==r.indexOf("@")?i[3]:void 0,a.host=-1!==r.indexOf("//")?i[4]:void 0,a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=-1!==r.indexOf("?")?i[7]:void 0,a.fragment=-1!==r.indexOf("#")?i[8]:void 0,isNaN(a.port)&&(a.port=r.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),a.host&&(a.host=J(H(a.host,t),t)),a.reference=void 0!==a.scheme||void 0!==a.userinfo||void 0!==a.host||void 0!==a.port||a.path||void 0!==a.query?void 0===a.scheme?"relative":void 0===a.fragment?"absolute":"uri":"same-document",e.reference&&"suffix"!==e.reference&&e.reference!==a.reference&&(a.error=a.error||"URI is not a "+e.reference+" reference.");var n=C[(e.scheme||a.scheme||"").toLowerCase()];if(e.unicodeSupport||n&&n.unicodeSupport)U(a,t);else{if(a.host&&(e.domainHost||n&&n.domainHost))try{a.host=q.toASCII(a.host.replace(t.PCT_ENCODED,B).toLowerCase())}catch(r){a.error=a.error||"Host's domain name can not be converted to ASCII via punycode: "+r}U(a,f)}n&&n.parse&&n.parse(a,e)}else a.error=a.error||"URI can not be parsed.";return a}function W(r,e){var a=!1!==e.iri?u:f,t=[];return void 0!==r.userinfo&&(t.push(r.userinfo),t.push("@")),void 0!==r.host&&t.push(J(H(r.host+"",a),a).replace(a.IPV6ADDRESS,(function(r,e,a){return"["+e+(a?"%25"+a:"")+"]"}))),"number"!=typeof r.port&&"string"!=typeof r.port||(t.push(":"),t.push(r.port+"")),t.length?t.join(""):void 0}var G=/^\.\.?\//,Y=/^\/\.(\/|$)/,X=/^\/\.\.(\/|$)/,rr=/^\/?(?:.|\n)*?(?=\/|$)/;function er(r){for(var e=[];r.length;)if(r.match(G))r=r.replace(G,"");else if(r.match(Y))r=r.replace(Y,"/");else if(r.match(X))r=r.replace(X,"/"),e.pop();else if("."===r||".."===r)r="";else{var a=r.match(rr);if(!a)throw Error("Unexpected dot segment condition");var t=a[0];r=r.slice(t.length),e.push(t)}return e.join("")}function ar(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.iri?u:f,t=[],i=C[(e.scheme||r.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(r,e),r.host)if(a.IPV6ADDRESS.test(r.host));else if(e.domainHost||i&&i.domainHost)try{r.host=e.iri?q.toUnicode(r.host):q.toASCII(r.host.replace(a.PCT_ENCODED,B).toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to "+(e.iri?"Unicode":"ASCII")+" via punycode: "+a}U(r,a),"suffix"!==e.reference&&r.scheme&&(t.push(r.scheme),t.push(":"));var n=W(r,e);if(void 0!==n&&("suffix"!==e.reference&&t.push("//"),t.push(n),r.path&&"/"!==r.path.charAt(0)&&t.push("/")),void 0!==r.path){var o=r.path;e.absolutePath||i&&i.absolutePath||(o=er(o)),void 0===n&&(o=o.replace(/^\/\//,"/%2F")),t.push(o)}return void 0!==r.query&&(t.push("?"),t.push(r.query)),void 0!==r.fragment&&(t.push("#"),t.push(r.fragment)),t.join("")}function tr(r,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t={};return arguments[3]||(r=Q(ar(r,a),a),e=Q(ar(e,a),a)),!(a=a||{}).tolerant&&e.scheme?(t.scheme=e.scheme,t.userinfo=e.userinfo,t.host=e.host,t.port=e.port,t.path=er(e.path||""),t.query=e.query):(void 0!==e.userinfo||void 0!==e.host||void 0!==e.port?(t.userinfo=e.userinfo,t.host=e.host,t.port=e.port,t.path=er(e.path||""),t.query=e.query):(e.path?("/"===e.path.charAt(0)?t.path=er(e.path):(t.path=void 0===r.userinfo&&void 0===r.host&&void 0===r.port||r.path?r.path?r.path.slice(0,r.path.lastIndexOf("/")+1)+e.path:e.path:"/"+e.path,t.path=er(t.path)),t.query=e.query):(t.path=r.path,t.query=void 0!==e.query?e.query:r.query),t.userinfo=r.userinfo,t.host=r.host,t.port=r.port),t.scheme=r.scheme),t.fragment=e.fragment,t}function ir(r,e,a){var t=o({scheme:"null"},a);return ar(tr(Q(r,t),Q(e,t),t,!0),t)}function nr(r,e){return"string"==typeof r?r=ar(Q(r,e),e):"object"===t(r)&&(r=Q(ar(r,e),e)),r}function or(r,e,a){return"string"==typeof r?r=ar(Q(r,a),a):"object"===t(r)&&(r=ar(r,a)),"string"==typeof e?e=ar(Q(e,a),a):"object"===t(e)&&(e=ar(e,a)),r===e}function sr(r,e){return r&&(""+r).replace(e&&e.iri?u.ESCAPE:f.ESCAPE,M)}function fr(r,e){return r&&(""+r).replace(e&&e.iri?u.PCT_ENCODED:f.PCT_ENCODED,B)}var ur={scheme:"http",domainHost:!0,parse:function(r,e){return r.host||(r.error=r.error||"HTTP URIs must have a host."),r},serialize:function(r,e){return r.port!==("https"===(r.scheme+"").toLowerCase()?443:80)&&""!==r.port||(r.port=void 0),r.path||(r.path="/"),r}},dr={scheme:"https",domainHost:ur.domainHost,parse:ur.parse,serialize:ur.serialize};function lr(r){return"boolean"==typeof r.secure?r.secure:"wss"===(r.scheme+"").toLowerCase()}var vr={scheme:"ws",domainHost:!0,parse:function(r,e){var a=r;return a.secure=lr(a),a.resourceName=(a.path||"/")+(a.query?"?"+a.query:""),a.path=void 0,a.query=void 0,a},serialize:function(r,e){if(r.port!==(lr(r)?443:80)&&""!==r.port||(r.port=void 0),"boolean"==typeof r.secure&&(r.scheme=r.secure?"wss":"ws",r.secure=void 0),r.resourceName){var a=r.resourceName.split("?"),t=d(a,2),i=t[0],n=t[1];r.path=i&&"/"!==i?i:void 0,r.query=n,r.resourceName=void 0}return r.fragment=void 0,r}},cr={scheme:"wss",domainHost:vr.domainHost,parse:vr.parse,serialize:vr.serialize},hr={},mr="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",pr="[0-9A-Fa-f]",yr=a(a("%[EFef]"+pr+"%"+pr+pr+"%"+pr+pr)+"|"+a("%[89A-Fa-f]"+pr+"%"+pr+pr)+"|"+a("%"+pr+pr)),gr="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Er=e("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),br="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",wr=RegExp(mr,"g"),Fr=RegExp(yr,"g"),Pr=RegExp(e("[^]",gr,"[\\.]",'[\\"]',Er),"g"),$r=RegExp(e("[^]",mr,br),"g"),jr=$r;function Or(r){var e=B(r);return e.match(wr)?e:r}var xr={scheme:"mailto",parse:function(r,e){var a=r,t=a.to=a.path?a.path.split(","):[];if(a.path=void 0,a.query){for(var i=!1,n={},o=a.query.split("&"),s=0,f=o.length;s=55296&&e<=56319&&i=e)throw Error("Cannot access property/index "+t+" levels up, current level is "+e);return a[e-t]}if(t>e)throw Error("Cannot access data "+t+" levels up, current level is "+e);if(n="data"+(e-t||""),!i)return n}for(var s=n,f=i.split("/"),u=0;u=0?{index:t,compiling:!0}:(this._compilations[t=this._compilations.length]={schema:r,root:e,baseId:a},{index:t,compiling:!1})}function $r(r,e,a){var t=jr.call(this,r,e,a);t>=0&&this._compilations.splice(t,1)}function jr(r,e,a){for(var t=0;t%\\^`{|}]|%[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,Tr=/^(?:(?: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,qr=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Cr=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Mr=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Br=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Ur=Lr;function Lr(r){return T.copy(Lr[r="full"==r?"full":"fast"])}function Hr(r){var e=r.match(_r);if(!e)return!1;var a=+e[2],t=+e[3];return a>=1&&a<=12&&t>=1&&t<=(2==a&&function(r){return r%4==0&&(r%100!=0||r%400==0)}(+e[1])?29:kr[a])}function Jr(r,e){var a=r.match(zr);if(!a)return!1;var t=a[1],i=a[2],n=a[3];return(t<=23&&i<=59&&n<=59||23==t&&59==i&&60==n)&&(!e||a[5])}Lr.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"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,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":Vr,url:Tr,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,hostname:Rr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,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,regex:Wr,uuid:qr,"json-pointer":Cr,"json-pointer-uri-fragment":Mr,"relative-json-pointer":Br},Lr.full={date:Hr,time:Jr,"date-time":function(r){var e=r.split(Kr);return 2==e.length&&Hr(e[0])&&Jr(e[1],!0)},uri:function(r){return Zr.test(r)&&Nr.test(r)},"uri-reference":/^(?:[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,"uri-template":Vr,url:Tr,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,hostname:Rr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,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,regex:Wr,uuid:qr,"json-pointer":Cr,"json-pointer-uri-fragment":Mr,"relative-json-pointer":Br};var Kr=/t|\s/i;var Zr=/\/|:/;var Qr=/[^\\]\\Z/;function Wr(r){if(Qr.test(r))return!1;try{return RegExp(r),!0}catch(r){return!1}}var Gr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c="maximum"==e,h=c?"exclusiveMaximum":"exclusiveMinimum",m=r.schema[h],p=r.opts.v&&m&&m.v,y=c?"<":">",g=c?">":"<",E=void 0;if(!v&&"number"!=typeof s&&void 0!==s)throw Error(e+" must be number");if(!p&&void 0!==m&&"number"!=typeof m&&"boolean"!=typeof m)throw Error(h+" must be number or boolean");if(p){var b=r.util.getData(m.v,o,r.dataPathArr),w="exclusive"+n,F="exclType"+n,P="exclIsNumber"+n,$="' + "+(x="op"+n)+" + '";i+=" var schemaExcl"+n+" = "+b+"; ";var j;E=h;(j=j||[]).push(i+=" var "+w+"; var "+F+" = typeof "+(b="schemaExcl"+n)+"; if ("+F+" != 'boolean' && "+F+" != 'undefined' && "+F+" != 'number') { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: {} ",!1!==r.opts.messages&&(i+=" , message: '"+h+" should be boolean' "),r.opts.verbose&&(i+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var O=i;i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+F+" == 'number' ? ( ("+w+" = "+t+" === undefined || "+b+" "+y+"= "+t+") ? "+l+" "+g+"= "+b+" : "+l+" "+g+" "+t+" ) : ( ("+w+" = "+b+" === true) ? "+l+" "+g+"= "+t+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { var op"+n+" = "+w+" ? '"+y+"' : '"+y+"='; ",void 0===s&&(E=h,u=r.errSchemaPath+"/"+h,t=b,v=p)}else{$=y;if((P="number"==typeof m)&&v){var x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" ( "+t+" === undefined || "+m+" "+y+"= "+t+" ? "+l+" "+g+"= "+m+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { "}else{P&&void 0===s?(w=!0,E=h,u=r.errSchemaPath+"/"+h,t=m,g+="="):(P&&(t=Math[c?"min":"max"](m,s)),m===(!P||t)?(w=!0,E=h,u=r.errSchemaPath+"/"+h,g+="="):(w=!1,$+="="));x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+l+" "+g+" "+t+" || "+l+" !== "+l+") { "}}E=E||e,(j=j||[]).push(i),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_limit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { comparison: "+x+", limit: "+t+", exclusive: "+w+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be "+$+" ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";O=i;return i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { "),i},Yr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" "+l+".length "+("maxItems"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitItems")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxItems"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" items' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},Xr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=!1===r.opts.unicode?" "+l+".length ":" ucs2length("+l+") ";var c=e,h=h||[];h.push(i+=" "+("maxLength"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitLength")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT be ",i+="maxLength"==e?"longer":"shorter",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" characters' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},re=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" Object.keys("+l+").length "+("maxProperties"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitProperties")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxProperties"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" properties' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},ee={o:function(r,e,a){var t,i,n=" ",o=r.dataLevel,s=r.schema[e],f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(o||""),l="valid"+r.level;if("#"==s||"#/"==s)r.isRoot?(t=r.async,i="validate"):(t=!0===r.root.schema.u,i="root.refVal[0]");else{var v=r.resolveRef(r.baseId,s,r.isRoot);if(void 0===v){var c=r.MissingRefError.message(r.baseId,s);if("fail"==r.opts.missingRefs){r.logger.error(c),(y=y||[]).push(n),n="",!1!==r.createErrors?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { ref: '"+r.util.escapeQuotes(s)+"' } ",!1!==r.opts.messages&&(n+=" , message: 'can\\'t resolve reference "+r.util.escapeQuotes(s)+"' "),r.opts.verbose&&(n+=" , schema: "+r.util.toQuotedString(s)+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;n=y.pop(),n+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(n+=" if (false) { ")}else{if("ignore"!=r.opts.missingRefs)throw new r.MissingRefError(r.baseId,s,c);r.logger.warn(c),u&&(n+=" if (true) { ")}}else if(v.inline){var m=r.util.copy(r);m.level++;var p="valid"+m.level;m.schema=v.schema,m.schemaPath="",m.errSchemaPath=s,n+=" "+r.validate(m).replace(/validate\.schema/g,v.code)+" ",u&&(n+=" if ("+p+") { ")}else t=!0===v.u||r.async&&!1!==v.u,i=v.code}if(i){var y;(y=y||[]).push(n),n="",n+=r.opts.passContext?" "+i+".call(this, ":" "+i+"( ",n+=" "+d+", (dataPath || '')",'""'!=r.errorPath&&(n+=" + "+r.errorPath);var g=n+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?r.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(n=y.pop(),t){if(!r.async)throw Error("async schema referenced by sync schema");u&&(n+=" var "+l+"; "),n+=" try { await "+g+"; ",u&&(n+=" "+l+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(n+=" "+l+" = false; "),n+=" } ",u&&(n+=" if ("+l+") { ")}else n+=" if (!"+g+") { if (vErrors === null) vErrors = "+i+".errors; else vErrors = vErrors.concat("+i+".errors); errors = vErrors.length; } ",u&&(n+=" else { ")}return n},allOf:function(r,e,a){var t=" ",i=r.schema[e],n=r.schemaPath+r.util.getProperty(e),o=r.errSchemaPath+"/"+e,s=!r.opts.allErrors,f=r.util.copy(r),u="";f.level++;var d="valid"+f.level,l=f.baseId,v=!0,c=i;if(c)for(var h,m=-1,p=c.length-1;m0:r.util.schemaHasRules(h,r.RULES.all))&&(v=!1,f.schema=h,f.schemaPath=n+"["+m+"]",f.errSchemaPath=o+"/"+m,t+=" "+r.validate(f)+" ",f.baseId=l,s&&(t+=" if ("+d+") { ",u+="}"));return s&&(t+=v?" if (true) { ":" "+u.slice(0,-1)+" "),t},anyOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level;if(o.every((function(e){return r.opts.strictKeywords?"object"==typeof e&&Object.keys(e).length>0:r.util.schemaHasRules(e,r.RULES.all)}))){var p=c.baseId;t+=" var "+v+" = errors; var "+l+" = false; ";var y=r.compositeRule;r.compositeRule=c.compositeRule=!0;var g=o;if(g)for(var E,b=-1,w=g.length-1;b0:r.util.schemaHasRules(o,r.RULES.all);if(t+="var "+v+" = errors;var "+l+";",E){var b=r.compositeRule;r.compositeRule=c.compositeRule=!0,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+h+" = false; for (var "+m+" = 0; "+m+" < "+d+".length; "+m+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers,!0);var w=d+"["+m+"]";c.dataPathArr[p]=m;var F=r.validate(c);c.baseId=g,r.util.varOccurences(F,y)<2?t+=" "+r.util.varReplace(F,y,w)+" ":t+=" var "+y+" = "+w+"; "+F+" ",t+=" if ("+h+") break; } ",r.compositeRule=c.compositeRule=b,t+=" if (!"+h+") {"}else t+=" if ("+d+".length == 0) {";var P=P||[];P.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should contain a valid item' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;return t=P.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",E&&(t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } "),r.opts.allErrors&&(t+=" } "),t},dependencies:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m={},p={},y=r.opts.ownProperties;for(b in o)if("__proto__"!=b){var g=Array.isArray(R=o[b])?p:m;g[b]=R}t+="var "+l+" = errors;";var E=r.errorPath;for(var b in t+="var missing"+i+";",p)if((g=p[b]).length){if(t+=" if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),u){t+=" && ( ";var w=g;if(w)for(var F=-1,P=w.length-1;F0:r.util.schemaHasRules(R,r.RULES.all))&&(t+=" "+h+" = true; if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),t+=") { ",v.schema=R,v.schemaPath=s+r.util.getProperty(b),v.errSchemaPath=f+"/"+r.util.escapeFragment(b),t+=" "+r.validate(v)+" ",v.baseId=z,t+=" } ",u&&(t+=" if ("+h+") { ",c+="}"))}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t},enum:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v=r.opts.v&&o&&o.v;v&&(t+=" var schema"+i+" = "+r.util.getData(o.v,n,r.dataPathArr)+"; ");var c="i"+i,h="schema"+i;v||(t+=" var "+h+" = validate.schema"+s+";"),t+="var "+l+";",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=l+" = false;for (var "+c+"=0; "+c+"<"+h+".length; "+c+"++) if (equal("+d+", "+h+"["+c+"])) { "+l+" = true; break; }",v&&(t+=" } ");var m=m||[];m.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { allowedValues: schema"+i+" } ",!1!==r.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var p=t;return t=m.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",u&&(t+=" else { "),t},format:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||"");if(!1===r.opts.format)return u&&(t+=" if (true) { "),t;var l,v=r.opts.v&&o&&o.v;v?(t+=" var schema"+i+" = "+r.util.getData(o.v,n,r.dataPathArr)+"; ",l="schema"+i):l=o;var c=r.opts.unknownFormats,h=Array.isArray(c);if(v){t+=" var "+(m="format"+i)+" = formats["+l+"]; var "+(p="isObject"+i)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+i)+" = "+p+" && "+m+".type || 'string'; if ("+p+") { ",r.async&&(t+=" var async"+i+" = "+m+".async; "),t+=" "+m+" = "+m+".validate; } if ( ",v&&(t+=" ("+l+" !== undefined && typeof "+l+" != 'string') || "),t+=" (","ignore"!=c&&(t+=" ("+l+" && !"+m+" ",h&&(t+=" && self._opts.unknownFormats.indexOf("+l+") == -1 "),t+=") || "),t+=" ("+m+" && "+y+" == '"+a+"' && !(typeof "+m+" == 'function' ? ",t+=r.async?" (async"+i+" ? await "+m+"("+d+") : "+m+"("+d+")) ":" "+m+"("+d+") ",t+=" : "+m+".test("+d+"))))) {"}else{var m;if(!(m=r.formats[o])){if("ignore"==c)return r.logger.warn('unknown format "'+o+'" ignored in schema at path "'+r.errSchemaPath+'"'),u&&(t+=" if (true) { "),t;if(h&&c.indexOf(o)>=0)return u&&(t+=" if (true) { "),t;throw Error('unknown format "'+o+'" is used in schema at path "'+r.errSchemaPath+'"')}var p,y=(p="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(p){var g=!0===m.async;m=m.validate}if(y!=a)return u&&(t+=" if (true) { "),t;if(g){if(!r.async)throw Error("async format in sync schema");t+=" if (!(await "+(E="formats"+r.util.getProperty(o)+".validate")+"("+d+"))) { "}else{t+=" if (! ";var E="formats"+r.util.getProperty(o);p&&(E+=".validate"),t+="function"==typeof m?" "+E+"("+d+") ":" "+E+".test("+d+") ",t+=") { "}}var b=b||[];b.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'format' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { format: ",t+=v?""+l:""+r.util.toQuotedString(o),t+=" } ",!1!==r.opts.messages&&(t+=" , message: 'should match format \"",t+=v?"' + "+l+" + '":""+r.util.escapeQuotes(o),t+="\"' "),r.opts.verbose&&(t+=" , schema: ",t+=v?"validate.schema"+s:""+r.util.toQuotedString(o),t+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var w=t;return t=b.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",u&&(t+=" else { "),t},if:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r);c.level++;var h="valid"+c.level,m=r.schema.then,p=r.schema.else,y=void 0!==m&&(r.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:r.util.schemaHasRules(m,r.RULES.all)),g=void 0!==p&&(r.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:r.util.schemaHasRules(p,r.RULES.all)),E=c.baseId;if(y||g){var b;c.createErrors=!1,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+v+" = errors; var "+l+" = true; ";var w=r.compositeRule;r.compositeRule=c.compositeRule=!0,t+=" "+r.validate(c)+" ",c.baseId=E,c.createErrors=!0,t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } ",r.compositeRule=c.compositeRule=w,y?(t+=" if ("+h+") { ",c.schema=r.schema.then,c.schemaPath=r.schemaPath+".then",c.errSchemaPath=r.errSchemaPath+"/then",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'then'; ":b="'then'",t+=" } ",g&&(t+=" else { ")):t+=" if (!"+h+") { ",g&&(c.schema=r.schema.else,c.schemaPath=r.schemaPath+".else",c.errSchemaPath=r.errSchemaPath+"/else",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'else'; ":b="'else'",t+=" } "),t+=" if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { failingKeyword: "+b+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match \"' + "+b+" + '\" schema' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } ",u&&(t+=" else { ")}else u&&(t+=" if (true) { ");return t},items:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p="i"+i,y=c.dataLevel=r.dataLevel+1,g="data"+y,E=r.baseId;if(t+="var "+v+" = errors;var "+l+";",Array.isArray(o)){var b=r.schema.additionalItems;if(!1===b){t+=" "+l+" = "+d+".length <= "+o.length+"; ";var w=f;f=r.errSchemaPath+"/additionalItems";var F=F||[];F.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { limit: "+o.length+" } ",!1!==r.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),r.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var P=t;t=F.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+P+"]); ":" validate.errors = ["+P+"]; return false; ":" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",f=w,u&&(h+="}",t+=" else { ")}var $=o;if($)for(var j,O=-1,x=$.length-1;O0:r.util.schemaHasRules(j,r.RULES.all)){t+=" "+m+" = true; if ("+d+".length > "+O+") { ";var D=d+"["+O+"]";c.schema=j,c.schemaPath=s+"["+O+"]",c.errSchemaPath=f+"/"+O,c.errorPath=r.util.getPathExpr(r.errorPath,O,r.opts.jsonPointers,!0),c.dataPathArr[y]=O;var I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",t+=" } ",u&&(t+=" if ("+m+") { ",h+="}")}if("object"==typeof b&&(r.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:r.util.schemaHasRules(b,r.RULES.all))){c.schema=b,c.schemaPath=r.schemaPath+".additionalItems",c.errSchemaPath=r.errSchemaPath+"/additionalItems",t+=" "+m+" = true; if ("+d+".length > "+o.length+") { for (var "+p+" = "+o.length+"; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",u&&(t+=" if (!"+m+") break; "),t+=" } } ",u&&(t+=" if ("+m+") { ",h+="}")}}else if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" for (var "+p+" = 0; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",u&&(t+=" if (!"+m+") break; "),t+=" }"}return u&&(t+=" "+h+" if ("+v+" == errors) {"),t},maximum:Gr,minimum:Gr,maxItems:Yr,minItems:Yr,maxLength:Xr,minLength:Xr,maxProperties:re,minProperties:re,multipleOf:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="var division"+n+";if (",v&&(i+=" "+t+" !== undefined && ( typeof "+t+" != 'number' || "),i+=" (division"+n+" = "+l+" / "+t+", ",i+=r.opts.multipleOfPrecision?" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+r.opts.multipleOfPrecision+" ":" division"+n+" !== parseInt(division"+n+") ",i+=" ) ",v&&(i+=" ) ");var c=c||[];c.push(i+=" ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { multipleOf: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be multiple of ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var h=i;return i=c.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},not:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f,t+=" var "+l+" = errors; ";var h,m=r.compositeRule;r.compositeRule=v.compositeRule=!0,v.createErrors=!1,v.opts.allErrors&&(h=v.opts.allErrors,v.opts.allErrors=!1),t+=" "+r.validate(v)+" ",v.createErrors=!0,h&&(v.opts.allErrors=h),r.compositeRule=v.compositeRule=m;var p=p||[];p.push(t+=" if ("+c+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var y=t;t=p.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } ")}else t+=" var err = ",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(t+=" if (false) { ");return t},oneOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p=c.baseId,y="prevValid"+i,g="passingSchemas"+i;t+="var "+v+" = errors , "+y+" = false , "+l+" = false , "+g+" = null; ";var E=r.compositeRule;r.compositeRule=c.compositeRule=!0;var b=o;if(b)for(var w,F=-1,P=b.length-1;F0:r.util.schemaHasRules(w,r.RULES.all))?(c.schema=w,c.schemaPath=s+"["+F+"]",c.errSchemaPath=f+"/"+F,t+=" "+r.validate(c)+" ",c.baseId=p):t+=" var "+m+" = true; ",F&&(t+=" if ("+m+" && "+y+") { "+l+" = false; "+g+" = ["+g+", "+F+"]; } else { ",h+="}"),t+=" if ("+m+") { "+l+" = "+y+" = true; "+g+" = "+F+"; }";return r.compositeRule=c.compositeRule=E,t+=h+"if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { passingSchemas: "+g+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else { errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; }",r.opts.allErrors&&(t+=" } "),t},pattern:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c=v?"(new RegExp("+t+"))":r.usePattern(s);i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'string') || ");var h=h||[];h.push(i+=" !"+c+".test("+l+") ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { pattern: ",i+=v?""+t:""+r.util.toQuotedString(s),i+=" } ",!1!==r.opts.messages&&(i+=" , message: 'should match pattern \"",i+=v?"' + "+t+" + '":""+r.util.escapeQuotes(s),i+="\"' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+r.util.toQuotedString(s),i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},properties:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m="key"+i,p="idx"+i,y=v.dataLevel=r.dataLevel+1,g="data"+y,E="dataProperties"+i,b=Object.keys(o||{}).filter(k),w=r.schema.patternProperties||{},F=Object.keys(w).filter(k),P=r.schema.additionalProperties,$=b.length||F.length,j=!1===P,O="object"==typeof P&&Object.keys(P).length,x=r.opts.removeAdditional,D=j||O||x,I=r.opts.ownProperties,S=r.baseId,A=r.schema.required;if(A&&(!r.opts.v||!A.v)&&A.length8)t+=" || validate.schema"+s+".hasOwnProperty("+m+") ";else{var z=b;if(z)for(var R=-1,N=z.length-1;R0:r.util.schemaHasRules(Y,r.RULES.all)){var X=r.util.getProperty(Q),rr=(H=d+X,K&&void 0!==Y.default);v.schema=Y,v.schemaPath=s+X,v.errSchemaPath=f+"/"+r.util.escapeFragment(Q),v.errorPath=r.util.getPath(r.errorPath,Q,r.opts.jsonPointers),v.dataPathArr[y]=r.util.toQuotedString(Q);J=r.validate(v);if(v.baseId=S,r.util.varOccurences(J,g)<2){J=r.util.varReplace(J,g,H);var er=H}else{er=g;t+=" var "+g+" = "+H+"; "}if(rr)t+=" "+J+" ";else{if(_&&_[Q]){t+=" if ( "+er+" === undefined ",I&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=") { "+h+" = false; ";C=r.errorPath,B=f;var ar,tr=r.util.escapeQuotes(Q);r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPath(C,Q,r.opts.jsonPointers)),f=r.errSchemaPath+"/required",(ar=ar||[]).push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+tr+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+tr+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";U=t;t=ar.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+U+"]); ":" validate.errors = ["+U+"]; return false; ":" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f=B,r.errorPath=C,t+=" } else { "}else u?(t+=" if ( "+er+" === undefined ",I&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=") { "+h+" = true; } else { "):(t+=" if ("+er+" !== undefined ",I&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=" ) { ");t+=" "+J+" } "}}u&&(t+=" if ("+h+") { ",c+="}")}}if(F.length){var ir=F;if(ir)for(var nr,or=-1,sr=ir.length-1;or0:r.util.schemaHasRules(Y,r.RULES.all)){v.schema=Y,v.schemaPath=r.schemaPath+".patternProperties"+r.util.getProperty(nr),v.errSchemaPath=r.errSchemaPath+"/patternProperties/"+r.util.escapeFragment(nr),t+=I?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+p+"=0; "+p+"<"+E+".length; "+p+"++) { var "+m+" = "+E+"["+p+"]; ":" for (var "+m+" in "+d+") { ",t+=" if ("+r.usePattern(nr)+".test("+m+")) { ",v.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers);H=d+"["+m+"]";v.dataPathArr[y]=m;J=r.validate(v);v.baseId=S,r.util.varOccurences(J,g)<2?t+=" "+r.util.varReplace(J,g,H)+" ":t+=" var "+g+" = "+H+"; "+J+" ",u&&(t+=" if (!"+h+") break; "),t+=" } ",u&&(t+=" else "+h+" = true; "),t+=" } ",u&&(t+=" if ("+h+") { ",c+="}")}}}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t},propertyNames:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(t+="var "+l+" = errors;",r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f;var h="key"+i,m="idx"+i,p="i"+i,y="' + "+h+" + '",g="data"+(v.dataLevel=r.dataLevel+1),E="dataProperties"+i,b=r.opts.ownProperties,w=r.baseId;b&&(t+=" var "+E+" = undefined; "),t+=b?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+m+"=0; "+m+"<"+E+".length; "+m+"++) { var "+h+" = "+E+"["+m+"]; ":" for (var "+h+" in "+d+") { ",t+=" var startErrs"+i+" = errors; ";var F=h,P=r.compositeRule;r.compositeRule=v.compositeRule=!0;var $=r.validate(v);v.baseId=w,r.util.varOccurences($,g)<2?t+=" "+r.util.varReplace($,g,F)+" ":t+=" var "+g+" = "+F+"; "+$+" ",r.compositeRule=v.compositeRule=P,t+=" if (!"+c+") { for (var "+p+"=startErrs"+i+"; "+p+"0:r.util.schemaHasRules(E,r.RULES.all))||(h[h.length]=p)}}else h=o;if(v||h.length){var b=r.errorPath,w=v||h.length>=r.opts.loopRequired,F=r.opts.ownProperties;if(u)if(t+=" var missing"+i+"; ",w){v||(t+=" var "+c+" = validate.schema"+s+"; ");var P="' + "+(I="schema"+i+"["+(O="i"+i)+"]")+" + '";r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPathExpr(b,I,r.opts.jsonPointers)),t+=" var "+l+" = true; ",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=" for (var "+O+" = 0; "+O+" < "+c+".length; "+O+"++) { "+l+" = "+d+"["+c+"["+O+"]] !== undefined ",F&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", "+c+"["+O+"]) "),t+="; if (!"+l+") break; } ",v&&(t+=" } "),(D=D||[]).push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+P+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+P+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;t=D.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var j=h;if(j)for(var O=-1,x=j.length-1;O 1) { ";var h=r.schema.items&&r.schema.items.type,m=Array.isArray(h);if(!h||"object"==h||"array"==h||m&&(h.indexOf("object")>=0||h.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+l+"[i], "+l+"[j])) { "+v+" = false; break outer; } } } ";else i+=" var itemIndices = {}, item; for (;i--;) { var item = "+l+"[i]; ",i+=" if ("+r.util["checkDataType"+(m?"s":"")](h,"item",r.opts.strictNumbers,!0)+") continue; ",m&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+v+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";i+=" } ",c&&(i+=" } ");var p=p||[];p.push(i+=" if (!"+v+") { "),i="",!1!==r.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { i: i, j: j } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),r.opts.verbose&&(i+=" , schema: ",i+=c?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var y=i;i=p.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { ")}else d&&(i+=" if (true) { ");return i},validate:Er},ae=T.toHash,te=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"],ie=function(r,e){for(var a=0;a{const e=new De({allErrors:!0});if(e.validate(Be,r),null!=e.errors){let r=Infinity,a=[];return e.errors.forEach(e=>{const t=e.schemaPath.split("/").length;t===r?a.push(Me(e)):t`Ainsley${r.dataPath} is invalid`,Be={h:"http://json-schema.org/draft-07/schema#",definitions:{Primitive:{anyOf:[{type:"string"},{type:"number"}]}},properties:{children:{items:{anyOf:[{items:[{type:"string"},{items:{items:[{type:"string"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"},type:"array"}],minItems:2,maxItems:2,type:"array"},{items:[{type:"string"},{anyOf:[{type:"object",additionalProperties:{o:"#/definitions/Primitive"}},{type:"array",items:{anyOf:[{o:"#/definitions/Primitive"},{items:[{o:"#/definitions/Primitive"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"}]}}]}],minItems:2,maxItems:2,type:"array"},{type:"string"},{o:"#"}]},type:"array"},variables:{type:"object",additionalProperties:{type:"object",additionalProperties:{o:"#/definitions/Primitive"}}},variations:{items:{items:{items:[{type:"string"},{type:"string"}],minItems:2,maxItems:2,type:"array"},type:"array"},type:"array"}},type:"object"},Ue=async(r,e=Le)=>{const a=Ce(r);if(a.length>0)throw Error("Invalid input Ainsley:\n"+a.join("\n"));const t=_(r);return Array.isArray(t.children)&&await Promise.all(t.children.map(async(r,a)=>{if("string"==typeof r&&r.startsWith("$")){const i=await He(r.slice(1),e);t.children[a]=i}return r})),t},Le=async r=>{try{return(await import("ainsley-config-"+r)).config}catch(e){try{const e=new URL(r),a=await t.default(e.href);let i=await a.text();try{i=JSON.parse(i)}catch(r){}return i}catch(e){return`/* ${r.trim()} */`}}},He=async(r,e)=>{try{const a=await e(r);return i(a)?await Ue(a,e):a}catch(e){return`/* ${r.trim()} */`}};var Je;let Ke=null===(Je=globalThis)||void 0===Je?void 0:Je.csso;void 0===Ke&&import("csso").then(({default:r})=>{Ke=r}).catch(()=>{});const Ze=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]},Qe=(r,e)=>`${["","?","+"][r]}${e}`,We=r=>{try{return Ke.minify(r).css}catch(e){return(null==Ke?void 0:Ke.minify)?console.error(e):console.warn("`csso` - an optional dependency - is not installed; inline CSS will not be minified"),r}},Ge=/\{[a-z]+\}/gi,Ye=(r,e=new Set)=>(r.forEach(r=>{if(Array.isArray(r))Ye(r,e);else if("string"==typeof r){const a=r.match(Ge);for(let r=0;r<(null!=a?a:[]).length;r++)e.add(a[r].slice(1,-1))}}),e),Xe=(r,e,a)=>{var t,n;const o=null!==(t=r.children)&&void 0!==t?t:[],s=new Map,f={ainsley:r,parent:a,usageCounts:s,definedVariables:e},u=[f];for(let r=0;rZe(r)[1])]),f);new Set(t.map(r=>[...r.usageCounts.keys()]).reduce((r,e)=>[...r,...e],[])).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)}),u.push(...t)}else if(Array.isArray(a)){Ye(a).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)})}else o.splice(r,1,We(a))}return u};return r.DEFAULT_OPTIONS=s,r.ITERATOR_REGEX=o,r.combinations=n,r.defaultGetConfig=Le,r.embed=(r,e)=>{let a=null;void 0!==e&&(a=document.querySelector("style#"+e)),null===a&&(a=document.createElement("style"),a.type="text/css",void 0!==e&&a.setAttribute("id",e),document.head.appendChild(a)),a.innerHTML=r},r.flatten=Ue,r.generate=(r,e={})=>{const a={...s,...e};return u(d(r,a,{}),a)},r.getFlatConfig=He,r.isObject=i,r.minify=r=>{var e,a;const t=Ce(r);if(t.length>0)throw Error("Invalid input Ainsley:\n"+t.join("\n"));const i=Xe(_(r),new Set);for(let r=i.length-1;r>=0;r--){const t=i[r];if(void 0===t.ainsley.children||0===t.ainsley.children.length){if(void 0!==t.parent){const r=null!==(e=t.parent.ainsley.children)&&void 0!==e?e:[];r.splice(r.findIndex(r=>r===t.ainsley),1)}continue}for(let r=0;r0){const a=t.ainsley.children[r-1];"string"==typeof a&&t.ainsley.children.splice(--r,2,`${a}${e}`)}}const n=null!==(a=t.ainsley.variables)&&void 0!==a?a:{};if(Object.keys(n).forEach(r=>{var e,a,i;const[o,s]=Ze(r);if(t.usageCounts.has(s)){if(void 0!==t.parent){if(1===o&&t.parent.definedVariables.has(s))return void delete n[r];if((null!==(e=t.parent.usageCounts.get(s))&&void 0!==e?e:0)<2){"variables"in t.parent.ainsley||(t.parent.ainsley.variables={});const e=t.parent.ainsley.variables,f=null!==(a=Object.keys(e).find(r=>r.endsWith(s)))&&void 0!==a?a:Qe(o,""),[u]=Ze(f),d=null!==(i=e[f])&&void 0!==i?i:{},l=n[r];void 0!==e[f]&&delete e[f],delete n[r],e[Qe(2===o?u:0,s)]={...2===o?d:{},...l}}}}else delete n[r]}),0===Object.keys(n).length&&delete t.ainsley.variables,Array.isArray(t.ainsley.variations)&&(t.ainsley.variations=t.ainsley.variations.filter(r=>0!==r.length)),Array.isArray(t.ainsley.variations)&&0===t.ainsley.variations.length&&delete t.ainsley.variations,!("variations"in t.ainsley)&&!("variables"in t.ainsley)&&void 0!==t.parent){const r=t.parent.ainsley.children,e=r.findIndex(r=>r===t.ainsley);-1!==e&&r.splice(e,1,...t.ainsley.children)}}return i[0].ainsley},r.schema=Be,r.validate=Ce,r}({},fetch); //# sourceMappingURL=ainsley.production.js.map diff --git a/dist/ainsley.production.js.map b/dist/ainsley.production.js.map index f4f1fa2..3c61f35 100644 --- a/dist/ainsley.production.js.map +++ b/dist/ainsley.production.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.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/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/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/ucs2length.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/_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/index.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/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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n if (!(variableName in variables)) {\n console.log(variables, variableName)\n }\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n descriptor.value = handleCopy(object[property], cache);\n\n defineProperty(clone, property, descriptor);\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\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 = [];\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 = [];\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(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(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(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\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || 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\";\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,\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 = {\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 = {\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 = {\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 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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\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= 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= 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\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= 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%\\\\^`{|}]|%[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\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__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';\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';\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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_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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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\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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n const lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath}${\n error.message === undefined ? '' : ` ${error.message}`\n }`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso && csso.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["isObject","val","combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","concat","ainsleyASTNode","child","declarations","propertyMatches","declaration","valueMatches","match","toStringFunction","create","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","hasOwnProperty","propertyIsEnumerable","SUPPORTS","WeakMap","getCleanClone","object","realm","constructor","Constructor","prototype","__proto__","Object","call","indexOf","getObjectCloneLoose","handleCopy","cache","clone","key","set","symbols","length_1","symbol","getObjectCloneStrict","properties","property","descriptor","value","isArray","GLOBAL_THIS","self","window","global","console","error","copy","options","isStrict","getObjectClone","has","get","regExp","flags","Date","getTime","RegExp","source","ignoreCase","multiline","unicode","sticky","lastIndex","Map","forEach","Set","add","Buffer","isBuffer","allocUnsafe","ArrayBuffer","isView","buffer","slice","then","Error","WeakSet","_keys","push","_values","createCache","strict","merge","sets","xl","x","join","subexp","str","typeOf","o","undefined","toString","split","pop","shift","toUpperCase","buildExps","isIRI","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","DEC_OCTET_RELAXED$","UNRESERVED$$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","IPRIVATE$$","IPV6ADDRESS$","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","floor","Math","stringFromCharCode","String","fromCharCode","type","RangeError","mapDomain","string","fn","parts","result","encoded","array","map","replace","ucs2decode","output","counter","charCodeAt","extra","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","decode","input","codePoint","inputLength","i","n","bias","basic","lastIndexOf","j","oldi","w","t","baseMinusT","out","splice","fromCodePoint","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","punycode","test","SCHEMES","pctEncChar","chr","c","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","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","Array","longestZeroFields","reduce","acc","field","lastLongest","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","e","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","target","tolerant","unescapeComponent","handler","http","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","obj","setInterval","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","uriComponents","UUID","uuidComponents","uuid","https","mailto","urn","baseURI","relativeURI","schemelessOptions","assign","uri","uriA","uriB","ESCAPE","equal","keys","valueOf","checkDataType","checkDataTypes","dataTypes","data","code","types","toHash","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","require$$0","ucs2length","len","pos","varOccurences","dataVar","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","async","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","REMOVE_ERRORS","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schema","rules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","toQuotedString","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","dataType","negate","EQUAL","AND","OK","NOT","arr","hash","IDENTIFIER","SINGLE_QUOTE","util","this","traverse","module","opts","cb","_traverse","pre","post","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","arrayKeywords","propsKeywords","keywords","allKeys","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","patternProperties","dependencies","default","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","format","maxItems","minItems","uniqueItems","maxProperties","minProperties","resolve","compile","root","ref","refVal","_refs","_schemas","SchemaObject","inlineRef","_opts","inlineRefs","validate","_compile","v","baseId","res","resolveSchema","p","URI","refPath","_getFullPath","getFullPath","_getId","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","fullPath","url","ids","schemaId","baseIds","fullPaths","localRefs","PREVENT_SCOPE_CHANGE","part","$ref","SIMPLE_INLINED","limit","checkNoRef","item","countKeys","count","Infinity","normalize","TRAILING_SLASH_HASH","Validation","errorSubclass","message","ajv","validation","MissingRef","MissingRefError","missingRef","missingSchema","Subclass","cmp","f","cycles","node","seen","stringify","toJSON","isFinite","JSON","TypeError","seenIndex","it","$keyword","$ruleType","$async","$refKeywords","RULES","all","$id","strictKeywords","$unknownKwd","$keywordsMsg","logger","warn","isTop","sourceCode","processCode","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$valid","$$outStack","createErrors","messages","verbose","__err","compositeRule","$top","rootId","dataPathArr","useDefaults","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","nullable","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","arr2","i2","l2","arr3","$propertyKey","i3","l3","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","keyword","implements","impl","$ruleImplementsSomeKeyword","ValidationError","errorClasses","refs","patterns","patternsHash","defaults","defaultsHash","customRules","checkCompiling","compilation","_compilations","compiling","callValidate","apply","arguments","formats","_formats","localCompile","cv","endCompiling","_schema","_root","isRoot","validateGenerator","errorPath","resolveRef","usePattern","useCustomRule","vars","refValCode","patternCode","defaultCode","customRuleCode","Function","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","replaceLocalRef","removeLocalRef","refId","inline","regexStr","valueStr","stableStringify","rule","validateSchema","deps","definition","every","errorsText","macro","compIndex","statement","Cache","_cache","put","del","clear","DATE","DAYS","TIME","HOSTNAME","URITEMPLATE","URL","JSON_POINTER_URI_FRAGMENT","mode","date","month","day","year","isLeapYear","time","full","hour","minute","second","fast","date-time","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","$schemaValue","$isData","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","$wasComposite","u","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$additionalItems","$currErrSchemaPath","require$$11","require$$12","require$$13","require$$14","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$regexp","$key","$dataProperties","$schemaKeys","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","$hasDefault","i4","$invalidName","$propertySch","$loopRequired","$itemType","require$$23","KEYWORDS","metaSchema","keywordsJsonPointers","compileAsync","meta","callback","loadSchema","loadMetaSchemaOf","schemaObj","_addSchema","_compileAsync","loadMissingSchema","added","schemaPromise","_loadingSchemas","removePromise","addSchema","getSchema","Promise","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","h","simpleTypes","l","validateKeyword","_addRule","ruleGroup","rg","custom","throwError","_validateKeyword","definitionSchema","Ajv","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","compileSchema","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","addKeyword","customKeyword","getKeyword","removeKeyword","$dataMetaSchema","META_IGNORE_OPTIONS","META_SUPPORT_DATA","ALL","log","noop","setLogger","group","implKeywords","ruleModules","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","require$$1","require$$2","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","maybeAinsley","lowestErrors","formatError","defaultGetConfig","getFlatConfig","import","getConfig","csso","rawCSS","minify","styleEl","children","definedVariables","thisVars","variable","parentVariable","mod","parentValue","variation","variations"],"mappings":";gHAAaA,EAAYC,KAGZ,2BAAeA,qBAEjBC,sCAMTC,EAAOC,EAAIC,sDCmCZC,4KAYoBC,oCAMnBC,EAAaC,gFAoCYC,+BAMb,4JAkBkC,uBAE5CC,sDAKuBC,8DAIMC,2EAQzBC,+SAiDiB,UAKNC,OACiB,sBAAA,IAAAC,EAAAA,kCASlCC,WAEI,GACAC,yBAIUhB,sDAGV,QAA6BiB,6BAIDC,+IA2CRC,iCAsBrBC,2CAIGC,YAAkBC,EAAY,8BAC9BC,aAAe,SAAoBC,2BACzCH,oqBCpSM,IAAAI,8BAENC,gBACAC,wBACAC,kCACAC,6BACAC,+BACAC,wBAEIjB,mBAAEkB,mBAAgBC,yBAUXC,EACyC,mBAA1BJ,EADfI,EAEiB,mBAAZC,QA0CLC,EAAgB,SAACC,EAAaC,GACzC,IAAKD,EAAOE,YACV,OAAOb,EAAO,MAGR,IAAAc,gBACFC,EAAYJ,EAAOK,WAAaX,EAAeM,GAErD,GAAIG,IAAgBF,EAAMK,OACxB,OAAOF,IAAcH,EAAMK,OAAOF,UAAY,GAAKf,EAAOe,GAG5D,IAAKhB,EAAiBmB,KAAKJ,GAAaK,QAAQ,iBAC9C,IACE,OAAO,IAAIL,EACX,UAGJ,OAAOd,EAAOe,IAeHK,EAA6C,SACxDT,EACAC,EACAS,EACAC,GAEA,IAAMC,EAAab,EAAcC,EAAQC,GAIzC,IAAK,IAAMY,KAFXF,EAAMG,IAAId,EAAQY,GAEAZ,EACZL,EAAeY,KAAKP,EAAQa,KAC9BD,EAAMC,GAAOH,EAAWV,EAAOa,GAAMF,IAIzC,GAAId,EAA4B,CAC9B,IAAMkB,EAAoBtB,EAAsBO,GAExCgB,WAER,GAAIA,EACF,IAAK,IAAIlD,EAAQ,EAAGmD,SAAQnD,EAAQkD,EAAQlD,IAGtC8B,EAAqBW,KAAKP,EAF9BiB,EAASF,EAAQjD,MAGf8C,EAAMK,GAAUP,EAAWV,EAAOiB,GAASN,IAMnD,OAAOC,GAeIM,EAA8C,SACzDlB,EACAC,EACAS,EACAC,GAEA,IAAMC,EAAab,EAAcC,EAAQC,GAEzCU,EAAMG,IAAId,EAAQY,GAElB,IAAMO,EAAkCtB,EACpCL,EAAoBQ,GAAQpB,OAAQa,EAAsBO,IAC1DR,EAAoBQ,GAEhB7B,WAER,GAAIA,EACF,IAAK,IAAIL,EAAQ,EAAGsD,SAAUC,SAAYvD,EAAQK,EAAQL,IAGvC,YAFjBsD,EAAWD,EAAWrD,KAEoB,WAAbsD,KAC3BC,EAAa9B,EAAyBS,EAAQoB,IAEnCE,MAAQZ,EAAWV,EAAOoB,GAAWT,GAEhDrB,EAAesB,EAAOQ,EAAUC,IAKtC,OAAOT,GC1KDW,gBAEFC,EACgB,oBAATC,KACFA,KAGa,oBAAXC,OACFA,OAGa,oBAAXC,OACFA,YAGLC,SAAWA,QAAQC,OACrBD,QAAQC,MAAM,sDAuBlB,SAASC,EAAQ9B,EAAW+B,GAE1B,IAAMC,KAAuBD,IAAWA,EAAQC,UAC1C/B,EAAyB8B,GAAWA,EAAQ9B,OAAUuB,EAEtDS,EAAwCD,EAC1Cd,EACAT,EAWEC,EAA8B,SAACV,EAAaW,GAChD,IAAKX,GAA4B,iBAAXA,EACpB,OAAOA,EACP,GAAIW,EAAMuB,IAAIlC,GACd,OAAOW,EAAMwB,IAAInC,GAGX,IAOJY,ED+GuBwB,EACzBC,ECvHMlC,gBAGR,GAAIA,IAAgBF,EAAMK,OACxB,OAAO2B,EAAejC,EAAQC,EAAOS,EAAYC,GAKnD,GAAIY,EAAQvB,GAAS,CAEnB,GAAIgC,EACF,OAAOd,EAAqBlB,EAAQC,EAAOS,EAAYC,GAGjD,IAAAK,WAERJ,EAAQ,IAAIT,EACZQ,EAAMG,IAAId,EAAQY,GAElB,IAAK,IAAI9C,EAAgB,EAAGA,EAAQkD,EAAQlD,IAC1C8C,EAAM9C,GAAS4C,EAAWV,EAAOlC,GAAQ6C,GAG3C,OAAOC,EAIT,GAAIZ,aAAkBC,EAAMqC,KAC1B,OAAO,IAAInC,EAAYH,EAAOuC,WAIhC,GAAIvC,aAAkBC,EAAMuC,OAK1B,OAJA5B,EAAQ,IAAIT,EAAYH,EAAOyC,OAAQzC,EAAOqC,QDqF9CA,EAAQ,IADiBD,ECpF6CpC,GDuF/D2B,SACTU,GAAS,KAGPD,EAAOM,aACTL,GAAS,KAGPD,EAAOO,YACTN,GAAS,KAGPD,EAAOQ,UACTP,GAAS,KAGPD,EAAOS,SACTR,GAAS,KAGJA,KCzGGS,UAAY9C,EAAO8C,UAElBlC,EAIT,GAAIX,EAAM8C,KAAO/C,aAAkBC,EAAM8C,IAQvC,OAPAnC,EAAQ,IAAIT,EACZQ,EAAMG,IAAId,EAAQY,GAElBZ,EAAOgD,SAAQ,SAAC1B,EAAYT,GAC1BD,EAAME,IAAID,EAAKH,EAAWY,EAAOX,OAG5BC,EAIT,GAAIX,EAAMgD,KAAOjD,aAAkBC,EAAMgD,IAQvC,OAPArC,EAAQ,IAAIT,EACZQ,EAAMG,IAAId,EAAQY,GAElBZ,EAAOgD,SAAQ,SAAC1B,GACdV,EAAMsC,IAAIxC,EAAWY,EAAOX,OAGvBC,EAIT,GAAIX,EAAMkD,QAAUlD,EAAMkD,OAAOC,SAASpD,GAQxC,OAPAY,EAAQX,EAAMkD,OAAOE,YACjBpD,EAAMkD,OAAOE,YAAYrD,EAAO7B,QAChC,IAAIgC,EAAYH,EAAO7B,QAE3BwC,EAAMG,IAAId,EAAQY,GAClBZ,EAAO8B,KAAKlB,GAELA,EAIT,GAAIX,EAAMqD,YAAa,CAErB,GAAIrD,EAAMqD,YAAYC,OAAOvD,GAG3B,OAFAY,EAAQ,IAAIT,EAAYH,EAAOwD,OAAOC,MAAM,IAC5C9C,EAAMG,IAAId,EAAQY,GACXA,EAIT,GAAIZ,aAAkBC,EAAMqD,YAG1B,OAFA1C,EAAQZ,EAAOyD,MAAM,GACrB9C,EAAMG,IAAId,EAAQY,GACXA,EAKX,MAEyB,mBAAhBZ,EAAO0D,MAEd1D,aAAkB2D,OAEjB1D,EAAMH,SAAWE,aAAkBC,EAAMH,SAEzCG,EAAM2D,SAAW5D,aAAkBC,EAAM2D,QAEnC5D,EAIFiC,EAAejC,EAAQC,EAAOS,EAAYC,IAGnD,OAAOD,EAAWV,EDnJO,WACzB,GAAIH,EACF,OAAO,IAAIC,QAIb,IAAME,EAASX,EAAO,CACpB6C,IAAK,SAACrB,GAAa,SAAGb,EAAO6D,MAAMrD,QAAQK,IAC3CC,IAAK,SAACD,EAAUS,GACdtB,EAAO6D,MAAMC,KAAKjD,GAClBb,EAAO+D,QAAQD,KAAKxC,IAEtBa,IAAK,SAACtB,GAAa,OAAAb,EAAO+D,QAAQ/D,EAAO6D,MAAMrD,QAAQK,OAMzD,OAHAb,EAAO6D,MAAQ,GACf7D,EAAO+D,QAAU,GAEV/D,ECiImBgE,IAc5BlC,EAAKmC,OAAS,SAAoBjE,EAAa+B,GAC7C,OAAOD,EAAK9B,EAAQ,CAClBgC,UAAU,EACV/B,MAAO8B,EAAUA,EAAQ9B,WAAQ,0RCpMrC,SAAAiE,+BAAyBC,4CACpBA,EAAKhG,OAAS,EAAG,GACf,GAAKgG,EAAK,GAAGV,MAAM,GAAI,WACtBW,EAAKD,EAAKhG,OAAS,EAChBkG,EAAI,EAAGA,EAAID,IAAMC,IACpBA,GAAKF,EAAKE,GAAGZ,MAAM,GAAI,YAExBW,GAAMD,EAAKC,GAAIX,MAAM,GACnBU,EAAKG,KAAK,WAEVH,EAAK,GAId,SAAAI,EAAuBC,SACf,MAAQA,EAAM,IAGtB,SAAAC,EAAuBC,eACTC,IAAND,EAAkB,YAAqB,OAANA,EAAa,OAASpE,OAAOF,UAAUwE,SAASrE,KAAKmE,GAAGG,MAAM,KAAKC,MAAMD,MAAM,KAAKE,QAAQ7G,cAGrI,SAAA8G,EAA4BR,UACpBA,EAAIQ,cCpBZ,SAAAC,EAA0BC,OAMxBC,EAAWjB,EAFD,QAEgB,YAG1BkB,EAAeb,EAAOA,EAAO,UAAYY,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMZ,EAAO,cAAgBY,EAAW,IAAMA,EAAWA,GAAY,IAAMZ,EAAO,IAAMY,EAAWA,IAEhNE,EAAe,sCACfC,EAAapB,EAFE,0BAEkBmB,KAEpBH,EAAQ,oBAAsB,OAC5BhB,EAbL,WAEA,QAW6B,iBAF3BgB,EAAQ,8EAAgF,MAMpGK,GAHUhB,EAdA,WAciBL,EAdjB,WAEA,QAYyC,eAAiB,KACxDK,EAAOA,EAAOa,EAAe,IAAMlB,EAAMsB,EAAcH,EAAc,UAAY,KAExEd,EAAOA,EAAO,WAAa,IAAMA,EAAO,eAAsB,IAAMA,EAAO,eAA2B,IAAMA,EAAO,gBAA5GA,iBACbA,EAAOgB,EAAqB,MAAQA,EAAqB,MAAQA,EAAqB,MAAQA,GAC7GE,EAAOlB,EAAOY,EAAW,SACzBO,EAAQnB,EAAOA,EAAOkB,EAAO,MAAQA,GAAQ,IAAME,GACnDC,EAAgBrB,EAAmEA,EAAOkB,EAAO,OAAS,MAAQC,KAClGnB,EAAwD,SAAWA,EAAOkB,EAAO,OAAS,MAAQC,KAClGnB,EAAOA,EAAwCkB,GAAQ,UAAYlB,EAAOkB,EAAO,OAAS,MAAQC,KAClGnB,EAAOA,EAAOA,EAAOkB,EAAO,OAAS,QAAUA,GAAQ,UAAYlB,EAAOkB,EAAO,OAAS,MAAQC,KAClGnB,EAAOA,EAAOA,EAAOkB,EAAO,OAAS,QAAUA,GAAQ,UAAYlB,EAAOkB,EAAO,OAAS,MAAQC,KAClGnB,EAAOA,EAAOA,EAAOkB,EAAO,OAAS,QAAUA,GAAQ,UAAmBA,EAAO,MAAiBC,KAClGnB,EAAOA,EAAOA,EAAOkB,EAAO,OAAS,QAAUA,GAAQ,UAA2CC,KAClGnB,EAAOA,EAAOA,EAAOkB,EAAO,OAAS,QAAUA,GAAQ,UAA2CA,KAClGlB,EAAOA,EAAOA,EAAOkB,EAAO,OAAS,QAAUA,GAAQ,aACxDlB,EAAO,CAACqB,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,GAAe9B,KAAK,MACnK+B,EAAU9B,EAAOA,EAAOiB,EAAe,IAAMJ,GAAgB,KAS7DkB,GANa/B,EAAO,OAASY,EAAW,OAASjB,EAAMsB,EAAcH,EAAc,SAAW,KAElFd,EAAOA,EAAOa,EAAe,IAAMlB,EAAMsB,EAAcH,IAAiB,KAI3Ed,EAAOa,EAAe,IAAMlB,EAAMsB,EAAcH,EAAc,qBAGtDd,EAAOA,EAAOa,EAAe,IAAMlB,EAAMsB,EAAcH,EAAc,UAAY,KAOzFd,EAAOA,EAAO+B,EAAS,IAAMpC,EAAM,WAAYqC,IAAe,KAgBjE,YACW/D,OAAO0B,EAAM,MAnEpB,WAEA,QAiE6C,eAAgB,kBACpD1B,OAAO0B,EAAM,YAAasB,EAAcH,GAAe,cAC3D7C,OAAO0B,EAAM,kBAAmBsB,EAAcH,GAAe,cAC7D7C,OAAO0B,EAAM,kBAAmBsB,EAAcH,GAAe,uBACpD7C,OAAO0B,EAAM,eAAgBsB,EAAcH,GAAe,eAClE7C,OAAO0B,EAAM,SAAUsB,EAAcH,EAAc,iBAAkBkB,GAAa,kBAC/E/D,OAAO0B,EAAM,SAAUsB,EAAcH,EAAc,kBAAmB,YAC5E7C,OAAO0B,EAAM,MAAOsB,EAAcH,GAAe,gBAC7C7C,OAAOgD,EAAc,iBACpBhD,OAAO0B,EAAM,SAAUsB,EAAcF,GAAa,iBAClD9C,OAAO4C,EAAc,iBACrB5C,OAAO,KAAOmD,EAAe,kBAC7BnD,OAAO,SAAWgE,EAAe,IAAMjC,EAAOA,EAAO,eAAiBY,EAAW,QAAU,IAAMkB,EAAU,KAAO,WAItI,MAAepB,GAAU,KCrFVA,GAAU,iZCAnBwB,EAAS,WAaTC,EAAgB,QAChBC,EAAgB,aAChBC,EAAkB,4BAGlBC,EAAS,UACF,8DACC,iEACI,iBAKZC,EAAQC,KAAKD,MACbE,EAAqBC,OAAOC,aAUlC,SAASrF,EAAMsF,SACR,IAAIC,WAAWP,EAAOM,IA8B7B,SAASE,EAAUC,EAAQC,OACpBC,EAAQF,EAAOzC,MAAM,KACvB4C,EAAS,GACTD,EAAMrJ,OAAS,MAGTqJ,EAAM,GAAK,MACXA,EAAM,QAKVE,EA/BP,SAAaC,EAAOJ,WACbE,EAAS,GACXtJ,EAASwJ,EAAMxJ,OACZA,OACCA,GAAUoJ,EAAGI,EAAMxJ,WAEpBsJ,EAyBSG,IAFPN,EAAOO,QAAQjB,EAAiB,MACnB/B,MAAM,KACA0C,GAAIjD,KAAK,YAC9BmD,EAASC,EAgBjB,SAASI,EAAWR,WACbS,EAAS,GACXC,EAAU,EACR7J,EAASmJ,EAAOnJ,OACf6J,EAAU7J,GAAQ,KAClBmD,EAAQgG,EAAOW,WAAWD,QAC5B1G,GAAS,OAAUA,GAAS,OAAU0G,EAAU7J,EAAQ,KAErD+J,EAAQZ,EAAOW,WAAWD,KACR,QAAX,MAARE,KACGpE,OAAe,KAARxC,IAAkB,KAAe,KAAR4G,GAAiB,UAIjDpE,KAAKxC,eAINwC,KAAKxC,UAGPyG,EAWR,IAmCMI,EAAe,SAASC,EAAOC,UAG7BD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,IAQnDC,EAAQ,SAASC,EAAOC,EAAWC,OACpCC,EAAI,QACAD,EAAY3B,EAAMyB,EA1Kd,KA0K8BA,GAAS,KAC1CzB,EAAMyB,EAAQC,GACOD,EAAQI,IAA2BD,GAhLrD,KAiLH5B,EAAMyB,EA3JM/J,WA6JdsI,EAAM4B,EAAI,GAAsBH,GAASA,EAhLpC,MA0LPK,EAAS,SAASC,OApDMC,EAsDvBf,EAAS,GACTgB,EAAcF,EAAM1K,OACtB6K,EAAI,EACJC,EA5LY,IA6LZC,EA9Le,GAoMfC,EAAQN,EAAMO,YAlMD,KAmMbD,EAAQ,MACH,OAGJ,IAAIE,EAAI,EAAGA,EAAIF,IAASE,EAExBR,EAAMZ,WAAWoB,IAAM,OACpB,eAEAvF,KAAK+E,EAAMZ,WAAWoB,QAMzB,IAAIvL,EAAQqL,EAAQ,EAAIA,EAAQ,EAAI,EAAGrL,EAAQiL,GAAwC,SAOvFO,EAAON,EACFO,EAAI,EAAGb,EAjOL,IAiOmCA,GAjOnC,GAiO8C,CAEpD5K,GAASiL,KACN,qBAGDX,GA9FqBU,EA8FAD,EAAMZ,WAAWnK,MA7F9B,GAAO,GACfgL,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAjJR,IAyONV,GAzOM,IAyOWA,EAAQtB,GAAOL,EAASuC,GAAKO,OAC3C,eAGFnB,EAAQmB,MACPC,EAAId,GAAKQ,EA7OL,EA6OoBR,GAAKQ,EA5OzB,GAAA,GA4O8CR,EAAIQ,KAExDd,EAAQoB,YAINC,EApPI,GAoPgBD,EACtBD,EAAIzC,EAAML,EAASgD,MAChB,eAGFA,MAIAC,EAAM3B,EAAO5J,OAAS,IACrBmK,EAAMU,EAAIM,EAAMI,EAAa,GAARJ,GAIxBxC,EAAMkC,EAAIU,GAAOjD,EAASwC,KACvB,eAGFnC,EAAMkC,EAAIU,MACVA,IAGEC,OAAOX,IAAK,EAAGC,UAIhBhC,OAAO2C,2BAAiB7B,IAU1B8B,EAAS,SAAShB,OACjBd,EAAS,GAMXgB,KAHIjB,EAAWe,IAGK1K,OAGpB8K,EA5RY,IA6RZV,EAAQ,EACRW,EA/Re,sCAkSQL,iDAAO,KAAvBiB,UACNA,EAAe,OACXhG,KAAKkD,EAAmB8C,sFAI7BC,EAAchC,EAAO5J,OACrB6L,EAAiBD,MAMjBA,KACIjG,KA9SS,KAkTVkG,EAAiBjB,GAAa,KAIhCkB,EAAIxD,qCACmBoC,iDAAO,KAAvBiB,UACNA,GAAgBb,GAAKa,EAAeG,MACnCH,qFAMAI,EAAwBF,EAAiB,EAC3CC,EAAIhB,EAAInC,GAAOL,EAAS8B,GAAS2B,MAC9B,gBAGGD,EAAIhB,GAAKiB,IACfD,yCAEuBpB,iDAAO,KAAvBiB,aACNA,EAAeb,KAAOV,EAAQ9B,KAC3B,YAEHqD,GAAgBb,EAAG,SAElBkB,EAAI5B,EACCG,EArVA,IAqV8BA,GArV9B,GAqVyC,KAC3Cc,EAAId,GAAKQ,EArVP,EAqVsBR,GAAKQ,EApV3B,GAAA,GAoVgDR,EAAIQ,KACxDiB,EAAIX,YAGFY,EAAUD,EAAIX,EACdC,EA3VE,GA2VkBD,IACnB1F,KACNkD,EAAmBmB,EAAaqB,EAAIY,EAAUX,EAAY,OAEvD3C,EAAMsD,EAAUX,KAGd3F,KAAKkD,EAAmBmB,EAAagC,EAAG,OACxC7B,EAAMC,EAAO2B,EAAuBF,GAAkBD,KACrD,IACNC,mFAIFzB,IACAU,SAGIlB,EAAOzD,KAAK,KA4Cd+F,EAXU,SAASxB,UACjBxB,EAAUwB,GAAO,SAASvB,UACzBX,EAAc2D,KAAKhD,GACvB,OAASuC,EAAOvC,GAChBA,MAOC+C,EA9BY,SAASxB,UACnBxB,EAAUwB,GAAO,SAASvB,UACzBZ,EAAc4D,KAAKhD,GACvBsB,EAAOtB,EAAO7D,MAAM,GAAGvF,eACvBoJ,MC7SQiD,EAA6C,GAE1D,SAAAC,EAA2BC,OACpBC,EAAID,EAAIxC,WAAW,UAGrByC,EAAI,GAAQ,KAAOA,EAAE9F,SAAS,IAAII,cAC7B0F,EAAI,IAAS,IAAMA,EAAE9F,SAAS,IAAII,cAClC0F,EAAI,KAAU,KAAQA,GAAK,EAAK,KAAK9F,SAAS,IAAII,cAAgB,KAAY,GAAJ0F,EAAU,KAAK9F,SAAS,IAAII,cACtG,KAAQ0F,GAAK,GAAM,KAAK9F,SAAS,IAAII,cAAgB,KAAS0F,GAAK,EAAK,GAAM,KAAK9F,SAAS,IAAII,cAAgB,KAAY,GAAJ0F,EAAU,KAAK9F,SAAS,IAAII,cAK9J,SAAA2F,EAA4BnG,WACvBoG,EAAS,GACT5B,EAAI,EACF6B,EAAKrG,EAAIrG,OAER6K,EAAI6B,GAAI,KACRH,EAAII,SAAStG,EAAIuG,OAAO/B,EAAI,EAAG,GAAI,OAErC0B,EAAI,OACGzD,OAAOC,aAAawD,MACzB,OAED,GAAIA,GAAK,KAAOA,EAAI,IAAK,IACxBG,EAAK7B,GAAM,EAAG,KACZgC,EAAKF,SAAStG,EAAIuG,OAAO/B,EAAI,EAAG,GAAI,OAChC/B,OAAOC,cAAmB,GAAJwD,IAAW,EAAW,GAALM,WAEvCxG,EAAIuG,OAAO/B,EAAG,MAEpB,OAED,GAAI0B,GAAK,IAAK,IACbG,EAAK7B,GAAM,EAAG,KACZgC,EAAKF,SAAStG,EAAIuG,OAAO/B,EAAI,EAAG,GAAI,IACpCiC,EAAKH,SAAStG,EAAIuG,OAAO/B,EAAI,EAAG,GAAI,OAChC/B,OAAOC,cAAmB,GAAJwD,IAAW,IAAa,GAALM,IAAY,EAAW,GAALC,WAE3DzG,EAAIuG,OAAO/B,EAAG,MAEpB,UAGKxE,EAAIuG,OAAO/B,EAAG,MACnB,SAIA4B,EAGR,SAAAM,EAAqCC,EAA0BC,YAC/DC,EAA2B7G,OACnB8G,EAASX,EAAYnG,UAClB8G,EAAOnM,MAAMiM,EAASG,YAAoBD,EAAN9G,SAG1C2G,EAAWK,SAAQL,EAAWK,QAAgBL,EAAWK,OAAlBvE,IAA0BY,QAAQuD,EAASK,YAAaJ,GAAkBnN,cAAc2J,QAAQuD,EAASM,WAAY,UACpI/G,IAAxBwG,EAAWQ,WAAwBR,EAAWQ,UAAkBR,EAAWQ,SAAlB1E,IAA4BY,QAAQuD,EAASK,YAAaJ,GAAkBxD,QAAQuD,EAASQ,aAAcpB,GAAY3C,QAAQuD,EAASK,YAAazG,SAC1LL,IAApBwG,EAAWU,OAAoBV,EAAWU,MAAcV,EAAWU,KAAlB5E,IAAwBY,QAAQuD,EAASK,YAAaJ,GAAkBnN,cAAc2J,QAAQuD,EAASU,SAAUtB,GAAY3C,QAAQuD,EAASK,YAAazG,SACxLL,IAApBwG,EAAWY,OAAoBZ,EAAWY,MAAcZ,EAAWY,KAAlB9E,IAAwBY,QAAQuD,EAASK,YAAaJ,GAAkBxD,QAASsD,EAAWK,OAASJ,EAASY,SAAWZ,EAASa,kBAAoBzB,GAAY3C,QAAQuD,EAASK,YAAazG,SAC5NL,IAArBwG,EAAWe,QAAqBf,EAAWe,OAAef,EAAWe,MAAlBjF,IAAyBY,QAAQuD,EAASK,YAAaJ,GAAkBxD,QAAQuD,EAASe,UAAW3B,GAAY3C,QAAQuD,EAASK,YAAazG,SAC1KL,IAAxBwG,EAAWiB,WAAwBjB,EAAWiB,UAAkBjB,EAAWiB,SAAlBnF,IAA4BY,QAAQuD,EAASK,YAAaJ,GAAkBxD,QAAQuD,EAASiB,aAAc7B,GAAY3C,QAAQuD,EAASK,YAAazG,IAE3MmG,EAGR,SAAAmB,EAA4B9H,UACpBA,EAAIqD,QAAQ,UAAW,OAAS,IAGxC,SAAA0E,EAAwBV,EAAaT,OAC9BoB,EAAUX,EAAK1M,MAAMiM,EAASqB,cAAgB,GAC3CC,IAAWF,eAEhBE,EACIA,EAAQ7H,MAAM,KAAK+C,IAAI0E,GAAoBhI,KAAK,KAEhDuH,EAIT,SAAAc,EAAwBd,EAAaT,OAC9BoB,EAAUX,EAAK1M,MAAMiM,EAASwB,cAAgB,OAC1BJ,KAAjBE,OAASG,UAEdH,EAAS,WACUA,EAAQxO,cAAc2G,MAAM,MAAMiI,mBAAjDC,OAAMC,OACPC,EAAcD,EAAQA,EAAMnI,MAAM,KAAK+C,IAAI0E,GAAsB,GACjEY,EAAaH,EAAKlI,MAAM,KAAK+C,IAAI0E,GACjCa,EAAyB/B,EAASqB,YAAYnC,KAAK4C,EAAWA,EAAW/O,OAAS,IAClFiP,EAAaD,EAAyB,EAAI,EAC1CE,EAAkBH,EAAW/O,OAASiP,EACtCE,EAASC,MAAcH,GAEpB/I,EAAI,EAAGA,EAAI+I,IAAc/I,IAC1BA,GAAK4I,EAAY5I,IAAM6I,EAAWG,EAAkBhJ,IAAM,GAG9D8I,MACIC,EAAa,GAAKb,EAAee,EAAOF,EAAa,GAAIhC,QAe3DoC,EAZgBF,EAAOG,QAA4C,SAACC,EAAKC,EAAO7P,OAChF6P,GAAmB,MAAVA,EAAe,KACtBC,EAAcF,EAAIA,EAAIvP,OAAS,GACjCyP,GAAeA,EAAY9P,MAAQ8P,EAAYzP,SAAWL,IACjDK,WAER2F,KAAK,CAAEhG,QAAOK,OAAS,WAGtBuP,IACL,IAEqCG,MAAK,SAACC,EAAGC,UAAMA,EAAE5P,OAAS2P,EAAE3P,UAAQ,GAExE6P,YACAR,GAAqBA,EAAkBrP,OAAS,EAAG,KAChD8P,EAAWX,EAAO7J,MAAM,EAAG+J,EAAkB1P,OAC7CoQ,EAAUZ,EAAO7J,MAAM+J,EAAkB1P,MAAQ0P,EAAkBrP,UAC/D8P,EAAS3J,KAAK,KAAO,KAAO4J,EAAQ5J,KAAK,YAEzCgJ,EAAOhJ,KAAK,YAGnBuI,OACQ,IAAMA,GAGXmB,SAEAnC,EAIT,IAAMsC,EAAY,kIACZC,OAAuEzJ,IAA3B,GAAIxF,MAAM,SAAU,GAEtE,SAAAkP,EAAsBC,OAAkBvM,yDAAqB,GACtDoJ,EAA2B,GAC3BC,GAA4B,IAAhBrJ,EAAQwM,IAAgBC,EAAeC,EAE/B,WAAtB1M,EAAQ2M,YAAwBJ,GAAavM,EAAQyJ,OAASzJ,EAAQyJ,OAAS,IAAM,IAAM,KAAO8C,OAEhG9B,EAAU8B,EAAUnP,MAAMgP,MAE5B3B,EAAS,CACR4B,KAEQ5C,OAASgB,EAAQ,KACjBb,SAAWa,EAAQ,KACnBX,KAAOW,EAAQ,KACfmC,KAAO7D,SAAS0B,EAAQ,GAAI,MAC5BT,KAAOS,EAAQ,IAAM,KACrBN,MAAQM,EAAQ,KAChBJ,SAAWI,EAAQ,GAG1BoC,MAAMzD,EAAWwD,UACTA,KAAOnC,EAAQ,QAIhBhB,OAASgB,EAAQ,SAAM7H,IACvBgH,UAAwC,IAA5B2C,EAAU9N,QAAQ,KAAcgM,EAAQ,QAAK7H,IACzDkH,MAAqC,IAA7ByC,EAAU9N,QAAQ,MAAegM,EAAQ,QAAK7H,IACtDgK,KAAO7D,SAAS0B,EAAQ,GAAI,MAC5BT,KAAOS,EAAQ,IAAM,KACrBN,OAAqC,IAA5BoC,EAAU9N,QAAQ,KAAcgM,EAAQ,QAAK7H,IACtDyH,UAAwC,IAA5BkC,EAAU9N,QAAQ,KAAcgM,EAAQ,QAAK7H,EAGhEiK,MAAMzD,EAAWwD,UACTA,KAAQL,EAAUnP,MAAM,iCAAmCqN,EAAQ,QAAK7H,IAIjFwG,EAAWU,SAEHA,KAAOc,EAAeJ,EAAepB,EAAWU,KAAMT,GAAWA,MAOjEsD,eAHc/J,IAAtBwG,EAAWK,aAAgD7G,IAAxBwG,EAAWQ,eAA8ChH,IAApBwG,EAAWU,WAA0ClH,IAApBwG,EAAWwD,MAAuBxD,EAAWY,WAA6BpH,IAArBwG,EAAWe,WAE5IvH,IAAtBwG,EAAWK,OACE,gBACW7G,IAAxBwG,EAAWiB,SACE,WAEA,MANA,gBAUpBrK,EAAQ2M,WAAmC,WAAtB3M,EAAQ2M,WAA0B3M,EAAQ2M,YAAcvD,EAAWuD,cAChF7M,MAAQsJ,EAAWtJ,OAAS,gBAAkBE,EAAQ2M,UAAY,mBAIxEG,EAAgBtE,GAASxI,EAAQyJ,QAAUL,EAAWK,QAAU,IAAItN,kBAGrE6D,EAAQ+M,gBAAoBD,GAAkBA,EAAcC,iBAcpC3D,EAAYC,OAdyC,IAE7ED,EAAWU,OAAS9J,EAAQgN,YAAeF,GAAiBA,EAAcE,kBAGjElD,KAAOxB,EAAiBc,EAAWU,KAAKhE,QAAQuD,EAASK,YAAad,GAAazM,eAC7F,MAAO8Q,KACGnN,MAAQsJ,EAAWtJ,OAAS,kEAAoEmN,IAIjF7D,EAAYsD,GAOrCI,GAAiBA,EAAcR,SACpBA,MAAMlD,EAAYpJ,UAGtBF,MAAQsJ,EAAWtJ,OAAS,gCAGjCsJ,EAGR,SAAA8D,EAA6B9D,EAA0BpJ,OAChDqJ,GAA4B,IAAhBrJ,EAAQwM,IAAgBC,EAAeC,EACnDS,EAA0B,eAEJvK,IAAxBwG,EAAWQ,aACJ7H,KAAKqH,EAAWQ,YAChB7H,KAAK,WAGQa,IAApBwG,EAAWU,QAEJ/H,KAAK6I,EAAeJ,EAAsBpB,EAAWU,KAAlB5E,GAAyBmE,GAAWA,GAAUvD,QAAQuD,EAASwB,aAAa,SAACuC,EAAGC,EAAIC,SAAO,IAAMD,GAAMC,EAAK,MAAQA,EAAK,IAAM,QAG9I,iBAApBlE,EAAWwD,SACX7K,KAAK,OACLA,KAAKqH,EAAWwD,KAAK/J,SAAS,MAGlCsK,EAAU/Q,OAAS+Q,EAAU5K,KAAK,SAAMK,EAGhD,IAAM2K,EAAO,WACPC,EAAO,cACPC,EAAO,gBAEPC,EAAO,yBAEb,SAAAC,EAAkC7G,WAC3Bd,EAAuB,GAEtBc,EAAM1K,WACR0K,EAAM1J,MAAMmQ,KACPzG,EAAMhB,QAAQyH,EAAM,SACtB,GAAIzG,EAAM1J,MAAMoQ,KACd1G,EAAMhB,QAAQ0H,EAAM,UACtB,GAAI1G,EAAM1J,MAAMqQ,KACd3G,EAAMhB,QAAQ2H,EAAM,OACrB1K,WACD,GAAc,MAAV+D,GAA2B,OAAVA,IACnB,OACF,KACA8G,EAAK9G,EAAM1J,MAAMsQ,OACnBE,QAKOhM,MAAM,wCAJViM,EAAID,EAAG,KACL9G,EAAMpF,MAAMmM,EAAEzR,UACf2F,KAAK8L,UAOR7H,EAAOzD,KAAK,IAGpB,SAAAuL,EAA0B1E,OAA0BpJ,yDAAqB,GAClEqJ,EAAYrJ,EAAQwM,IAAMC,EAAeC,EACzCS,EAA0B,GAG1BL,EAAgBtE,GAASxI,EAAQyJ,QAAUL,EAAWK,QAAU,IAAItN,kBAGtE2Q,GAAiBA,EAAcgB,WAAWhB,EAAcgB,UAAU1E,EAAYpJ,GAE9EoJ,EAAWU,QAEVT,EAASwB,YAAYtC,KAAKa,EAAWU,YAKpC,GAAI9J,EAAQgN,YAAeF,GAAiBA,EAAcE,iBAGlDlD,KAAS9J,EAAQwM,IAAmGlE,EAAmBc,EAAWU,MAA3HxB,EAAiBc,EAAWU,KAAKhE,QAAQuD,EAASK,YAAad,GAAazM,eAC7G,MAAO8Q,KACGnN,MAAQsJ,EAAWtJ,OAAS,+CAAkDE,EAAQwM,IAAgB,UAAV,SAAuB,kBAAoBS,IAMzH7D,EAAYC,GAEd,WAAtBrJ,EAAQ2M,WAA0BvD,EAAWK,WACtC1H,KAAKqH,EAAWK,UAChB1H,KAAK,UAGVgM,EAAYb,EAAoB9D,EAAYpJ,WAChC4C,IAAdmL,IACuB,WAAtB/N,EAAQ2M,aACD5K,KAAK,QAGNA,KAAKgM,GAEX3E,EAAWY,MAAsC,MAA9BZ,EAAWY,KAAKgE,OAAO,MACnCjM,KAAK,WAIOa,IAApBwG,EAAWY,KAAoB,KAC9B6D,EAAIzE,EAAWY,KAEdhK,EAAQiO,cAAkBnB,GAAkBA,EAAcmB,iBAC1DN,EAAkBE,SAGLjL,IAAdmL,MACCF,EAAE/H,QAAQ,QAAS,WAGd/D,KAAK8L,eAGSjL,IAArBwG,EAAWe,UACJpI,KAAK,OACLA,KAAKqH,EAAWe,aAGCvH,IAAxBwG,EAAWiB,aACJtI,KAAK,OACLA,KAAKqH,EAAWiB,WAGpB8C,EAAU5K,KAAK,IAGvB,SAAA2L,EAAkCzR,EAAoB0R,OAAwBnO,yDAAqB,GAAIoO,eAChGC,EAAuB,UAExBD,MACG9B,EAAMwB,EAAUrR,EAAMuD,GAAUA,KAC5BsM,EAAMwB,EAAUK,EAAUnO,GAAUA,QAEtCA,GAAW,IAERsO,UAAYH,EAAS1E,UAC1BA,OAAS0E,EAAS1E,SAElBG,SAAWuE,EAASvE,WACpBE,KAAOqE,EAASrE,OAChB8C,KAAOuB,EAASvB,OAChB5C,KAAO2D,EAAkBQ,EAASnE,MAAQ,MAC1CG,MAAQgE,EAAShE,aAEEvH,IAAtBuL,EAASvE,eAA4ChH,IAAlBuL,EAASrE,WAAwClH,IAAlBuL,EAASvB,QAEvEhD,SAAWuE,EAASvE,WACpBE,KAAOqE,EAASrE,OAChB8C,KAAOuB,EAASvB,OAChB5C,KAAO2D,EAAkBQ,EAASnE,MAAQ,MAC1CG,MAAQgE,EAAShE,QAEnBgE,EAASnE,MAQmB,MAA5BmE,EAASnE,KAAKgE,OAAO,KACjBhE,KAAO2D,EAAkBQ,EAASnE,SAOjCA,UALepH,IAAlBnG,EAAKmN,eAAwChH,IAAdnG,EAAKqN,WAAoClH,IAAdnG,EAAKmQ,MAAwBnQ,EAAKuN,KAErFvN,EAAKuN,KAGFvN,EAAKuN,KAAKtI,MAAM,EAAGjF,EAAKuN,KAAK3C,YAAY,KAAO,GAAK8G,EAASnE,KAF9DmE,EAASnE,KAFT,IAAMmE,EAASnE,OAMvBA,KAAO2D,EAAkBU,EAAOrE,SAEjCG,MAAQgE,EAAShE,UAnBjBH,KAAOvN,EAAKuN,OAEXG,WADevH,IAAnBuL,EAAShE,MACGgE,EAAShE,MAET1N,EAAK0N,SAkBfP,SAAWnN,EAAKmN,WAChBE,KAAOrN,EAAKqN,OACZ8C,KAAOnQ,EAAKmQ,QAEbnD,OAAShN,EAAKgN,UAGfY,SAAW8D,EAAS9D,SAEpBgE,EA0CR,SAAAE,EAAkC9L,EAAYzC,UACtCyC,IAAOA,GAAAA,GAAeqD,QAAU9F,GAAYA,EAAQwM,IAAiCC,EAAa/C,YAAxCgD,EAAahD,YAAyCd,GCxiBxH,IAAM4F,EAA2B,QACvB,mBAEI,QAEL,SAAUpF,EAA0BpJ,UAEtCoJ,EAAWU,SACJhK,MAAQsJ,EAAWtJ,OAAS,+BAGjCsJ,aAGI,SAAUA,EAA0BpJ,UAE3CoJ,EAAWwD,QAAsD,WAArCxD,EAAWK,OAAlBvE,IAA0B/I,cAA4B,GAAK,MAA4B,KAApBiN,EAAWwD,SAC3FA,UAAOhK,GAIdwG,EAAWY,SACJA,KAAO,KAOZZ,IC5BHoF,EAA2B,QACvB,mBACIC,EAAKzB,iBACVyB,EAAKnC,gBACDmC,EAAKX,WCSZY,EAAkB,GAIlBjL,EAAe,mGACfL,EAAW,cACXC,EAAeb,EAAOA,EAAO,UAAYY,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMZ,EAAO,cAAgBY,EAAW,IAAMA,EAAWA,GAAY,IAAMZ,EAAO,IAAMY,EAAWA,IAehNuL,EAAUxM,EADA,6DACe,aAqBzBqH,EAAa,sFACbE,EAAkBjJ,OAAO4C,EAAc,KACvCuL,EAAqBnO,OAAO0B,EAAM,MAzBxB,wDAyBwC,QAAS,QAASwM,GAAU,KAE9EE,GAAiBpO,OAAO0B,EAAM,MAAOsB,EAjBrB,uCAiBmD,KACnEqL,GAAcD,GAEpB,SAEAvF,GAA0B7G,OACnB8G,EAASX,EAAYnG,UAClB8G,EAAOnM,MAAMoM,GAAoBD,EAAN9G,EAGrC,IAAM+L,GAA8C,QAC1C,eAED,SAAUpF,EAA0BpJ,OACrC+O,EAAmB3F,EACnB4F,EAAKD,EAAiBC,GAAMD,EAAiB/E,KAAO+E,EAAiB/E,KAAKlH,MAAM,KAAO,QAC5EkH,UAAOpH,EAEpBmM,EAAiB5E,MAAO,SACvB8E,GAAiB,EACfC,EAAwB,GACxBC,EAAUJ,EAAiB5E,MAAMrH,MAAM,KAEpCR,EAAI,EAAGD,EAAK8M,EAAQ/S,OAAQkG,EAAID,IAAMC,EAAG,KAC3C8M,EAASD,EAAQ7M,GAAGQ,MAAM,YAExBsM,EAAO,QACT,aACEC,EAAUD,EAAO,GAAGtM,MAAM,KACvBR,EAAI,EAAGD,EAAKgN,EAAQjT,OAAQkG,EAAID,IAAMC,IAC3CP,KAAKsN,EAAQ/M,cAGb,YACagN,QAAUf,EAAkBa,EAAO,GAAIpP,aAEpD,SACauP,KAAOhB,EAAkBa,EAAO,GAAIpP,oBAGpC,IACTuO,EAAkBa,EAAO,GAAIpP,IAAYuO,EAAkBa,EAAO,GAAIpP,IAK7EiP,IAAgBF,EAAiBG,QAAUA,KAG/B/E,WAAQvH,MAEpB,IAAIN,EAAI,EAAGD,EAAK2M,EAAG5S,OAAQkG,EAAID,IAAMC,EAAG,KACtCkN,EAAOR,EAAG1M,GAAGQ,MAAM,UAEpB,GAAKyL,EAAkBiB,EAAK,IAE5BxP,EAAQ+M,iBAQP,GAAKwB,EAAkBiB,EAAK,GAAIxP,GAAS7D,yBALxC,GAAKmM,EAAiBiG,EAAkBiB,EAAK,GAAIxP,GAAS7D,eAC9D,MAAO8Q,KACSnN,MAAQiP,EAAiBjP,OAAS,2EAA6EmN,IAM/H3K,GAAKkN,EAAKjN,KAAK,YAGZwM,aAGI,SAAUA,EAAmC/O,OP7GlCyP,EO8GhBrG,EAAa2F,EACbC,EP9GAS,OADgBA,EO+GHV,EAAiBC,IP9GOS,aAAejE,MAAQiE,EAA6B,iBAAfA,EAAIrT,QAAuBqT,EAAI3M,OAAS2M,EAAIC,aAAeD,EAAIjR,KAAO,CAACiR,GAAOjE,MAAMnN,UAAUqD,MAAMlD,KAAKiR,GAAS,MO+G9LT,EAAI,KACF,IAAI1M,EAAI,EAAGD,EAAK2M,EAAG5S,OAAQkG,EAAID,IAAMC,EAAG,KACtCqN,EAAgBX,EAAG1M,GAAV4C,GACT0K,EAAQD,EAAOtI,YAAY,KAC3BwI,EAAaF,EAAOjO,MAAM,EAAGkO,GAAQ9J,QAAQ4D,EAAaJ,IAAkBxD,QAAQ4D,EAAazG,GAAa6C,QAAQ8I,EAAgBnG,GACxIqH,EAASH,EAAOjO,MAAMkO,EAAQ,SAItB5P,EAAQwM,IAA2ElE,EAAmBwH,GAAxFxH,EAAiBiG,EAAkBuB,EAAQ9P,GAAS7D,eAC5E,MAAO8Q,KACGnN,MAAQsJ,EAAWtJ,OAAS,wDAA2DE,EAAQwM,IAAgB,UAAV,SAAuB,kBAAoBS,IAGzJ3K,GAAKuN,EAAY,IAAMC,IAGhB9F,KAAOgF,EAAGzM,KAAK,SAGrB2M,EAAUH,EAAiBG,QAAUH,EAAiBG,SAAW,GAEnEH,EAAiBO,UAASJ,EAAA,QAAqBH,EAAiBO,SAChEP,EAAiBQ,OAAML,EAAA,KAAkBH,EAAiBQ,UAExDhE,EAAS,OACV,IAAMwE,KAAQb,EACdA,EAAQa,KAAUrB,EAAEqB,MAChBhO,KACNgO,EAAKjK,QAAQ4D,EAAaJ,IAAkBxD,QAAQ4D,EAAazG,GAAa6C,QAAQ+I,GAAYpG,GAClG,IACAyG,EAAQa,GAAMjK,QAAQ4D,EAAaJ,IAAkBxD,QAAQ4D,EAAazG,GAAa6C,QAAQgJ,GAAarG,WAI3G8C,EAAOnP,WACC+N,MAAQoB,EAAOhJ,KAAK,MAGzB6G,IC/JH4G,GAAY,kBAIZxB,GAAqD,QACjD,YAED,SAAUpF,EAA0BpJ,OACrCyK,EAAUrB,EAAWY,MAAQZ,EAAWY,KAAK5M,MAAM4S,IACrDC,EAAgB7G,KAEhBqB,EAAS,KACNhB,EAASzJ,EAAQyJ,QAAUwG,EAAcxG,QAAU,MACnDyG,EAAMzF,EAAQ,GAAGtO,cACjBgU,EAAM1F,EAAQ,GAEdqC,EAAgBtE,EADDiB,OAAUzJ,EAAQkQ,KAAOA,MAGhCA,IAAMA,IACNC,IAAMA,IACNnG,UAAOpH,EAEjBkK,MACaA,EAAcR,MAAM2D,EAAejQ,WAGtCF,MAAQmQ,EAAcnQ,OAAS,gCAGvCmQ,aAGI,SAAUA,EAA6BjQ,OAE5CkQ,EAAMD,EAAcC,IAEpBpD,EAAgBtE,GAHPxI,EAAQyJ,QAAUwG,EAAcxG,QAAU,YAE1BzJ,EAAQkQ,KAAOA,IAG1CpD,MACaA,EAAcgB,UAAUmC,EAAejQ,QAGlDoQ,EAAgBH,WAERjG,MAAUkG,GAAOlQ,EAAQkQ,SAD3BD,EAAcE,IAGnBC,ICxDHC,GAAO,2DAIP7B,GAAsE,QAClE,iBAED,SAAUyB,EAA6BjQ,OACxCsQ,EAAiBL,WACRM,KAAOD,EAAeH,MACtBA,SAAMvN,EAEhB5C,EAAQsO,UAAcgC,EAAeC,MAASD,EAAeC,KAAKnT,MAAMiT,QAC7DvQ,MAAQwQ,EAAexQ,OAAS,sBAGzCwQ,aAGI,SAAUA,EAA+BtQ,OAC9CiQ,EAAgBK,WAERH,KAAOG,EAAeC,MAAQ,IAAIpU,cACzC8T,IC5BTzH,EAAQiG,EAAKhF,QAAUgF,EAGvBjG,EAAQgI,EAAM/G,QAAU+G,EAGxBhI,EAAQiI,GAAOhH,QAAUgH,GAGzBjI,EAAQkI,GAAIjH,QAAUiH,GAGtBlI,EAAQ+H,GAAK9G,QAAU8G,4HNmfvB,SAAwBI,EAAgBC,EAAoB5Q,OACrD6Q,EJpeP,SAAuBxC,EAAgB3N,OAChC+O,EAAMpB,KACR3N,MACE,IAAM5B,KAAO4B,IACb5B,GAAO4B,EAAO5B,UAGb2Q,EI6dmBqB,CAAO,CAAErH,OAAS,QAAUzJ,UAC/C8N,EAAUI,EAAkB5B,EAAMqE,EAASE,GAAoBvE,EAAMsE,EAAaC,GAAoBA,GAAmB,GAAOA,gBAKxI,SAA0BE,EAAS/Q,SACf,iBAAR+Q,IACJjD,EAAUxB,EAAMyE,EAAK/Q,GAAUA,GACX,WAAhB0C,EAAOqO,OACXzE,EAAMwB,EAAyBiD,EAAK/Q,GAAUA,IAG9C+Q,WAKR,SAAsBC,EAAUC,EAAUjR,SACrB,iBAATgR,IACHlD,EAAUxB,EAAM0E,EAAMhR,GAAUA,GACZ,WAAjB0C,EAAOsO,OACVlD,EAAyBkD,EAAMhR,IAGnB,iBAATiR,IACHnD,EAAUxB,EAAM2E,EAAMjR,GAAUA,GACZ,WAAjB0C,EAAOuO,OACVnD,EAAyBmD,EAAMjR,IAGhCgR,IAASC,qBAGjB,SAAgCxO,EAAYzC,UACpCyC,IAAOA,GAAAA,GAAeqD,QAAU9F,GAAYA,EAAQwM,IAA4BC,EAAayE,OAAnCxE,EAAawE,OAA+BzI,yJOhiB9G,MAAiB,SAAS0I,EAAMpF,EAAGC,GACjC,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAE5N,cAAgB6N,EAAE7N,YAAa,OAAO,EAE5C,IAAI/B,EAAQ6K,EAAGmK,EACf,GAAI5F,MAAMhM,QAAQuM,GAAI,CAEpB,IADA3P,EAAS2P,EAAE3P,SACG4P,EAAE5P,OAAQ,OAAO,EAC/B,IAAK6K,EAAI7K,EAAgB,GAAR6K,KACf,IAAKkK,EAAMpF,EAAE9E,GAAI+E,EAAE/E,IAAK,OAAO,EACjC,OAAO,EAKT,GAAI8E,EAAE5N,cAAgBsC,OAAQ,OAAOsL,EAAErL,SAAWsL,EAAEtL,QAAUqL,EAAEzL,QAAU0L,EAAE1L,MAC5E,GAAIyL,EAAEsF,UAAY9S,OAAOF,UAAUgT,QAAS,OAAOtF,EAAEsF,YAAcrF,EAAEqF,UACrE,GAAItF,EAAElJ,WAAatE,OAAOF,UAAUwE,SAAU,MAAOkJ,GAAAA,GAAiBC,GAAAA,EAItE,IADA5P,GADAgV,EAAO7S,OAAO6S,KAAKrF,IACL3P,UACCmC,OAAO6S,KAAKpF,GAAG5P,OAAQ,OAAO,EAE7C,IAAK6K,EAAI7K,EAAgB,GAAR6K,KACf,IAAK1I,OAAOF,UAAUT,eAAeY,KAAKwN,EAAGoF,EAAKnK,IAAK,OAAO,EAEhE,IAAKA,EAAI7K,EAAgB,GAAR6K,KAAY,CAC3B,IAAInI,EAAMsS,EAAKnK,GAEf,IAAKkK,EAAMpF,EAAEjN,GAAMkN,EAAElN,IAAO,OAAO,EAGrC,OAAO,EAIT,OAAOiN,GAAIA,GAAKC,GAAIA,KCzCL,CACfjM,KA2BF,SAAc4C,EAAGqM,GAEf,IAAK,IAAIlQ,KADTkQ,EAAKA,GAAM,GACKrM,EAAGqM,EAAGlQ,GAAO6D,EAAE7D,GAC/B,OAAOkQ,GA7BPsC,cAAeA,EACfC,eAmDF,SAAwBC,EAAWC,GACjC,OAAQD,EAAUpV,QAChB,KAAK,EAAG,OAAOkV,EAAcE,EAAU,GAAIC,GAAM,GACjD,QACE,IAAIC,EAAO,GACPC,EAAQC,EAAOJ,GASnB,IAAK,IAAI/J,KARLkK,EAAM/L,OAAS+L,EAAM1T,SACvByT,EAAOC,EAAME,KAAO,IAAK,KAAOJ,EAAO,OACvCC,GAAQ,UAAYD,EAAO,wBACpBE,EAAME,YACNF,EAAM/L,aACN+L,EAAM1T,QAEX0T,EAAMG,eAAeH,EAAMI,QACjBJ,EACZD,IAASA,EAAO,OAAS,IAAOJ,EAAc7J,EAAGgK,GAAM,GAEzD,OAAOC,IAnEXM,cAyEF,SAAuBC,EAAmBT,GACxC,GAAIhG,MAAMhM,QAAQgS,GAAY,CAE5B,IADA,IAAIG,EAAQ,GACH1K,EAAE,EAAGA,EAAEuK,EAAUpV,OAAQ6K,IAAK,CACrC,IAAIQ,EAAI+J,EAAUvK,IACdiL,EAAgBzK,IACW,UAAtBwK,GAAuC,UAANxK,KADlBkK,EAAMA,EAAMvV,QAAUqL,GAGhD,GAAIkK,EAAMvV,OAAQ,OAAOuV,MACpB,CAAA,GAAIO,EAAgBV,GACzB,MAAO,CAACA,GACH,GAA0B,UAAtBS,GAA+C,UAAdT,EAC1C,MAAO,CAAC,WApFVI,OAAQA,EACRO,YAAaA,EACbC,aAAcA,EACdjB,MAAOkB,EACPC,WCRe,SAAoB7P,GAKnC,IAJA,IAGIlD,EAHAnD,EAAS,EACTmW,EAAM9P,EAAIrG,OACVoW,EAAM,EAEHA,EAAMD,GACXnW,KACAmD,EAAQkD,EAAIyD,WAAWsM,OACV,OAAUjT,GAAS,OAAUiT,EAAMD,GAGtB,QAAX,OADbhT,EAAQkD,EAAIyD,WAAWsM,MACSA,IAGpC,OAAOpW,GDLPqW,cA+GF,SAAuBhQ,EAAKiQ,GAE1B,IAAIjI,EAAUhI,EAAIrF,MAAUqD,OAD5BiS,GAAW,SACiC,MAC5C,OAAOjI,EAAUA,EAAQrO,OAAS,GAjHlCuW,WAqHF,SAAoBlQ,EAAKiQ,EAASE,GAGhC,OAFAF,GAAW,WACXE,EAAOA,EAAK9M,QAAQ,MAAO,QACpBrD,EAAIqD,QAAYrF,OAAOiS,EAAS,KAAME,EAAO,OAvHpDC,YA8HF,SAAqBlL,GACnB,OAAOA,EAAI7B,QAAQgN,EAAY,IACpBhN,QAAQiN,EAAkB,IAC1BjN,QAAQkN,EAAoB,eAhIvCC,iBA8IF,SAA0BtL,EAAKuL,GAC7B,IAAIzI,EAAU9C,EAAIvK,MAAM+V,GACpB1I,GAA6B,GAAlBA,EAAQrO,SACrBuL,EAAMuL,EACEvL,EAAI7B,QAAQsN,EAAqB,IAC7BtN,QAAQuN,EATA,gBAUZ1L,EAAI7B,QAAQwN,EAAe,IACvBxN,QAdG,uBACD,yCAiBhB,OADA2E,EAAU9C,EAAIvK,MAAMmW,KACe,IAAnB9I,EAAQrO,OACjBuL,EAAI7B,QAAQ0N,EAAiB,IADS7L,GAxJ7C8L,eA6JF,SAAwBC,EAAQC,GAC9B,GAAqB,kBAAVD,EAAqB,OAAQA,EACxC,IAAK,IAAI5U,KAAO4U,EAAQ,GAAIC,EAAM7U,GAAM,OAAO,GA9J/C8U,qBAkKF,SAA8BF,EAAQC,EAAOE,GAC3C,GAAqB,kBAAVH,EAAqB,OAAQA,GAA2B,OAAjBG,EAClD,IAAK,IAAI/U,KAAO4U,EAAQ,GAAI5U,GAAO+U,GAAiBF,EAAM7U,GAAM,OAAO,GAnKvEgV,mBAuKF,SAA4BJ,EAAQC,GAClC,GAAqB,kBAAVD,EAAqB,OAChC,IAAK,IAAI5U,KAAO4U,EAAQ,IAAKC,EAAM7U,GAAM,OAAOA,GAxKhDiV,eAAgBA,EAChBC,YAgLF,SAAqBC,EAAarB,EAAMsB,EAAcC,GAIpD,OAAOC,GAAUH,EAHNC,EACG,SAAatB,GAAQuB,EAAW,GAAK,8CACpCA,EAAW,SAAavB,EAAO,SAAa,YAAiBA,EAAO,cAlLnFyB,QAuLF,SAAiBJ,EAAaK,EAAMJ,GAClC,IAAIlK,EACU+J,EADHG,EACkB,IAAMK,GAAkBD,GACxBnC,EAAYmC,IACzC,OAAOF,GAAUH,EAAajK,IA1L9BwK,QAgMF,SAAiBC,EAAOC,EAAKC,GAC3B,IAAIC,EAAIC,EAAapD,EAAMhH,EAC3B,GAAc,KAAVgK,EAAc,MAAO,WACzB,GAAgB,KAAZA,EAAM,GAAW,CACnB,IAAKK,EAAavM,KAAKkM,GAAQ,MAAU7S,MAAM,yBAA2B6S,GAC1EI,EAAcJ,EACdhD,EAAO,eACF,CAEL,KADAhH,EAAUgK,EAAMrX,MAAM2X,KACR,MAAUnT,MAAM,yBAA2B6S,GAGzD,GAFAG,GAAMnK,EAAQ,GAEK,MADnBoK,EAAcpK,EAAQ,IACE,CACtB,GAAImK,GAAMF,EAAK,MAAU9S,MAAM,gCAAkCgT,EAAK,gCAAkCF,GACxG,OAAOC,EAAMD,EAAME,GAGrB,GAAIA,EAAKF,EAAK,MAAU9S,MAAM,sBAAwBgT,EAAK,gCAAkCF,GAE7F,GADAjD,EAAO,QAAWiD,EAAME,GAAO,KAC1BC,EAAa,OAAOpD,EAK3B,IAFA,IAAImB,EAAOnB,EACPuD,EAAWH,EAAY/R,MAAM,KACxBmE,EAAE,EAAGA,EAAE+N,EAAS5Y,OAAQ6K,IAAK,CACpC,IAAIgO,EAAUD,EAAS/N,GACnBgO,IACFxD,GAAQU,EAAY+C,GAAoBD,IACxCrC,GAAQ,OAASnB,GAGrB,OAAOmB,GA9NPuC,iBAwOF,SAA0B1S,GACxB,OAAOyS,GAAoBE,mBAAmB3S,KAxO9CyS,oBAAqBA,GACrBG,eA2OF,SAAwB5S,GACtB,OAAO6S,mBAAmBf,GAAkB9R,KA3O5C8R,kBAAmBA,IAWrB,SAASjD,EAAciE,EAAU9D,EAAM+D,GACrC,IAAIC,EAAQD,EAAS,QAAU,QAC3BE,EAAMF,EAAS,OAAS,OACxBG,EAAKH,EAAS,IAAM,GACpBI,EAAMJ,EAAS,GAAK,IACxB,OAAQD,GACN,IAAK,OAAQ,OAAO9D,EAAOgE,EAAQ,OACnC,IAAK,QAAS,OAAOE,EAAK,iBAAmBlE,EAAO,IACpD,IAAK,SAAU,MAAO,IAAMkE,EAAKlE,EAAOiE,EAClB,UAAYjE,EAAOgE,EAAQ,WAAaC,EACxCE,EAAM,iBAAmBnE,EAAO,KACtD,IAAK,UAAW,MAAO,WAAaA,EAAOgE,EAAQ,WAAaC,EACzCE,EAAM,IAAMnE,EAAO,QACnBiE,EAAMjE,EAAOgE,EAAQhE,EAAO,IACnD,QAAS,MAAO,UAAYA,EAAOgE,EAAQ,IAAMF,EAAW,KA2BhE,IAAIrD,EAAkBN,EAAO,CAAE,SAAU,SAAU,UAAW,UAAW,SAkBzE,SAASA,EAAOiE,GAEd,IADA,IAAIC,EAAO,GACF7O,EAAE,EAAGA,EAAE4O,EAAIzZ,OAAQ6K,IAAK6O,EAAKD,EAAI5O,KAAM,EAChD,OAAO6O,EAIT,IAAIC,EAAa,wBACbC,EAAe,QACnB,SAAS7D,EAAYrT,GACnB,MAAqB,iBAAPA,EACJ,IAAMA,EAAM,IACZiX,EAAWxN,KAAKzJ,GACd,IAAMA,EACN,KAAOsT,EAAatT,GAAO,KAIzC,SAASsT,EAAa3P,GACpB,OAAOA,EAAIqD,QAAQkQ,EAAc,QACtBlQ,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OAkB5B,IAAIgN,EAAa,gBACbC,EAAmB,uCACnBC,EAAqB,8CAQzB,IAAIG,EAAgB,eAChBG,EAAgB,kEAChBF,EAAsB,uCAGtBC,EAAe,gFAEfE,EAAkB,qCAClBC,EAAkB,iDAoCtB,SAASO,EAAetR,GACtB,MAAO,IAAO2P,EAAa3P,GAAO,IAoBpC,IAAIqS,EAAe,sBACfC,GAAwB,mCAoC5B,SAASX,GAAWrI,EAAGC,GACrB,MAAS,MAALD,EAAkBC,GACdD,EAAI,MAAQC,GAAGlG,QAAQ,UAAW,IAc5C,SAASyO,GAAkB9R,GACzB,OAAOA,EAAIqD,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAIhD,SAASoP,GAAoBzS,GAC3B,OAAOA,EAAIqD,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KE5QhD,OAEA,SAAsB2J,GACpBwG,EAAKlW,KAAK0P,EAAKyG,6BCLjB,IAAIC,EAAWC,UAAiB,SAAU1C,EAAQ2C,EAAMC,GAEnC,mBAARD,IACTC,EAAKD,EACLA,EAAO,IAwDX,SAASE,EAAUF,EAAMG,EAAKC,EAAM/C,EAAQgD,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,GAC3G,GAAIrD,GAA2B,iBAAVA,IAAuBlI,MAAMhM,QAAQkU,GAAS,CAEjE,IAAK,IAAI5U,KADT0X,EAAI9C,EAAQgD,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,GAC7DrD,EAAQ,CACtB,IAAIsD,EAAMtD,EAAO5U,GACjB,GAAI0M,MAAMhM,QAAQwX,IAChB,GAAIlY,KAAOqX,EAASc,cAClB,IAAK,IAAIhQ,EAAE,EAAGA,EAAE+P,EAAI5a,OAAQ6K,IAC1BsP,EAAUF,EAAMG,EAAKC,EAAMO,EAAI/P,GAAIyP,EAAU,IAAM5X,EAAM,IAAMmI,EAAG0P,EAAYD,EAAS5X,EAAK4U,EAAQzM,QAEnG,GAAInI,KAAOqX,EAASe,eACzB,GAAIF,GAAqB,iBAAPA,EAChB,IAAK,IAAI1C,KAAQ0C,EACfT,EAAUF,EAAMG,EAAKC,EAAMO,EAAI1C,GAAOoC,EAAU,IAAM5X,EAAM,IAAoBwV,EAY/ExO,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAZmD6Q,EAAYD,EAAS5X,EAAK4U,EAAQY,QAEpHxV,KAAOqX,EAASgB,UAAad,EAAKe,WAAatY,KAAOqX,EAASkB,gBACxEd,EAAUF,EAAMG,EAAKC,EAAMO,EAAKN,EAAU,IAAM5X,EAAK6X,EAAYD,EAAS5X,EAAK4U,GAGnF+C,EAAK/C,EAAQgD,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,IApEhFR,CAAUF,EAHc,mBADxBC,EAAKD,EAAKC,IAAMA,GACsBA,EAAKA,EAAGE,KAAO,aAC1CF,EAAGG,MAAQ,aAEK/C,EAAQ,GAAIA,IAIzCyC,EAASgB,SAAW,CAClBG,iBAAiB,EACjBC,OAAO,EACPC,UAAU,EACVC,sBAAsB,EACtBC,eAAe,EACfC,KAAK,GAGPxB,EAASc,cAAgB,CACvBM,OAAO,EACPK,OAAO,EACPC,OAAO,EACPC,OAAO,GAGT3B,EAASe,cAAgB,CACvBa,aAAa,EACb3Y,YAAY,EACZ4Y,mBAAmB,EACnBC,cAAc,GAGhB9B,EAASkB,aAAe,CACtBa,SAAS,EACTC,MAAM,EACNC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,SAAS,EACTC,kBAAkB,EAClBC,kBAAkB,EAClBC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVC,aAAa,EACbC,eAAe,EACfC,eAAe,SClDAC,GAiBjB,SAASA,GAAQC,EAASC,EAAMC,GAE9B,IAAIC,EAAStD,KAAKuD,MAAMF,GACxB,GAAqB,iBAAVC,EAAoB,CAC7B,IAAItD,KAAKuD,MAAMD,GACV,OAAOJ,GAAQ5a,KAAK0X,KAAMmD,EAASC,EAAME,GADtBA,EAAStD,KAAKuD,MAAMD,GAK9C,IADAA,EAASA,GAAUtD,KAAKwD,SAASH,cACXI,GACpB,OAAOC,GAAUJ,EAAO9F,OAAQwC,KAAK2D,MAAMC,YACjCN,EAAO9F,OACP8F,EAAOO,UAAY7D,KAAK8D,SAASR,GAG7C,IACI9F,EAAQuG,EAAGC,EADXC,EAAMC,GAAc5b,KAAK0X,KAAMoD,EAAMC,GAgBzC,OAdIY,IACFzG,EAASyG,EAAIzG,OACb4F,EAAOa,EAAIb,KACXY,EAASC,EAAID,QAGXxG,aAAkBiG,GACpBM,EAAIvG,EAAOqG,UAAYV,EAAQ7a,KAAK0X,KAAMxC,EAAOA,OAAQ4F,OAAM1W,EAAWsX,QACtDtX,IAAX8Q,IACTuG,EAAIL,GAAUlG,EAAQwC,KAAK2D,MAAMC,YAC3BpG,EACA2F,EAAQ7a,KAAK0X,KAAMxC,EAAQ4F,OAAM1W,EAAWsX,IAG7CD,EAWT,SAASG,GAAcd,EAAMC,GAE3B,IAAIc,EAAIC,EAAIhO,MAAMiN,GACdgB,EAAUC,GAAaH,GACvBH,EAASO,GAAYvE,KAAKwE,OAAOpB,EAAK5F,SAC1C,GAAwC,IAApCnV,OAAO6S,KAAKkI,EAAK5F,QAAQtX,QAAgBme,IAAYL,EAAQ,CAC/D,IAAIS,EAAKC,GAAYL,GACjBf,EAAStD,KAAKuD,MAAMkB,GACxB,GAAqB,iBAAVnB,EACT,OAAOqB,GAAiBrc,KAAK0X,KAAMoD,EAAME,EAAQa,GAC5C,GAAIb,aAAkBG,GACtBH,EAAOO,UAAU7D,KAAK8D,SAASR,GACpCF,EAAOE,MACF,CAEL,MADAA,EAAStD,KAAKwD,SAASiB,cACDhB,IAMpB,OAJA,GADKH,EAAOO,UAAU7D,KAAK8D,SAASR,GAChCmB,GAAMC,GAAYrB,GACpB,MAAO,CAAE7F,OAAQ8F,EAAQF,KAAMA,EAAMY,OAAQA,GAC/CZ,EAAOE,EAKX,IAAKF,EAAK5F,OAAQ,OAClBwG,EAASO,GAAYvE,KAAKwE,OAAOpB,EAAK5F,SAExC,OAAOoH,GAAetc,KAAK0X,KAAMmE,EAAGH,EAAQZ,EAAK5F,OAAQ4F,GAK3D,SAASuB,GAAiBvB,EAAMC,EAAKwB,GAEnC,IAAIZ,EAAMC,GAAc5b,KAAK0X,KAAMoD,EAAMC,GACzC,GAAIY,EAAK,CACP,IAAIzG,EAASyG,EAAIzG,OACbwG,EAASC,EAAID,OACjBZ,EAAOa,EAAIb,KACX,IAAIqB,EAAKzE,KAAKwE,OAAOhH,GAErB,OADIiH,IAAIT,EAASc,GAAWd,EAAQS,IAC7BG,GAAetc,KAAK0X,KAAM6E,EAAWb,EAAQxG,EAAQ4F,IAlGhEF,GAAQwB,YAAcA,GACtBxB,GAAQ6B,SAAWR,GACnBrB,GAAQ8B,IAAMF,GACd5B,GAAQ+B,IA0NR,SAAoBzH,GAClB,IAAI0H,EAAWR,GAAY1E,KAAKwE,OAAOhH,IACnC2H,EAAU,CAAC,GAAID,GACfE,EAAY,CAAC,GAAIb,GAAYW,GAAU,IACvCG,EAAY,GACZ7b,EAAOwW,KAgCX,OA9BAC,GAASzC,EAAQ,CAAC0D,SAAS,IAAO,SAASJ,EAAKN,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,GAC/G,GAAgB,KAAZL,EAAJ,CACA,IAAIiE,EAAKjb,EAAKgb,OAAO1D,GACjBkD,EAASmB,EAAQzE,GACjBqE,EAAWK,EAAU1E,GAAiB,IAAMC,EAIhD,QAHiBjU,IAAbmU,IACFkE,GAAY,KAA0B,iBAAZlE,EAAuBA,EAAWd,EAAKZ,eAAe0B,KAEjE,iBAAN4D,EAAgB,CACzBA,EAAKT,EAASU,GAAYV,EAASI,EAAIlB,QAAQc,EAAQS,GAAMA,GAE7D,IAAInB,EAAS9Z,EAAK+Z,MAAMkB,GAExB,GADqB,iBAAVnB,IAAoBA,EAAS9Z,EAAK+Z,MAAMD,IAC/CA,GAAUA,EAAO9F,QACnB,IAAKvC,EAAM6F,EAAKwC,EAAO9F,QACrB,MAAU9R,MAAM,OAAS+Y,EAAK,2CAC3B,GAAIA,GAAMC,GAAYK,GAC3B,GAAa,KAATN,EAAG,GAAW,CAChB,GAAIY,EAAUZ,KAAQxJ,EAAM6F,EAAKuE,EAAUZ,IACzC,MAAU/Y,MAAM,OAAS+Y,EAAK,sCAChCY,EAAUZ,GAAM3D,OAEhBtX,EAAK+Z,MAAMkB,GAAMM,EAIvBI,EAAQ3E,GAAWwD,EACnBoB,EAAU5E,GAAWuE,MAGhBM,GA9PTnC,GAAQQ,UAAYA,GACpBR,GAAQ1F,OAAS0G,GAkGjB,IAAIoB,GAAuBvF,EAAKrE,OAAO,CAAC,aAAc,oBAAqB,OAAQ,eAAgB,gBAEnG,SAASkJ,GAAeC,EAAWb,EAAQxG,EAAQ4F,GAGjD,GADAyB,EAAU1Q,SAAW0Q,EAAU1Q,UAAY,GACN,KAAjC0Q,EAAU1Q,SAAS3I,MAAM,EAAE,GAA/B,CAGA,IAFA,IAAI+D,EAAQsV,EAAU1Q,SAASvH,MAAM,KAE5BmE,EAAI,EAAGA,EAAIxB,EAAMrJ,OAAQ6K,IAAK,CACrC,IAAIwU,EAAOhW,EAAMwB,GACjB,GAAIwU,EAAM,CAGR,QAAe7Y,KADf8Q,EAASA,EADT+H,EAAOxF,EAAKd,iBAAiBsG,KAEH,MAC1B,IAAId,EACJ,IAAKa,GAAqBC,MACxBd,EAAKzE,KAAKwE,OAAOhH,MACTwG,EAASc,GAAWd,EAAQS,IAChCjH,EAAOgI,GAAM,CACf,IAAIA,EAAOV,GAAWd,EAAQxG,EAAOgI,GACjCvB,EAAMC,GAAc5b,KAAK0X,KAAMoD,EAAMoC,GACrCvB,IACFzG,EAASyG,EAAIzG,OACb4F,EAAOa,EAAIb,KACXY,EAASC,EAAID,UAMvB,YAAetX,IAAX8Q,GAAwBA,IAAW4F,EAAK5F,OACnC,CAAEA,OAAQA,EAAQ4F,KAAMA,EAAMY,OAAQA,QAD/C,GAKF,IAAIyB,GAAiB1F,EAAKrE,OAAO,CAC/B,OAAQ,SAAU,UAClB,YAAa,YACb,gBAAiB,gBACjB,WAAY,WACZ,UAAW,UACX,cAAe,aACf,WAAY,SAEd,SAASgI,GAAUlG,EAAQkI,GACzB,OAAc,IAAVA,SACUhZ,IAAVgZ,IAAiC,IAAVA,EAK7B,SAASC,EAAWnI,GAClB,IAAIoI,EACJ,GAAItQ,MAAMhM,QAAQkU,IAChB,IAAK,IAAIzM,EAAE,EAAGA,EAAEyM,EAAOtX,OAAQ6K,IAE7B,GAAmB,iBADnB6U,EAAOpI,EAAOzM,MACkB4U,EAAWC,GAAO,OAAO,OAG3D,IAAK,IAAIhd,KAAO4U,EAAQ,CACtB,GAAW,QAAP5U,EAAe,OAAO,EAE1B,GAAmB,iBADnBgd,EAAOpI,EAAO5U,MACkB+c,EAAWC,GAAO,OAAO,EAG7D,OAAO,EAnB2CD,CAAWnI,GACpDkI,EAsBX,SAASG,EAAUrI,GACjB,IAAeoI,EAAXE,EAAQ,EACZ,GAAIxQ,MAAMhM,QAAQkU,IAChB,IAAK,IAAIzM,EAAE,EAAGA,EAAEyM,EAAOtX,OAAQ6K,IAG7B,GADmB,iBADnB6U,EAAOpI,EAAOzM,MACe+U,GAASD,EAAUD,IACnCG,UAATD,EAAmB,OAAOC,cAGhC,IAAK,IAAInd,KAAO4U,EAAQ,CACtB,GAAW,QAAP5U,EAAe,OAAOmd,SAC1B,GAAIN,GAAe7c,GACjBkd,SAIA,GADmB,iBADnBF,EAAOpI,EAAO5U,MACekd,GAASD,EAAUD,GAAQ,GAC3CG,UAATD,EAAmB,OAAOC,SAIpC,OAAOD,EA1CgBD,CAAUrI,IAAWkI,OAAvC,GA8CP,SAASnB,GAAYE,EAAIuB,GAGvB,OAFkB,IAAdA,IAAqBvB,EAAKC,GAAYD,IAEnCH,GADCF,EAAIhO,MAAMqO,IAKpB,SAASH,GAAaH,GACpB,OAAOC,EAAIxM,UAAUuM,GAAGvX,MAAM,KAAK,GAAK,IAI1C,IAAIqZ,GAAsB,QAC1B,SAASvB,GAAYD,GACnB,OAAOA,EAAKA,EAAG7U,QAAQqW,GAAqB,IAAM,GAIpD,SAASnB,GAAWd,EAAQS,GAE1B,OADAA,EAAKC,GAAYD,GACVL,EAAIlB,QAAQc,EAAQS,GC9N7B,OAAiB,CACfyB,WAAYC,IAKd,SAAyBvX,GACvBoR,KAAKoG,QAAU,oBACfpG,KAAKpR,OAASA,EACdoR,KAAKqG,IAAMrG,KAAKsG,YAAa,KAP7BC,WAAYJ,GAAcK,KAgB5B,SAASA,GAAgBxC,EAAQX,EAAK+C,GACpCpG,KAAKoG,QAAUA,GAAWI,GAAgBJ,QAAQpC,EAAQX,GAC1DrD,KAAKyG,WAAavD,GAAQ8B,IAAIhB,EAAQX,GACtCrD,KAAK0G,cAAgBxD,GAAQwB,YAAYxB,GAAQ6B,SAAS/E,KAAKyG,aAIjE,SAASN,GAAcQ,GAGrB,OAFAA,EAASxe,UAAYE,OAAOjB,OAAOsE,MAAMvD,WACzCwe,EAASxe,UAAUF,YAAc0e,EAC1BA,EAfTH,GAAgBJ,QAAU,SAAUpC,EAAQX,GAC1C,MAAO,2BAA8BA,EAAM,YAAcW,GChB3D,OAAiB,SAAUzI,EAAM4E,GACxBA,IAAMA,EAAO,IACE,mBAATA,IAAqBA,EAAO,CAAEyG,IAAKzG,IAC9C,IAEiC0G,EAF7BC,EAAiC,kBAAhB3G,EAAK2G,QAAwB3G,EAAK2G,OAEnDF,EAAMzG,EAAKyG,MAAkBC,EAQ9B1G,EAAKyG,IAPG,SAAUG,GACb,OAAO,SAAUlR,EAAGC,GAGhB,OAAO+Q,EAFI,CAAEje,IAAKiN,EAAGxM,MAAO0d,EAAKlR,IACtB,CAAEjN,IAAKkN,EAAGzM,MAAO0d,EAAKjR,QAMzCkR,EAAO,GACX,OAAO,SAAUC,EAAWF,GAKxB,GAJIA,GAAQA,EAAKG,QAAiC,mBAAhBH,EAAKG,SACnCH,EAAOA,EAAKG,eAGHxa,IAATqa,EAAJ,CACA,GAAmB,iBAARA,EAAkB,OAAOI,SAASJ,GAAQ,GAAKA,EAAO,OACjE,GAAoB,iBAATA,EAAmB,OAAOK,KAAKH,UAAUF,GAEpD,IAAIhW,EAAGU,EACP,GAAI6D,MAAMhM,QAAQyd,GAAO,CAErB,IADAtV,EAAM,IACDV,EAAI,EAAGA,EAAIgW,EAAK7gB,OAAQ6K,IACrBA,IAAGU,GAAO,KACdA,GAAOwV,EAAUF,EAAKhW,KAAO,OAEjC,OAAOU,EAAM,IAGjB,GAAa,OAATsV,EAAe,MAAO,OAE1B,IAA4B,IAAxBC,EAAKze,QAAQwe,GAAc,CAC3B,GAAID,EAAQ,OAAOM,KAAKH,UAAU,aAClC,MAAM,IAAII,UAAU,yCAGxB,IAAIC,EAAYN,EAAKnb,KAAKkb,GAAQ,EAC9B7L,EAAO7S,OAAO6S,KAAK6L,GAAMnR,KAAKgR,GAAOA,EAAIG,IAE7C,IADAtV,EAAM,GACDV,EAAI,EAAGA,EAAImK,EAAKhV,OAAQ6K,IAAK,CAC9B,IAAInI,EAAMsS,EAAKnK,GACX1H,EAAQ4d,EAAUF,EAAKne,IAEtBS,IACDoI,IAAKA,GAAO,KAChBA,GAAO2V,KAAKH,UAAUre,GAAO,IAAMS,GAGvC,OADA2d,EAAKtV,OAAO4V,EAAW,GAChB,IAAM7V,EAAM,KAtChB,CAuCJ8J,OCxDU,SAA2BgM,EAAIC,EAAUC,GACxD,IAAIhW,EAAM,GACNiW,GAA8B,IAArBH,EAAG/J,OAAOkK,EACrBC,EAAeJ,EAAGxH,KAAKrC,qBAAqB6J,EAAG/J,OAAQ+J,EAAGK,MAAMC,IAAK,QACrEC,EAAMP,EAAG/d,KAAKgb,OAAO+C,EAAG/J,QAC1B,GAAI+J,EAAGpH,KAAK4H,eAAgB,CAC1B,IAAIC,EAAcT,EAAGxH,KAAKnC,mBAAmB2J,EAAG/J,OAAQ+J,EAAGK,MAAM3G,UACjE,GAAI+G,EAAa,CACf,IAAIC,EAAe,oBAAsBD,EACzC,GAA+B,QAA3BT,EAAGpH,KAAK4H,eACP,MAAUrc,MAAMuc,GADiBV,EAAGW,OAAOC,KAAKF,IAezD,GAXIV,EAAGa,QACL3W,GAAO,mBACHiW,IACFH,EAAGvK,OAAQ,EACXvL,GAAO,UAETA,GAAO,sFACHqW,IAAQP,EAAGpH,KAAKkI,YAAcd,EAAGpH,KAAKmI,eACxC7W,GAAO,kBAA2BqW,EAA3B,SAGa,kBAAbP,EAAG/J,SAAyBmK,IAAgBJ,EAAG/J,OAAOgI,EAAO,CACtE,IACI+C,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAHF,gBAIXoL,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAJ3B,gBAKX6M,EAAiBvB,EAAGwB,cAAHxB,gBACjByB,GAAiBzB,EAAGpH,KAAK8I,UAEzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACvB,IAAkB,IAAdhB,EAAG/J,OAAkB,CACnB+J,EAAGa,MACLY,GAAgB,EAEhBvX,GAAO,UAAqB,cAE1B0X,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,6DAAiG8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kBAC9J,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,0CAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,mDAAsD8V,EAAa,WAAI,cAAwB,KAExG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,oFAK/BvL,GAFA8V,EAAGa,MACDV,EACK,iBAEA,yCAGF,UAAqB,YAMhC,OAHIH,EAAGa,QACL3W,GAAO,yBAEFA,EAET,GAAI8V,EAAGa,MAAO,CACZ,IAAIqB,EAAOlC,EAAGa,MACZG,EAAOhB,EAAGiB,MAAQ,EAClBC,EAAWlB,EAAGmB,UAAY,EAC1BnK,EAAQ,OAKV,GAJAgJ,EAAGmC,OAASnC,EAAGrE,QAAQ6B,SAASwC,EAAG/d,KAAKgb,OAAO+C,EAAGnE,KAAK5F,SACvD+J,EAAGvD,OAASuD,EAAGvD,QAAUuD,EAAGmC,cACrBnC,EAAGa,MACVb,EAAGoC,YAAc,MAACjd,QACQA,IAAtB6a,EAAG/J,OAAOwE,SAAyBuF,EAAGpH,KAAKyJ,aAAerC,EAAGpH,KAAK0J,eAAgB,CACpF,IAAIC,EAAc,wCAClB,GAA+B,QAA3BvC,EAAGpH,KAAK0J,eACP,MAAUne,MAAMoe,GADiBvC,EAAGW,OAAOC,KAAK2B,GAGvDrY,GAAO,wBACPA,GAAO,wBACPA,GAAO,qDACF,CACD8W,EAAOhB,EAAGiB,MAEZjK,EAAQ,SADRkK,EAAWlB,EAAGmB,YACgB,IAEhC,GADIZ,IAAKP,EAAGvD,OAASuD,EAAGrE,QAAQ8B,IAAIuC,EAAGvD,OAAQ8D,IAC3CJ,IAAWH,EAAGvK,MAAO,MAAUtR,MAAM,+BACzC+F,GAAO,eAAwB,aAE7ByX,EAAS,QAAUX,EACrBS,GAAiBzB,EAAGpH,KAAK8I,UAD3B,IAEEc,EAAkB,GAClBC,EAAkB,GAEhBC,EAAc1C,EAAG/J,OAAOtO,KAC1Bgb,EAAe5U,MAAMhM,QAAQ2gB,GAa/B,GAZIA,GAAe1C,EAAGpH,KAAKgK,WAAmC,IAAvB5C,EAAG/J,OAAO2M,WAC3CD,GACkC,GAAhCD,EAAY1hB,QAAQ,UAAe0hB,EAAcA,EAAYtjB,OAAO,SAChD,QAAfsjB,IACTA,EAAc,CAACA,EAAa,QAC5BC,GAAe,IAGfA,GAAsC,GAAtBD,EAAY/jB,SAC9B+jB,EAAcA,EAAY,GAC1BC,GAAe,GAEb3C,EAAG/J,OAAOgI,GAAQmC,EAAc,CAClC,GAA0B,QAAtBJ,EAAGpH,KAAKiK,WACV,MAAU1e,MAAM,qDAAuD6b,EAAGwB,cAAgB,8BAC1D,IAAvBxB,EAAGpH,KAAKiK,aACjBzC,GAAe,EACfJ,EAAGW,OAAOC,KAAK,6CAA+CZ,EAAGwB,cAAgB,MAMrF,GAHIxB,EAAG/J,OAAO6M,GAAY9C,EAAGpH,KAAKkK,IAChC5Y,GAAO,IAAO8V,EAAGK,MAAMC,IAAIwC,EAAS7O,KAAK+L,EAAI,aAE3C0C,EAAa,CACf,GAAI1C,EAAGpH,KAAKmK,YACV,IAAIC,EAAiBhD,EAAGxH,KAAKjE,cAAcyL,EAAGpH,KAAKmK,YAAaL,GAElE,IAAIO,EAAcjD,EAAGK,MAAMnM,MAAMwO,GACjC,GAAIM,GAAkBL,IAAgC,IAAhBM,GAAyBA,IAAgBC,EAAgBD,GAAe,CACxG5B,EAAcrB,EAAGsB,WAAa,QAChCC,EAAiBvB,EAAGwB,cAAgB,QAClCH,EAAcrB,EAAGsB,WAAa,QAChCC,EAAiBvB,EAAGwB,cAAgB,QAGtC,GADAtX,GAAO,QAAW8V,EAAGxH,KADTmK,EAAe,iBAAmB,iBACXD,EAAa1L,GAAO,GAAS,OAC5DgM,EAAgB,CAClB,IAAIG,EAAY,WAAanC,EAC3BoC,EAAW,UAAYpC,EACzB9W,GAAO,UAAwB,eAAyB,KAC7B,SAAvB8V,EAAGpH,KAAKmK,cACV7Y,GAAO,UAAwB,mCAA+C,QAAsB,gBAEtGA,GAAO,UAAuB,iBAC9B,IAAImZ,EAAkB,GAClBC,EAAON,EACX,GAAIM,EAGF,IAFA,IAAIC,EAAOC,GAAM,EACfC,EAAKH,EAAK3kB,OAAS,EACd6kB,EAAKC,GACVF,EAAQD,EAAKE,GAAM,GACfA,IACFtZ,GAAO,UAAuB,qBAC9BmZ,GAAmB,KAEM,SAAvBrD,EAAGpH,KAAKmK,aAAmC,SAATQ,IACpCrZ,GAAO,UAAwB,oBAAgC,qBAAkC,QAAkB,QAAkB,UAAwB,eAAyB,SAE3K,UAATqZ,EACFrZ,GAAO,UAAwB,qBAAqC,oBAAmC,aAAyB,gBAA0B,gBAA6B,UACrK,UAATqZ,GAA8B,WAATA,GAC9BrZ,GAAO,UAAwB,sBAAkC,mBAAiC,qBAAiC,SAAmB,UAAoB,IAC7J,WAATqZ,IACFrZ,GAAO,WAAqB,SAE9BA,GAAO,QAAqB,SAAmB,MAC7B,WAATqZ,EACTrZ,GAAO,UAAoB,qBAAiC,eAAyB,gBAA6B,wBAAkC,oBAAgC,aAA0B,YAC5L,QAATqZ,EACTrZ,GAAO,UAAoB,gBAA4B,eAAyB,iBAA8B,YAC9E,SAAvB8V,EAAGpH,KAAKmK,aAAmC,SAATQ,IAC3CrZ,GAAO,UAAwB,qBAAqC,qBAAqC,sBAAkC,eAA4B,SAAmB,QAK5L0X,EAAaA,GAAc,IACpBtd,KAFX4F,GAAO,MAA0B,UAAuB,wBAGxDA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,qDAAyF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,uBAE7KrX,GADEyY,EACK,GAAMD,EAAY5d,KAAK,KAEvB,KAEToF,GAAO,QACkB,IAArB8V,EAAGpH,KAAKkJ,WACV5X,GAAO,0BAELA,GADEyY,EACK,GAAMD,EAAY5d,KAAK,KAEvB,KAEToF,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAEL8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,cACP,IAAIwZ,EAAcxC,EAAW,QAAWA,EAAW,GAAM,IAAM,aAE/DhX,GAAO,MAAgB,QAAqB,KACvCgX,IACHhX,GAAO,SAAyB,mBAElCA,GAAO,MAAsB,KALLgX,EAAWlB,EAAGoC,YAAYlB,GAAY,sBAKH,SAAsB,WAC5E,EACDU,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,qDAAyF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,uBAE7KrX,GADEyY,EACK,GAAMD,EAAY5d,KAAK,KAEvB,KAEToF,GAAO,QACkB,IAArB8V,EAAGpH,KAAKkJ,WACV5X,GAAO,0BAELA,GADEyY,EACK,GAAMD,EAAY5d,KAAK,KAEvB,KAEToF,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAEL8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAGrCvL,GAAO,OAGX,GAAI8V,EAAG/J,OAAOgI,IAASmC,EACrBlW,GAAO,IAAO8V,EAAGK,MAAMC,IAAIrC,EAAKhK,KAAK+L,EAAI,QAAW,IAChDyB,IACFvX,GAAO,qBAELA,GADEgY,EACK,IAEA,UAEThY,GAAO,OACPuY,GAAmB,SAEhB,CACL,IAAIkB,EAAO3D,EAAGK,MACd,GAAIsD,EAGF,IAFA,IAAiBC,GAAM,EACrBC,EAAKF,EAAKhlB,OAAS,EACdilB,EAAKC,GAEV,GAAIX,EADJD,EAAcU,EAAKC,GAAM,IACS,CAIhC,GAHIX,EAAYtb,OACduC,GAAO,QAAW8V,EAAGxH,KAAK3E,cAAcoP,EAAYtb,KAAMqP,GAAU,QAElEgJ,EAAGpH,KAAKyJ,YACV,GAAwB,UAApBY,EAAYtb,MAAoBqY,EAAG/J,OAAOtU,WAAY,CACxD,IAEImiB,EADYhjB,OAAO6S,KADnByN,EAAUpB,EAAG/J,OAAOtU,YAGxB,GAAImiB,EAGF,IAFA,IAAIC,EAAcC,GAAM,EACtBC,EAAKH,EAAKnlB,OAAS,EACdqlB,EAAKC,GAAI,CAGd,QAAqB9e,KADjB+e,EAAO9C,EADX2C,EAAeD,EAAKE,GAAM,KAEjBvJ,QAAuB,CAC9B,IAAI0J,EAAYnN,EAAQgJ,EAAGxH,KAAK9D,YAAYqP,GAC5C,GAAI/D,EAAGiC,eACL,GAAIjC,EAAGpH,KAAK0J,eAAgB,CACtBC,EAAc,2BAA6B4B,EAC/C,GAA+B,QAA3BnE,EAAGpH,KAAK0J,eACP,MAAUne,MAAMoe,GADiBvC,EAAGW,OAAOC,KAAK2B,SAIvDrY,GAAO,UAAwB,kBACJ,SAAvB8V,EAAGpH,KAAKyJ,cACVnY,GAAO,SAAuB,kBAAgC,YAEhEA,GAAO,QAAsB,MAE3BA,GADyB,UAAvB8V,EAAGpH,KAAKyJ,YACH,IAAOrC,EAAGoE,WAAWF,EAAKzJ,SAAY,IAEtC,IAAOoF,KAAKH,UAAUwE,EAAKzJ,SAAY,IAEhDvQ,GAAO,YAKV,GAAwB,SAApB+Y,EAAYtb,MAAmBoG,MAAMhM,QAAQie,EAAG/J,OAAO6D,OAAQ,CACxE,IAAIuK,EAAOrE,EAAG/J,OAAO6D,MACrB,GAAIuK,EACF,CAAUb,GAAM,EAEhB,IAFA,IAAIU,EACFI,EAAKD,EAAK1lB,OAAS,EACd6kB,EAAKc,GAEV,QAAqBnf,KADrB+e,EAAOG,EAAKb,GAAM,IACT/I,QAAuB,CAC1B0J,EAAYnN,EAAQ,IAAMwM,EAAK,IACnC,GAAIxD,EAAGiC,eACL,GAAIjC,EAAGpH,KAAK0J,eAAgB,CACtBC,EAAc,2BAA6B4B,EAC/C,GAA+B,QAA3BnE,EAAGpH,KAAK0J,eACP,MAAUne,MAAMoe,GADiBvC,EAAGW,OAAOC,KAAK2B,SAIvDrY,GAAO,UAAwB,kBACJ,SAAvB8V,EAAGpH,KAAKyJ,cACVnY,GAAO,SAAuB,kBAAgC,YAEhEA,GAAO,QAAsB,MAE3BA,GADyB,UAAvB8V,EAAGpH,KAAKyJ,YACH,IAAOrC,EAAGoE,WAAWF,EAAKzJ,SAAY,IAEtC,IAAOoF,KAAKH,UAAUwE,EAAKzJ,SAAY,IAEhDvQ,GAAO,OAOnB,IAAIqa,EAAOtB,EAAY/M,MACvB,GAAIqO,EAGF,IAFA,IAAIC,EAAOC,GAAM,EACfC,EAAKH,EAAK5lB,OAAS,EACd8lB,EAAKC,GAEV,GAAIC,EADJH,EAAQD,EAAKE,GAAM,IACQ,CACzB,IAAIG,EAAQJ,EAAMvQ,KAAK+L,EAAIwE,EAAMK,QAAS5B,EAAYtb,MAClDid,IACF1a,GAAO,MAAgB,IACnBuX,IACFe,GAAmB,MAU7B,GAJIf,IACFvX,GAAO,MAA0B,IACjCsY,EAAkB,IAEhBS,EAAYtb,OACduC,GAAO,MACHwY,GAAeA,IAAgBO,EAAYtb,OAASqb,GAAgB,CAEtE,IAEIpB,EAFAP,EAAcrB,EAAGsB,WAAa,QAChCC,EAAiBvB,EAAGwB,cAAgB,SAClCI,EAAaA,GAAc,IACpBtd,KAJX4F,GAAO,YAKPA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,qDAAyF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,uBAE7KrX,GADEyY,EACK,GAAMD,EAAY5d,KAAK,KAEvB,KAEToF,GAAO,QACkB,IAArB8V,EAAGpH,KAAKkJ,WACV5X,GAAO,0BAELA,GADEyY,EACK,GAAMD,EAAY5d,KAAK,KAEvB,KAEToF,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAEL8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,MAGPuX,IACFvX,GAAO,mBAELA,GADEgY,EACK,IAEA,UAEThY,GAAO,OACPuY,GAAmB,MA0B7B,SAASS,EAAgBD,GAEvB,IADA,IAAI/M,EAAQ+M,EAAY/M,MACf1M,EAAI,EAAGA,EAAI0M,EAAMvX,OAAQ6K,IAChC,GAAImb,EAAezO,EAAM1M,IAAK,OAAO,EAGzC,SAASmb,EAAeH,GACtB,YAAoCrf,IAA7B6a,EAAG/J,OAAOuO,EAAMK,UAA2BL,EAAMM,YAG1D,SAAoCN,GAElC,IADA,IAAIO,EAAOP,EAAMM,WACRtb,EAAI,EAAGA,EAAIub,EAAKpmB,OAAQ6K,IAC/B,QAA2BrE,IAAvB6a,EAAG/J,OAAO8O,EAAKvb,IAAmB,OAAO,EANuBwb,CAA2BR,GAQnG,OAnCI/C,IACFvX,GAAO,MAA0B,KAE/BgY,GACE/B,GACFjW,GAAO,6CACPA,GAAO,+CAEPA,GAAO,+BACPA,GAAO,gCAETA,GAAO,wBAEPA,GAAO,UAAqB,wBAAiC,IAE/DA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,GACtBgY,IACFhY,EAAM8V,EAAGxH,KAAKhD,iBAAiBtL,EAAKiW,IAkB/BjW,GC/dL2K,GAAa2D,EAAK3D,WAIlBoQ,GAAkBC,GAAavG,cAcnC,SAAS/C,EAAQ3F,EAAQ4F,EAAMiC,EAAWrB,GAGxC,IAAIxa,EAAOwW,KACPG,EAAOH,KAAK2D,MACZL,EAAS,MAAE5W,GACXggB,EAAO,GACPC,EAAW,GACXC,EAAe,GACfC,EAAW,GACXC,EAAe,GACfC,EAAc,GAIdta,EAAIua,GAAe1kB,KAAK0X,KAAMxC,EAFlC4F,EAAOA,GAAQ,CAAE5F,OAAQA,EAAQ8F,OAAQA,EAAQoJ,KAAMA,GAEP1I,GAC5CiJ,EAAcjN,KAAKkN,cAAcza,EAAE5M,OACvC,GAAI4M,EAAE0a,UAAW,OAAQF,EAAYG,aAwBrC,SAASA,IAEP,IAAIvJ,EAAWoJ,EAAYpJ,SACvBrU,EAASqU,EAASwJ,MAAMrN,KAAMsN,WAElC,OADAF,EAAaxe,OAASiV,EAASjV,OACxBY,GA3BT,IAAI+d,EAAUvN,KAAKwN,SACf5F,EAAQ5H,KAAK4H,MAEjB,IACE,IAAI7D,EAAI0J,EAAajQ,EAAQ4F,EAAMiC,EAAWrB,GAC9CiJ,EAAYpJ,SAAWE,EACvB,IAAI2J,EAAKT,EAAYG,aAUrB,OATIM,IACFA,EAAGlQ,OAASuG,EAAEvG,OACdkQ,EAAG9e,OAAS,KACZ8e,EAAGhB,KAAO3I,EAAE2I,KACZgB,EAAGpK,OAASS,EAAET,OACdoK,EAAGtK,KAAOW,EAAEX,KACZsK,EAAGhG,EAAS3D,EAAE2D,EACVvH,EAAKkI,aAAYqF,EAAGljB,OAASuZ,EAAEvZ,SAE9BuZ,UAEP4J,GAAarlB,KAAK0X,KAAMxC,EAAQ4F,EAAMY,GAYxC,SAASyJ,EAAaG,EAASC,EAAOxI,EAAWrB,GAC/C,IAAI8J,GAAUD,GAAUA,GAASA,EAAMrQ,QAAUoQ,EACjD,GAAIC,EAAMrQ,QAAU4F,EAAK5F,OACvB,OAAO2F,EAAQ7a,KAAKkB,EAAMokB,EAASC,EAAOxI,EAAWrB,GAEvD,IAgCIH,EAhCA6D,GAA4B,IAAnBkG,EAAQlG,EAEjBW,EAAa0F,GAAkB,CACjC3F,OAAO,EACP5K,OAAQoQ,EACRE,OAAQA,EACR9J,OAAQA,EACRZ,KAAMyK,EACNhF,WAAY,GACZE,cAAe,IACfiF,UAAW,KACXxH,gBAAiBiG,GAAalG,WAC9BqB,MAAOA,EACP/D,SAAUkK,GACVhO,KAAMA,EACNmD,QAASA,GACT+K,WAAYA,EACZC,WAAYA,EACZvC,WAAYA,EACZwC,cAAeA,EACfhO,KAAMA,EACNoN,QAASA,EACTrF,OAAQ1e,EAAK0e,OACb1e,KAAMA,IAGR6e,EAAa+F,GAAK9K,EAAQ+K,IAAcD,GAAKzB,EAAU2B,IACtCF,GAAKvB,EAAU0B,IAAeH,GAAKrB,EAAayB,IAChDnG,EAEblI,EAAKmI,cAAaD,EAAalI,EAAKmI,YAAYD,IAGpD,IAeExE,EAduB4K,SACrB,OACA,QACA,UACA,OACA,SACA,WACA,cACA,QACA,aACA,kBACApG,EAGSqG,CACTllB,EACAoe,EACA2F,EACAnK,EACAE,EACAuJ,EACAE,EACA9R,EACAmB,GACAoQ,IAGFlJ,EAAO,GAAKO,EACZ,MAAM9M,GAEN,MADAvN,EAAK0e,OAAOte,MAAM,yCAA0Cye,GACtDtR,EAiBR,OAdA8M,EAASrG,OAASoQ,EAClB/J,EAASjV,OAAS,KAClBiV,EAAS6I,KAAOA,EAChB7I,EAASP,OAASA,EAClBO,EAAST,KAAO0K,EAASjK,EAAWgK,EAChCnG,IAAQ7D,EAAS6D,GAAS,IACN,IAApBvH,EAAKkI,aACPxE,EAASrZ,OAAS,CAChBgR,KAAM6M,EACNsE,SAAUA,EACVE,SAAUA,IAIPhJ,EAGT,SAASoK,EAAWjK,EAAQX,EAAKyK,GAC/BzK,EAAMH,GAAQ8B,IAAIhB,EAAQX,GAC1B,IACIsL,EAASC,EADTC,EAAWnC,EAAKrJ,GAEpB,QAAiB3W,IAAbmiB,EAGF,OAAOC,EAFPH,EAAUrL,EAAOuL,GACjBD,EAAU,UAAYC,EAAW,KAGnC,IAAKf,GAAU1K,EAAKsJ,KAAM,CACxB,IAAIqC,EAAY3L,EAAKsJ,KAAKrJ,GAC1B,QAAkB3W,IAAdqiB,EAGF,OAAOD,EAFPH,EAAUvL,EAAKE,OAAOyL,GACtBH,EAAUI,EAAY3L,EAAKsL,IAK/BC,EAAUI,EAAY3L,GACtB,IAAIU,EAAIb,GAAQ5a,KAAKkB,EAAMikB,EAAcrK,EAAMC,GAC/C,QAAU3W,IAANqX,EAAiB,CACnB,IAAIkL,EAAc5J,GAAaA,EAAUhC,GACrC4L,IACFlL,EAAIb,GAAQQ,UAAUuL,EAAa9O,EAAKyD,YAClCqL,EACA9L,EAAQ7a,KAAKkB,EAAMylB,EAAa7L,EAAMiC,EAAWrB,IAI3D,QAAUtX,IAANqX,EAIF,OAeJ,SAAyBV,EAAKU,GAE5BT,EADYoJ,EAAKrJ,IACDU,EAlBdmL,CAAgB7L,EAAKU,GACd+K,EAAY/K,EAAG6K,IAW1B,SAAwBvL,UACfqJ,EAAKrJ,GAfV8L,CAAe9L,GAOnB,SAAS2L,EAAY3L,EAAKU,GACxB,IAAIqL,EAAQ9L,EAAOpd,OAGnB,OAFAod,EAAO8L,GAASrL,EAChB2I,EAAKrJ,GAAO+L,EACL,SAAWA,EAYpB,SAASN,EAAYxL,EAAQ9H,GAC3B,MAAwB,iBAAV8H,GAAuC,kBAAVA,EACjC,CAAE9H,KAAMA,EAAMgC,OAAQ8F,EAAQ+L,QAAQ,GACtC,CAAE7T,KAAMA,EAAM7D,EAAQ2L,KAAYA,EAAOoE,GAGrD,SAASwG,EAAWoB,GAClB,IAAIzpB,EAAQ+mB,EAAa0C,GAKzB,YAJc5iB,IAAV7G,IACFA,EAAQ+mB,EAAa0C,GAAY3C,EAASzmB,OAC1CymB,EAAS9mB,GAASypB,GAEb,UAAYzpB,EAGrB,SAAS8lB,EAAWtiB,GAClB,cAAeA,GACb,IAAK,UACL,IAAK,SACH,MAAO,GAAKA,EACd,IAAK,SACH,OAAO0W,EAAKlC,eAAexU,GAC7B,IAAK,SACH,GAAc,OAAVA,EAAgB,MAAO,OAC3B,IAAIkmB,EAAWC,GAAgBnmB,GAC3BxD,EAAQinB,EAAayC,GAKzB,YAJc7iB,IAAV7G,IACFA,EAAQinB,EAAayC,GAAY1C,EAAS3mB,OAC1C2mB,EAAShnB,GAASwD,GAEb,UAAYxD,GAIzB,SAASsoB,EAAcsB,EAAMjS,EAAQoD,EAAc2G,GACjD,IAAkC,IAA9B/d,EAAKma,MAAM+L,eAA0B,CACvC,IAAIC,EAAOF,EAAKG,WAAW7N,aAC3B,GAAI4N,IAASA,EAAKE,OAAM,SAASzD,GAC/B,OAAO/jB,OAAOF,UAAUT,eAAeY,KAAKsY,EAAcwL,MAE1D,MAAU1gB,MAAM,kDAAoDikB,EAAKtjB,KAAK,MAEhF,IAAIqjB,EAAiBD,EAAKG,WAAWF,eACrC,GAAIA,EAEF,IADYA,EAAelS,GACf,CACV,IAAI4I,EAAU,8BAAgC5c,EAAKsmB,WAAWJ,EAAe9gB,QAC7E,GAAiC,OAA7BpF,EAAKma,MAAM+L,eACV,MAAUhkB,MAAM0a,GADmB5c,EAAK0e,OAAOte,MAAMwc,IAMhE,IAIIvC,EAJAV,EAAUsM,EAAKG,WAAWzM,QAC1BkM,EAASI,EAAKG,WAAWP,OACzBU,EAAQN,EAAKG,WAAWG,MAG5B,GAAI5M,EACFU,EAAWV,EAAQ7a,KAAKkB,EAAMgU,EAAQoD,EAAc2G,QAC/C,GAAIwI,EACTlM,EAAWkM,EAAMznB,KAAKkB,EAAMgU,EAAQoD,EAAc2G,IACtB,IAAxBpH,EAAKuP,gBAA0BlmB,EAAKkmB,eAAe7L,GAAU,QAC5D,GAAIwL,EACTxL,EAAWwL,EAAO/mB,KAAKkB,EAAM+d,EAAIkI,EAAKrD,QAAS5O,EAAQoD,QAGvD,KADAiD,EAAW4L,EAAKG,WAAW/L,UACZ,OAGjB,QAAiBnX,IAAbmX,EACF,MAAUnY,MAAM,mBAAqB+jB,EAAKrD,QAAU,sBAEtD,IAAIvmB,EAAQknB,EAAY7mB,OAGxB,OAFA6mB,EAAYlnB,GAASge,EAEd,CACLrI,KAAM,aAAe3V,EACrBge,SAAUA,KAchB,SAASmJ,GAAexP,EAAQ4F,EAAMY,GAEpC,IAAIne,EAAQmqB,GAAU1nB,KAAK0X,KAAMxC,EAAQ4F,EAAMY,GAC/C,OAAIne,GAAS,EAAU,CAAEA,MAAOA,EAAOsnB,WAAW,IAElDnN,KAAKkN,cADLrnB,EAAQma,KAAKkN,cAAchnB,QACC,CAC1BsX,OAAQA,EACR4F,KAAMA,EACNY,OAAQA,GAEH,CAAEne,MAAOA,EAAOsnB,WAAW,IAWpC,SAASQ,GAAanQ,EAAQ4F,EAAMY,GAElC,IAAIjT,EAAIif,GAAU1nB,KAAK0X,KAAMxC,EAAQ4F,EAAMY,GACvCjT,GAAK,GAAGiP,KAAKkN,cAAcxb,OAAOX,EAAG,GAY3C,SAASif,GAAUxS,EAAQ4F,EAAMY,GAE/B,IAAK,IAAIjT,EAAE,EAAGA,EAAEiP,KAAKkN,cAAchnB,OAAQ6K,IAAK,CAC9C,IAAI0B,EAAIuN,KAAKkN,cAAcnc,GAC3B,GAAI0B,EAAE+K,QAAUA,GAAU/K,EAAE2Q,MAAQA,GAAQ3Q,EAAEuR,QAAUA,EAAQ,OAAOjT,EAEzE,OAAQ,EAIV,SAASud,GAAYvd,EAAG4b,GACtB,MAAO,cAAgB5b,EAAI,iBAAmBgP,EAAKlC,eAAe8O,EAAS5b,IAAM,KAInF,SAASwd,GAAYxd,GACnB,MAAO,cAAgBA,EAAI,eAAiBA,EAAI,KAIlD,SAASsd,GAAWtd,EAAGuS,GACrB,YAAqB5W,IAAd4W,EAAOvS,GAAmB,GAAK,aAAeA,EAAI,aAAeA,EAAI,KAI9E,SAASyd,GAAezd,GACtB,MAAO,iBAAmBA,EAAI,kBAAoBA,EAAI,KAIxD,SAASqd,GAAKzO,EAAKsQ,GACjB,IAAKtQ,EAAIzZ,OAAQ,MAAO,GAExB,IADA,IAAIsV,EAAO,GACFzK,EAAE,EAAGA,EAAE4O,EAAIzZ,OAAQ6K,IAC1ByK,GAAQyU,EAAUlf,EAAG4O,GACvB,OAAOnE,wBC9XT,IAAI0U,EAAQhQ,UAAiB,WAC3BF,KAAKmQ,OAAS,IAIhBD,EAAM/nB,UAAUioB,IAAM,SAAmBxnB,EAAKS,GAC5C2W,KAAKmQ,OAAOvnB,GAAOS,GAIrB6mB,EAAM/nB,UAAU+B,IAAM,SAAmBtB,GACvC,OAAOoX,KAAKmQ,OAAOvnB,IAIrBsnB,EAAM/nB,UAAUkoB,IAAM,SAAmBznB,UAChCoX,KAAKmQ,OAAOvnB,IAIrBsnB,EAAM/nB,UAAUmoB,MAAQ,WACtBtQ,KAAKmQ,OAAS,OCpBZI,GAAO,6BACPC,GAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAC3CC,GAAO,0DACPC,GAAW,wGACXtM,GAAM,+nCAGNuM,GAAc,oLAKdC,GAAM,4rDACNzW,GAAO,+DACPyE,GAAe,4BACfiS,GAA4B,+DAC5BhS,GAAwB,sDAGX0O,GAEjB,SAASA,GAAQuD,GAEf,OAAO/Q,EAAKlW,KAAK0jB,GADjBuD,EAAe,QAARA,EAAiB,OAAS,SA+DnC,SAASC,GAAKxkB,GAEZ,IAAIgI,EAAUhI,EAAIrF,MAAMqpB,IACxB,IAAKhc,EAAS,OAAO,EAErB,IACIyc,GAASzc,EAAQ,GACjB0c,GAAO1c,EAAQ,GAEnB,OAAOyc,GAAS,GAAKA,GAAS,IAAMC,GAAO,GACnCA,IAAiB,GAATD,GAhBlB,SAAoBE,GAElB,OAAOA,EAAO,GAAM,IAAMA,EAAO,KAAQ,GAAKA,EAAO,KAAQ,GAc/BC,EALlB5c,EAAQ,IAK6B,GAAKic,GAAKQ,IAI7D,SAASI,GAAK7kB,EAAK8kB,GACjB,IAAI9c,EAAUhI,EAAIrF,MAAMupB,IACxB,IAAKlc,EAAS,OAAO,EAErB,IAAI+c,EAAO/c,EAAQ,GACfgd,EAAShd,EAAQ,GACjBid,EAASjd,EAAQ,GAErB,OAAS+c,GAAQ,IAAMC,GAAU,IAAMC,GAAU,IAChC,IAARF,GAAwB,IAAVC,GAA0B,IAAVC,MAC9BH,GAHM9c,EAAQ,IA/EzBgZ,GAAQkE,KAAO,CAEbV,KAAM,6BAENK,KAAM,8EACNM,YAAa,0GAEb7W,IAAK,4CACL8W,gBAAiB,yEACjBC,eAAgBjB,GAChB3L,IAAK4L,GAILiB,MAAO,mHACPC,SAAUpB,GAEVqB,KAAM,4EAENC,KAAM,qpCACNC,MAAOA,GAEP5X,KAAMF,GAGN+X,eAAgBtT,GAChBuT,4BAA6BtB,GAE7BuB,wBAAyBvT,IAI3B0O,GAAQ8D,KAAO,CACbN,KAAMA,GACNK,KAAMA,GACNM,YAoDF,SAAmBnlB,GAEjB,IAAI8lB,EAAW9lB,EAAIK,MAAM0lB,IACzB,OAA0B,GAAnBD,EAASnsB,QAAe6qB,GAAKsB,EAAS,KAAOjB,GAAKiB,EAAS,IAAI,IAtDtExX,IA2DF,SAAatO,GAEX,OAAOgmB,GAAiBlgB,KAAK9F,IAAQ6X,GAAI/R,KAAK9F,IA5D9ColB,gBA3DW,yoCA4DXC,eAAgBjB,GAChB3L,IAAK4L,GACLiB,MAAO,2IACPC,SAAUpB,GACVqB,KAAM,4EACNC,KAAM,qpCACNC,MAAOA,GACP5X,KAAMF,GACN+X,eAAgBtT,GAChBuT,4BAA6BtB,GAC7BuB,wBAAyBvT,IAsC3B,IAAIyT,GAAsB,QAQ1B,IAAIC,GAAmB,OAOvB,IAAIC,GAAW,WACf,SAASP,GAAM1lB,GACb,GAAIimB,GAASngB,KAAK9F,GAAM,OAAO,EAC/B,IAEE,OADIhC,OAAOgC,IACJ,EACP,MAAMwK,GACN,OAAO,GC1IX,OCAiB,SAAyBwQ,EAAIC,EAAUC,GACtD,IAUEgL,EAVEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UAEzB1K,EAAQ,QAAUkK,GAAY,IAC9BiK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAEjB,IAAIgK,EAAqB,WAAZnL,EACXoL,EAAoBD,EAAS,mBAAqB,mBAClDE,EAActL,EAAG/J,OAAOoV,GACxBE,EAAcvL,EAAGpH,KAAK5B,GAASsU,GAAeA,EAAYtU,EAC1DwU,EAAMJ,EAAS,IAAM,IACrBK,EAASL,EAAS,IAAM,IACxBM,OAAgBvmB,EAClB,GAAIomB,EAAa,CACf,IAAII,EAAmB3L,EAAGxH,KAAKzB,QAAQuU,EAAYtU,EAAOkK,EAAUlB,EAAGoC,aACrEwJ,EAAa,YAAc5K,EAC3B6K,EAAY,WAAa7K,EACzB8K,EAAgB,eAAiB9K,EAEjC+K,EAAS,QADTC,EAAU,KAAOhL,GACY,OAC/B9W,GAAO,oBAA6B,QAA6B,KAGjE,IACI0X,EADA8J,EAAgBL,GAChBzJ,EAAaA,GAAc,IACpBtd,KAHX4F,GAAO,UAAyB,WAAyB,cADzDyhB,EAAmB,aAAe3K,GAC2D,WAAyB,sBAAsC,wBAAwC,oBAIpM9W,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,mBAAqB,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kBACjK,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,kBAAyC,wBAE9C8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,gBACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAEhFA,GAAO,MAAoB,uBAAwC,QAAyB,uBAA4C,MAAc,OAAwB,SAAmB,MAAiB,OAA4B,QAAkB,MAAiB,MAAuB,aAA4B,QAA6B,kBAA4B,MAAiB,OAAwB,QAAkB,MAAiB,MAAuB,WAAqB,UAAoB,eAAwB,QAAuB,SAAkB,UAAoB,YAC9kB/E,IAAZic,IACFsK,EAAgBL,EAChB9J,EAAiBvB,EAAGwB,cAAgB,IAAM6J,EAC1CH,EAAeS,EACfR,EAAUI,OAEP,CAEHQ,EAASP,EACX,IAFIM,EAAsC,iBAAfR,IAENH,EAAS,CAC5B,IAAIa,EAAU,IAAOD,EAAS,IAC9B7hB,GAAO,SACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAEhFA,GAAO,QAAyB,uBAAuC,MAAc,OAAwB,QAAkB,MAAiB,OAAuB,QAAkB,MAAiB,MAAuB,WAAqB,UAAoB,WACrQ,CACD4hB,QAA6B3mB,IAAZic,GACnBwK,GAAa,EACbF,EAAgBL,EAChB9J,EAAiBvB,EAAGwB,cAAgB,IAAM6J,EAC1CH,EAAeI,EACfG,GAAU,MAENK,IAAeZ,EAAe3jB,KAAK6jB,EAAS,MAAQ,OAAOE,EAAalK,IACxEkK,MAAiBQ,GAAgBZ,IACnCU,GAAa,EACbF,EAAgBL,EAChB9J,EAAiBvB,EAAGwB,cAAgB,IAAM6J,EAC1CI,GAAU,MAEVG,GAAa,EACbG,GAAU,MAGVC,EAAU,IAAOD,EAAS,IAC9B7hB,GAAO,SACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAEhFA,GAAO,MAAgB,MAAiB,MAAuB,SAAmB,UAAoB,QAG1GwhB,EAAgBA,GAAiBzL,GAC7B2B,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,UAAY,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,8BAA0C,cAA+B,kBAAiC,OAClQ,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,4BAAwC,IAE7CA,GADEihB,EACK,WAEsB,KAG7BnL,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,KAETjhB,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAEL8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,MACHuX,IACFvX,GAAO,YAEFA,MC1JQ,SAA8B8V,EAAIC,EAAUC,GAC3D,IAUEgL,EAVEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UAEzB1K,EAAQ,QAAUkK,GAAY,IAC9BiK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAGjBlX,GAAO,QACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAGhF,IAAIwhB,EAAgBzL,EAChB2B,EAAaA,GAAc,GAC/BA,EAAWtd,KAHX4F,GAAO,MAAgB,YALD,YAAZ+V,EAAyB,IAAM,KAKG,MAAuB,QAInE/V,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,eAAiB,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,yBAA0C,OACvM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gCAELA,GADc,YAAZ+V,EACK,OAEA,QAET/V,GAAO,SAELA,GADEihB,EACK,SAA2B,OAE3B,KAETjhB,GAAO,YAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,KAETjhB,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,MC1EQ,SAA+B8V,EAAIC,EAAUC,GAC5D,IAUEgL,EAVEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UAEzB1K,EAAQ,QAAUkK,GAAY,IAC9BiK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAGjBlX,GAAO,QACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAG9EA,IADsB,IAApB8V,EAAGpH,KAAKxV,QACH,MAAgB,WAEhB,iBAA2B,KAGpC,IAAIsoB,EAAgBzL,EAChB2B,EAAaA,GAAc,GAC/BA,EAAWtd,KAHX4F,GAAO,KAVe,aAAZ+V,EAA0B,IAAM,KAUrB,MAAuB,QAI5C/V,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,gBAAkB,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,yBAA0C,OACxM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,8BAELA,GADc,aAAZ+V,EACK,SAEA,UAET/V,GAAO,SAELA,GADEihB,EACK,SAA2B,OAE3B,KAETjhB,GAAO,iBAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,KAETjhB,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,MC/EQ,SAAmC8V,EAAIC,EAAUC,GAChE,IAUEgL,EAVEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UAEzB1K,EAAQ,QAAUkK,GAAY,IAC9BiK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAGjBlX,GAAO,QACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAGhF,IAAIwhB,EAAgBzL,EAChB2B,EAAaA,GAAc,GAC/BA,EAAWtd,KAHX4F,GAAO,kBAA4B,aALb,iBAAZ+V,EAA8B,IAAM,KAKW,MAAuB,QAIhF/V,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,oBAAsB,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,yBAA0C,OAC5M,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gCAELA,GADc,iBAAZ+V,EACK,OAEA,QAET/V,GAAO,SAELA,GADEihB,EACK,SAA2B,OAE3B,KAETjhB,GAAO,iBAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,KAETjhB,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,MCxEQ,CACfhF,ELHe,SAAsB8a,EAAIC,EAAUC,GACnD,IAQIC,EAAQ8L,EARR/hB,EAAM,IAENgX,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QANF3B,EAAGiB,MAQd,GAAe,KAAXG,GAA6B,MAAXA,EAChBpB,EAAGuG,QACLpG,EAASH,EAAGvK,MACZwW,EAAW,aAEX9L,GAAmC,IAA1BH,EAAGnE,KAAK5F,OAAOkK,EACxB8L,EAAW,sBAER,CACL,IAAIC,EAAUlM,EAAG0G,WAAW1G,EAAGvD,OAAQ2E,EAASpB,EAAGuG,QACnD,QAAgBphB,IAAZ+mB,EAAuB,CACzB,IAAIC,EAAWnM,EAAGf,gBAAgBJ,QAAQmB,EAAGvD,OAAQ2E,GACrD,GAA2B,QAAvBpB,EAAGpH,KAAKwT,YAAuB,CACjCpM,EAAGW,OAAOte,MAAM8pB,IACZvK,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,qDAAwE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,sBAA0BvB,EAAGxH,KAAK7D,aAAayM,GAAY,QAChM,IAArBpB,EAAGpH,KAAKkJ,WACV5X,GAAO,0CAA+C8V,EAAGxH,KAAK7D,aAAayM,GAAY,MAErFpB,EAAGpH,KAAKmJ,UACV7X,GAAO,cAAiB8V,EAAGxH,KAAKlC,eAAe8K,GAAY,mCAAsCpB,EAAa,WAAI,cAAwB,KAE5I9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAE/BgM,IACFvX,GAAO,sBAEJ,CAAA,GAA2B,UAAvB8V,EAAGpH,KAAKwT,YAMjB,MAAM,IAAIpM,EAAGf,gBAAgBe,EAAGvD,OAAQ2E,EAAS+K,GALjDnM,EAAGW,OAAOC,KAAKuL,GACX1K,IACFvX,GAAO,uBAKN,GAAIgiB,EAAQpE,OAAQ,CACzB,IAAIuE,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACvBqM,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC/BoL,EAAIpW,OAASiW,EAAQjW,OACrBoW,EAAI/K,WAAa,GACjB+K,EAAI7K,cAAgBJ,EAEpBlX,GAAO,IADK8V,EAAG1D,SAAS+P,GAAKhkB,QAAQ,oBAAqB6jB,EAAQjY,MAC3C,IACnBwN,IACFvX,GAAO,UAAyB,aAGlCiW,GAA4B,IAAnB+L,EAAQ/L,GAAoBH,EAAGvK,QAA4B,IAAnByW,EAAQ/L,EACzD8L,EAAWC,EAAQjY,KAGvB,GAAIgY,EAAU,CACZ,IAAIrK,GAAAA,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,GAEJA,GADE8V,EAAGpH,KAAK2T,YACH,MAAmB,eAEnB,MAAmB,KAE5BriB,GAAO,MAAgB,qBACH,MAAhB8V,EAAGyG,YACLvc,GAAO,MAAS8V,EAAY,WAK9B,IAAIwM,EADJtiB,GAAO,OAFWgX,EAAW,QAAWA,EAAW,GAAM,IAAM,cAEhC,OADPA,EAAWlB,EAAGoC,YAAYlB,GAAY,sBACC,gBAG/D,GADAhX,EAAM0X,EAAWtc,MACb6a,EAAQ,CACV,IAAKH,EAAGvK,MAAO,MAAUtR,MAAM,0CAC3Bsd,IACFvX,GAAO,UAAqB,MAE9BA,GAAO,kBAAqC,KACxCuX,IACFvX,GAAO,MAAiB,aAE1BA,GAAO,4KACHuX,IACFvX,GAAO,MAAiB,cAE1BA,GAAO,MACHuX,IACFvX,GAAO,UAAqB,aAG9BA,GAAO,WAA8B,yCAAsD,4CAAyD,wCAChJuX,IACFvX,GAAO,YAIb,OAAOA,GKrHPiQ,MCJe,SAAwB6F,EAAIC,EAAUC,GACrD,IAAIhW,EAAM,IACNkX,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB2K,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3ByL,EAAiBL,EAAI5P,OACvBkQ,GAAmB,EACjBrJ,EAAOlC,EACX,GAAIkC,EAGF,IAFA,IAAIY,EAAMV,GAAM,EACdC,EAAKH,EAAK3kB,OAAS,EACd6kB,EAAKC,GACVS,EAAOZ,EAAKE,GAAM,IACbxD,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,QAC5HqM,GAAmB,EACnBN,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAaD,EAAc,IAAMmC,EAAK,IAC1C6I,EAAI7K,cAAgBD,EAAiB,IAAMiC,EAC3CtZ,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,EACTjL,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,MAa1B,OARIhL,IAEAvX,GADEyiB,EACK,gBAEA,IAAOF,EAAexoB,MAAM,GAAI,GAAM,KAGjDiG,EAAM8V,EAAGxH,KAAKpD,YAAYlL,IDlC1BkQ,MELe,SAAwB4F,EAAIC,EAAUC,GACrD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnB4L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAI/B,GAHqBG,EAAQkH,OAAM,SAASpE,GAC1C,OAAQlE,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,QAE/G,CAClB,IAAIoM,EAAiBL,EAAI5P,OACzBvS,GAAO,UAAoB,oBAA+B,cAC1D,IAAI2iB,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvC,IAAIqB,EAAOlC,EACX,GAAIkC,EAGF,IAFA,IAAIY,EAAMV,GAAM,EACdC,EAAKH,EAAK3kB,OAAS,EACd6kB,EAAKC,GACVS,EAAOZ,EAAKE,GAAM,GAClB6I,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAaD,EAAc,IAAMmC,EAAK,IAC1C6I,EAAI7K,cAAgBD,EAAiB,IAAMiC,EAC3CtZ,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,EACbxiB,GAAO,MAAiB,QAAmB,SAAwB,YAAuB,OAC1FuiB,GAAkB,IAGtBzM,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EACvC3iB,GAAO,MAAyB,WAAsB,sBAC9B,IAApB8V,EAAG6B,cACL3X,GAAO,sDAAyE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kBACtI,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,oDAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF8V,EAAGiC,eAAiBR,IAGrBvX,GADE8V,EAAGvK,MACE,wCAEA,8CAGXvL,GAAO,yBAAmC,mCAA6C,wBAAkC,4BACrH8V,EAAGpH,KAAK8I,YACVxX,GAAO,OAETA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,QAEtBuX,IACFvX,GAAO,iBAGX,OAAOA,GFjEP4iB,EGNe,SAA0B9M,EAAIC,EAAUC,GACvD,IAAIhW,EAAM,IAENqX,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAE1C6C,EAAW9C,EAAGxH,KAAKlC,eAHT0J,EAAG/J,OAAOgK,IASxB,OALyB,IAArBD,EAAGpH,KAAKkK,EACV5Y,GAAO,kBAA+B,KACF,mBAApB8V,EAAGpH,KAAKkK,IACxB5Y,GAAO,0BAAuC,KAAQ8V,EAAGxH,KAAKlC,eAAeiL,GAAmB,4BAE3FrX,GHJPyQ,MIPe,SAAwBqF,EAAIC,EAAUC,GACrD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnBmK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,IACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,MAKlG+I,IACHjhB,GAAO,gBAAyB,uBAAuC,KAGzE,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,SAAoB,cAAwB,aAAsB,aAAwB,UAGjGA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,sDAAyE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,sCAA+C,OACrL,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,8CAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,GJ7CP6P,SKRe,SAA2BiG,EAAIC,EAAUC,GACxD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnB4L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GAEvBqM,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3B8L,EAAO,IAAM/L,EACfgM,EAAWX,EAAIlL,UAAYnB,EAAGmB,UAAY,EAC1C8L,EAAY,OAASD,EACrBN,EAAiB1M,EAAGvD,OACpByQ,EAAmBlN,EAAGpH,KAAK4H,eAAmC,iBAAXY,GAAuBtgB,OAAO6S,KAAKyN,GAASziB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAeoL,EAASpB,EAAGK,MAAMC,KAEvJ,GADApW,GAAO,SAAmB,mBAA8B,IACpDgjB,EAAiB,CACnB,IAAIL,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvCoK,EAAIpW,OAASmL,EACbiL,EAAI/K,WAAaD,EACjBgL,EAAI7K,cAAgBD,EACpBrX,GAAO,UAAyB,wBAAiC,WAAoB,QAAkB,cAAuB,SAC9HmiB,EAAI5F,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAWsG,EAAM/M,EAAGpH,KAAKnC,cAAc,GAC9E,IAAI0N,EAAYnN,EAAQ,IAAM+V,EAAO,IACrCV,EAAIjK,YAAY4K,GAAYD,EAC5B,IAAInI,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAExEA,GAAO,UAAyB,eAChC8V,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EACvC3iB,GAAO,YAAmD,WAE1DA,GAAO,UAAoB,kBAE7B,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kBACzI,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,8CAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAoBZ,OAnBAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,aACHgjB,IACFhjB,GAAO,gBAA0B,mCAA6C,wBAAkC,6BAE9G8V,EAAGpH,KAAK8I,YACVxX,GAAO,OAETA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,ILrE1BsQ,aMTe,SAA+BwF,EAAIC,EAAUC,GAC5D,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9B0L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3BkM,EAAc,GAChBC,EAAgB,GAChBC,EAAiBrN,EAAGpH,KAAK0U,cAC3B,IAAKC,KAAanM,EAAS,CACzB,IACIoM,EAAQzf,MAAMhM,QADdmiB,EAAO9C,EAAQmM,IACeH,EAAgBD,EAClDK,EAAMD,GAAarJ,EAErBha,GAAO,SAAmB,aAC1B,IAAIujB,EAAoBzN,EAAGyG,UAE3B,IAAK,IAAI8G,KADTrjB,GAAO,gBAAyB,IACVkjB,EAEpB,IADAI,EAAQJ,EAAcG,IACZ5uB,OAAQ,CAKhB,GAJAuL,GAAO,WAAsB8V,EAAGxH,KAAK9D,YAAY6Y,GAAc,kBAC3DF,IACFnjB,GAAO,8CAAwD,MAAU8V,EAAGxH,KAAK7D,aAAa4Y,GAAc,OAE1G9L,EAAe,CACjBvX,GAAO,SACP,IAAIoZ,EAAOkK,EACX,GAAIlK,EAGF,IAFA,IAAkBE,GAAM,EACtBC,EAAKH,EAAK3kB,OAAS,EACd6kB,EAAKC,GAAI,CACdM,EAAeT,EAAKE,GAAM,GACtBA,IACFtZ,GAAO,QAITA,GAAO,SADLwjB,EAAW1W,GADT2W,EAAQ3N,EAAGxH,KAAK9D,YAAYqP,KAEF,kBAC1BsJ,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,kBAA2B,MAAS8V,EAAGxH,KAAKlC,eAAe0J,EAAGpH,KAAKnC,aAAesN,EAAe4J,GAAU,OAGtHzjB,GAAO,SACP,IAAI0jB,EAAgB,UAAY5M,EAC9B6M,EAAmB,OAAUD,EAAgB,OAC3C5N,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGpH,KAAKnC,aAAeuJ,EAAGxH,KAAKjC,YAAYkX,EAAmBG,GAAe,GAAQH,EAAoB,MAAQG,GAElI,IAAIhM,EAAaA,GAAc,GAC/BA,EAAWtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,6DAAgF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,2BAA+BvB,EAAGxH,KAAK7D,aAAa4Y,GAAc,0BAAiD,iBAAqBC,EAAY,OAAI,YAAgBxN,EAAGxH,KAAK7D,aAA6B,GAAhB6Y,EAAM7uB,OAAc6uB,EAAM,GAAKA,EAAM1oB,KAAK,OAAU,QAC9X,IAArBkb,EAAGpH,KAAKkJ,WACV5X,GAAO,4BAELA,GADkB,GAAhBsjB,EAAM7uB,OACD,YAAeqhB,EAAGxH,KAAK7D,aAAa6Y,EAAM,IAE1C,cAAiBxN,EAAGxH,KAAK7D,aAAa6Y,EAAM1oB,KAAK,OAE1DoF,GAAO,kBAAqB8V,EAAGxH,KAAK7D,aAAa4Y,GAAc,iBAE7DvN,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,mFAE9B,CACLvL,GAAO,QACP,IAAIyZ,EAAO6J,EACX,GAAI7J,EAGF,IAFA,IAAII,EAAcH,GAAM,EACtBC,EAAKF,EAAKhlB,OAAS,EACdilB,EAAKC,GAAI,CACdE,EAAeJ,EAAKC,GAAM,GAC1B,IAAI+J,EAAQ3N,EAAGxH,KAAK9D,YAAYqP,GAE9B2J,GADAG,EAAmB7N,EAAGxH,KAAK7D,aAAaoP,GAC7B/M,EAAQ2W,GACjB3N,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGxH,KAAK5B,QAAQ6W,EAAmB1J,EAAc/D,EAAGpH,KAAKnC,eAE1EvM,GAAO,WAAwB,kBAC3BmjB,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,qBACiB,IAApB8V,EAAG6B,cACL3X,GAAO,6DAAgF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,2BAA+BvB,EAAGxH,KAAK7D,aAAa4Y,GAAc,0BAAiD,iBAAqBC,EAAY,OAAI,YAAgBxN,EAAGxH,KAAK7D,aAA6B,GAAhB6Y,EAAM7uB,OAAc6uB,EAAM,GAAKA,EAAM1oB,KAAK,OAAU,QAC9X,IAArBkb,EAAGpH,KAAKkJ,WACV5X,GAAO,4BAELA,GADkB,GAAhBsjB,EAAM7uB,OACD,YAAeqhB,EAAGxH,KAAK7D,aAAa6Y,EAAM,IAE1C,cAAiBxN,EAAGxH,KAAK7D,aAAa6Y,EAAM1oB,KAAK,OAE1DoF,GAAO,kBAAqB8V,EAAGxH,KAAK7D,aAAa4Y,GAAc,iBAE7DvN,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAIbA,GAAO,QACHuX,IACFgL,GAAkB,IAClBviB,GAAO,YAIb8V,EAAGyG,UAAYgH,EACf,IAAIf,EAAiBL,EAAI5P,OACzB,IAAK,IAAI8Q,KAAaJ,EAAa,CACjC,IAAIjJ,EAAOiJ,EAAYI,IAClBvN,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,QAC5HpW,GAAO,MAAqB,mBAA8B8V,EAAGxH,KAAK9D,YAAY6Y,GAAc,kBACxFF,IACFnjB,GAAO,8CAAwD,MAAU8V,EAAGxH,KAAK7D,aAAa4Y,GAAc,OAE9GrjB,GAAO,OACPmiB,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAaD,EAAcrB,EAAGxH,KAAK9D,YAAY6Y,GACnDlB,EAAI7K,cAAgBD,EAAiB,IAAMvB,EAAGxH,KAAKZ,eAAe2V,GAClErjB,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,EACbxiB,GAAO,OACHuX,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,MAQxB,OAJIhL,IACFvX,GAAO,QAA2B,UAAoB,iBAExDA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,IN1J1BwQ,KOVe,SAAuBsF,EAAIC,EAAUC,GACpD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnBmK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,IACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,MAKvG,IAAIoB,EAAK,IAAMxC,EACb+M,EAAW,SAAW/M,EACnBmK,IACHjhB,GAAO,UAAuB,uBAAuC,KAEvEA,GAAO,SAAoB,IACvBihB,IACFjhB,GAAO,gBAAyB,qBAAgC,4CAAqD,QAAmB,oBAE1IA,KAAuB,uBAA8B,SAAgB,MAAmB,cAAqB,mBAA6B,OAAoB,MAAa,WAAsB,oBAC7LihB,IACFjhB,GAAO,SAGT,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,WAAsB,UAG7BA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,qDAAwE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,uCAAgD,OACrL,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,+DAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,GPpDPmR,OQXe,SAAyB2E,EAAIC,EAAUC,GACtD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAClC,IAAuB,IAAnBlB,EAAGpH,KAAKyC,OAIV,OAHIoG,IACFvX,GAAO,iBAEFA,EAET,IACEghB,EADEC,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAEjB,IAAI4M,EAAkBhO,EAAGpH,KAAKqV,eAC5BC,EAAgBngB,MAAMhM,QAAQisB,GAChC,GAAI7C,EAAS,CAIXjhB,GAAO,SAHHikB,EAAU,SAAWnN,GAGI,gBAAiC,WAF5DoN,EAAY,WAAapN,GAE6D,eAA2B,uBAAqC,4BAAwC,mBAD9LqN,EAAc,aAAerN,GACqM,QAAsB,SAAqB,4BAA4C,OACvThB,EAAGvK,QACLvL,GAAO,eAAwB,QAAoB,YAErDA,GAAO,MAAkB,QAAoB,sBACzCihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAEhFA,GAAO,KACgB,UAAnB8jB,IACF9jB,GAAO,OAAwB,UAAsB,IACjDgkB,IACFhkB,GAAO,2CAA4D,YAErEA,GAAO,SAETA,GAAO,OAAmB,SAAyB,UAAyB,mBAAgC,oBAE1GA,GADE8V,EAAGvK,MACE,YAAqB,cAA0B,MAAgB,SAAqB,MAAgB,MAEpG,MAAkB,MAAgB,KAE3CvL,GAAO,QAAoB,WAAqB,cAC3C,CACL,IAAIikB,EACJ,KADIA,EAAUnO,EAAGgG,QAAQ5E,IACX,CACZ,GAAuB,UAAnB4M,EAKF,OAJAhO,EAAGW,OAAOC,KAAK,mBAAqBQ,EAAU,gCAAkCpB,EAAGwB,cAAgB,KAC/FC,IACFvX,GAAO,iBAEFA,EACF,GAAIgkB,GAAiBF,EAAgBhtB,QAAQogB,IAAY,EAI9D,OAHIK,IACFvX,GAAO,iBAEFA,EAEP,MAAU/F,MAAM,mBAAqBid,EAAU,gCAAkCpB,EAAGwB,cAAgB,KAGxG,IAAI4M,EACAC,GADAD,EAA8B,iBAAXD,KAAyBA,aAAmBnrB,SAAWmrB,EAAQ7R,WACvD6R,EAAQxmB,MAAQ,SAC/C,GAAIymB,EAAW,CACb,IAAIjO,GAA2B,IAAlBgO,EAAQ1Y,MACrB0Y,EAAUA,EAAQ7R,SAEpB,GAAI+R,GAAenO,EAIjB,OAHIuB,IACFvX,GAAO,iBAEFA,EAET,GAAIiW,EAAQ,CACV,IAAKH,EAAGvK,MAAO,MAAUtR,MAAM,+BAE/B+F,GAAO,iBADHokB,EAAa,UAAYtO,EAAGxH,KAAK9D,YAAY0M,GAAW,aACpB,MAAgB,aACnD,CACLlX,GAAO,UACP,IAAIokB,EAAa,UAAYtO,EAAGxH,KAAK9D,YAAY0M,GAC7CgN,IAAWE,GAAc,aAE3BpkB,GADoB,mBAAXikB,EACF,MAAqB,MAAgB,KAErC,MAAqB,WAAqB,KAEnDjkB,GAAO,QAGX,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,uDAA0E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,yBAE9JrX,GADEihB,EACK,KAEA,GAAMnL,EAAGxH,KAAKlC,eAAe8K,GAEtClX,GAAO,QACkB,IAArB8V,EAAGpH,KAAKkJ,WACV5X,GAAO,sCAELA,GADEihB,EACK,SAA2B,OAE3B,GAAMnL,EAAGxH,KAAK7D,aAAayM,GAEpClX,GAAO,QAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,GAAMnL,EAAGxH,KAAKlC,eAAe8K,GAEtClX,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,MACHuX,IACFvX,GAAO,YAEFA,GRvIPqkB,GSZe,SAAqBvO,EAAIC,EAAUC,GAClD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnB4L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACvBqM,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3BuN,EAAWxO,EAAG/J,OAAa,KAC7BwY,EAAWzO,EAAG/J,OAAa,KAC3ByY,OAA4BvpB,IAAbqpB,IAA2BxO,EAAGpH,KAAK4H,eAAoC,iBAAZgO,GAAwB1tB,OAAO6S,KAAK6a,GAAU7vB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAewY,EAAUxO,EAAGK,MAAMC,MAC/KqO,OAA4BxpB,IAAbspB,IAA2BzO,EAAGpH,KAAK4H,eAAoC,iBAAZiO,GAAwB3tB,OAAO6S,KAAK8a,GAAU9vB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAeyY,EAAUzO,EAAGK,MAAMC,MAC/KoM,EAAiBL,EAAI5P,OACvB,GAAIiS,GAAgBC,EAAc,CAChC,IAAIC,EACJvC,EAAIxK,cAAe,EACnBwK,EAAIpW,OAASmL,EACbiL,EAAI/K,WAAaD,EACjBgL,EAAI7K,cAAgBD,EACpBrX,GAAO,UAAoB,oBAA+B,aAC1D,IAAI2iB,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvC/X,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,EACbL,EAAIxK,cAAe,EACnB3X,GAAO,gBAA0B,mCAA6C,wBAAkC,6BAChH8V,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EACnC6B,GACFxkB,GAAO,UAAyB,QAChCmiB,EAAIpW,OAAS+J,EAAG/J,OAAa,KAC7BoW,EAAI/K,WAAatB,EAAGsB,WAAa,QACjC+K,EAAI7K,cAAgBxB,EAAGwB,cAAgB,QACvCtX,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,EACbxiB,GAAO,MAAiB,QAAuB,KAC3CwkB,GAAgBC,EAElBzkB,GAAO,SADP0kB,EAAY,WAAa5N,GACM,cAE/B4N,EAAY,SAEd1kB,GAAO,MACHykB,IACFzkB,GAAO,aAGTA,GAAO,WAA0B,OAE/BykB,IACFtC,EAAIpW,OAAS+J,EAAG/J,OAAa,KAC7BoW,EAAI/K,WAAatB,EAAGsB,WAAa,QACjC+K,EAAI7K,cAAgBxB,EAAGwB,cAAgB,QACvCtX,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,EACbxiB,GAAO,MAAiB,QAAuB,KAC3CwkB,GAAgBC,EAElBzkB,GAAO,SADP0kB,EAAY,WAAa5N,GACM,cAE/B4N,EAAY,SAEd1kB,GAAO,OAETA,GAAO,WAAsB,sBACL,IAApB8V,EAAG6B,cACL3X,GAAO,mDAAsE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kCAAgD,OACnL,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,qCAAoD,mBAEzD8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF8V,EAAGiC,eAAiBR,IAGrBvX,GADE8V,EAAGvK,MACE,wCAEA,8CAGXvL,GAAO,QACHuX,IACFvX,GAAO,YAETA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,QAEtBuX,IACFvX,GAAO,iBAGX,OAAOA,GTxFP4P,MUbe,SAAwBkG,EAAIC,EAAUC,GACrD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnB4L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3B8L,EAAO,IAAM/L,EACfgM,EAAWX,EAAIlL,UAAYnB,EAAGmB,UAAY,EAC1C8L,EAAY,OAASD,EACrBN,EAAiB1M,EAAGvD,OAEtB,GADAvS,GAAO,SAAmB,mBAA8B,IACpD6D,MAAMhM,QAAQqf,GAAU,CAC1B,IAAIyN,EAAmB7O,EAAG/J,OAAO4D,gBACjC,IAAyB,IAArBgV,EAA4B,CAC9B3kB,GAAO,MAAiB,QAAkB,cAAiBkX,EAAc,OAAI,KAC7E,IAAI0N,EAAqBvN,EACzBA,EAAiBvB,EAAGwB,cAAgB,mBAEpC,IAAII,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,YAAuB,UAG9BA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,gEAAmF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,uBAA0BH,EAAc,OAAI,OAC5L,IAArBpB,EAAGpH,KAAKkJ,WACV5X,GAAO,0CAA8CkX,EAAc,OAAI,YAErEpB,EAAGpH,KAAKmJ,UACV7X,GAAO,mDAAsD8V,EAAa,WAAI,cAAwB,KAExG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,MACPqX,EAAiBuN,EACbrN,IACFgL,GAAkB,IAClBviB,GAAO,YAGX,IAAIoZ,EAAOlC,EACX,GAAIkC,EAGF,IAFA,IAAIY,EAAMV,GAAM,EACdC,EAAKH,EAAK3kB,OAAS,EACd6kB,EAAKC,GAEV,GADAS,EAAOZ,EAAKE,GAAM,GACbxD,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,KAAO,CACnIpW,GAAO,MAAqB,kBAA4B,eAAsB,OAC9E,IAAIia,EAAYnN,EAAQ,IAAMwM,EAAK,IACnC6I,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAaD,EAAc,IAAMmC,EAAK,IAC1C6I,EAAI7K,cAAgBD,EAAiB,IAAMiC,EAC3C6I,EAAI5F,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAWjD,EAAIxD,EAAGpH,KAAKnC,cAAc,GAC5E4V,EAAIjK,YAAY4K,GAAYxJ,EAC5B,IAAIoB,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAExEA,GAAO,OACHuX,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,KAK1B,GAA+B,iBAApBoC,IAAiC7O,EAAGpH,KAAK4H,eAA4C,iBAApBqO,GAAgC/tB,OAAO6S,KAAKkb,GAAkBlwB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAe6Y,EAAkB7O,EAAGK,MAAMC,MAAO,CAC9M+L,EAAIpW,OAAS4Y,EACbxC,EAAI/K,WAAatB,EAAGsB,WAAa,mBACjC+K,EAAI7K,cAAgBxB,EAAGwB,cAAgB,mBACvCtX,GAAO,MAAqB,kBAA4B,aAAgBkX,EAAc,OAAI,mBAA4B,MAASA,EAAc,OAAI,OAAgB,QAAkB,cAAuB,SAC1MiL,EAAI5F,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAWsG,EAAM/M,EAAGpH,KAAKnC,cAAc,GAC1E0N,EAAYnN,EAAQ,IAAM+V,EAAO,IACrCV,EAAIjK,YAAY4K,GAAYD,EACxBnI,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAEpEuX,IACFvX,GAAO,WAA0B,aAEnCA,GAAO,SACHuX,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,WAGjB,GAAKzM,EAAGpH,KAAK4H,eAAmC,iBAAXY,GAAuBtgB,OAAO6S,KAAKyN,GAASziB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAeoL,EAASpB,EAAGK,MAAMC,KAAO,CACnJ+L,EAAIpW,OAASmL,EACbiL,EAAI/K,WAAaD,EACjBgL,EAAI7K,cAAgBD,EACpBrX,GAAO,gBAAA,WAAuD,QAAkB,cAAuB,SACvGmiB,EAAI5F,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAWsG,EAAM/M,EAAGpH,KAAKnC,cAAc,GAC1E0N,EAAYnN,EAAQ,IAAM+V,EAAO,IACrCV,EAAIjK,YAAY4K,GAAYD,EACxBnI,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAEpEuX,IACFvX,GAAO,WAA0B,aAEnCA,GAAO,KAMT,OAJIuX,IACFvX,GAAO,MAAyB,UAAoB,iBAEtDA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,IV3H1B2Q,QAASkU,GACTjU,QAASiU,GACTzT,SAAU0T,GACVzT,SAAUyT,GACV9T,UAAW+T,GACX9T,UAAW8T,GACXxT,cAAeyT,GACfxT,cAAewT,GACfjU,WWtBe,SAA6B+E,EAAIC,EAAUC,GAC1D,IASEgL,EATEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BiK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAEjBlX,GAAO,iBAA0B,QAC7BihB,IACFjhB,GAAO,MAAuB,gCAAiD,oBAEjFA,GAAO,eAAwB,QAAkB,QAAyB,KAExEA,GADE8V,EAAGpH,KAAKuW,oBACH,kCAA2C,iBAA0B,UAAanP,EAAGpH,KAAwB,oBAAI,IAEjH,cAAuB,2BAAoC,KAEpE1O,GAAO,MACHihB,IACFjhB,GAAO,SAGT,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,WAGPA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,2DAA8E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,8BAA+C,OAC1L,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,sCAELA,GADEihB,EACK,WAEsB,KAG7BnL,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,KAETjhB,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,GXnDPgQ,IYvBe,SAAsB8F,EAAIC,EAAUC,GACnD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9B0L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACvBqM,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC/B,GAAKjB,EAAGpH,KAAK4H,eAAmC,iBAAXY,GAAuBtgB,OAAO6S,KAAKyN,GAASziB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAeoL,EAASpB,EAAGK,MAAMC,KAAO,CAC5I+L,EAAIpW,OAASmL,EACbiL,EAAI/K,WAAaD,EACjBgL,EAAI7K,cAAgBD,EACpBrX,GAAO,UAAoB,eAC3B,IAGIklB,EAHAvC,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvCoK,EAAIxK,cAAe,EAEfwK,EAAIzT,KAAK8I,YACX0N,EAAmB/C,EAAIzT,KAAK8I,UAC5B2K,EAAIzT,KAAK8I,WAAY,GAEvBxX,GAAO,IAAO8V,EAAG1D,SAAS+P,GAAQ,IAClCA,EAAIxK,cAAe,EACfuN,IAAkB/C,EAAIzT,KAAK8I,UAAY0N,GAC3CpP,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EAEvC,IAAIjL,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,UAAyB,UAGhCA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,oDAAuE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kBACpI,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,sCAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,yBAAmC,mCAA6C,wBAAkC,4BACrH8V,EAAGpH,KAAK8I,YACVxX,GAAO,YAGTA,GAAO,kBACiB,IAApB8V,EAAG6B,cACL3X,GAAO,oDAAuE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kBACpI,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,sCAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,+EACHuX,IACFvX,GAAO,kBAGX,OAAOA,GZzDPmQ,MaxBe,SAAwB2F,EAAIC,EAAUC,GACrD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnB4L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3ByL,EAAiBL,EAAI5P,OACvB4S,EAAa,YAAcrO,EAC3BsO,EAAkB,iBAAmBtO,EACvC9W,GAAO,SAAmB,iBAAgC,gBAA2B,gBAAoC,YACzH,IAAI2iB,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvC,IAAIqB,EAAOlC,EACX,GAAIkC,EAGF,IAFA,IAAIY,EAAMV,GAAM,EACdC,EAAKH,EAAK3kB,OAAS,EACd6kB,EAAKC,GACVS,EAAOZ,EAAKE,GAAM,IACbxD,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,OAC5H+L,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAaD,EAAc,IAAMmC,EAAK,IAC1C6I,EAAI7K,cAAgBD,EAAiB,IAAMiC,EAC3CtZ,GAAO,KAAQ8V,EAAG1D,SAAS+P,GAAQ,IACnCA,EAAI5P,OAASiQ,GAEbxiB,GAAO,UAAyB,YAE9BsZ,IACFtZ,GAAO,UAAyB,SAAwB,SAAoB,eAAmC,SAA6B,OAAc,eAC1JuiB,GAAkB,KAEpBviB,GAAO,UAAyB,SAAoB,QAAuB,cAAkC,QAAe,MA8BhI,OA3BA8V,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EACvC3iB,KAA+B,UAAqB,sBAC5B,IAApB8V,EAAG6B,cACL3X,GAAO,sDAAyE8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,kCAAsD,OAC5L,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,2DAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF8V,EAAGiC,eAAiBR,IAGrBvX,GADE8V,EAAGvK,MACE,wCAEA,8CAGXvL,GAAO,wBAAkC,mCAA6C,wBAAkC,2BACpH8V,EAAGpH,KAAK8I,YACVxX,GAAO,OAEFA,Gb7CPkR,QczBe,SAA0B4E,EAAIC,EAAUC,GACvD,IASEgL,EATEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BiK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAEjB,IAAImO,EAAUpE,EAAU,eAAiBD,EAAe,KAAOlL,EAAG2G,WAAWvF,GAC7ElX,GAAO,QACHihB,IACFjhB,GAAO,OAAwB,8BAA+C,qBAGhF,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,OAAmB,WAAqB,YAG/CA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,wDAA2E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,0BAE/JrX,GADEihB,EACK,KAEA,GAAMnL,EAAGxH,KAAKlC,eAAe8K,GAEtClX,GAAO,QACkB,IAArB8V,EAAGpH,KAAKkJ,WACV5X,GAAO,uCAELA,GADEihB,EACK,SAA2B,OAE3B,GAAMnL,EAAGxH,KAAK7D,aAAayM,GAEpClX,GAAO,QAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,GAAMnL,EAAGxH,KAAKlC,eAAe8K,GAEtClX,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EAgBZ,OAfAA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,KACHuX,IACFvX,GAAO,YAEFA,Gd9CPvI,We1Be,SAA6Bqe,EAAIC,EAAUC,GAC1D,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9B0L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC3BuO,EAAO,MAAQxO,EACjB+L,EAAO,MAAQ/L,EACfgM,EAAWX,EAAIlL,UAAYnB,EAAGmB,UAAY,EAC1C8L,EAAY,OAASD,EACrByC,EAAkB,iBAAmBzO,EACnC0O,EAAc5uB,OAAO6S,KAAKyN,GAAW,IACvCuO,EAAe3P,EAAG/J,OAAOsE,mBAAqB,GAC9CqV,EAAiB9uB,OAAO6S,KAAKgc,GAC7BE,EAAe7P,EAAG/J,OAAO+D,qBACzB8V,EAAkBJ,EAAY/wB,QAAUixB,EAAejxB,OACvDoxB,GAAiC,IAAjBF,EAChBG,EAA6C,iBAAhBH,GAA4B/uB,OAAO6S,KAAKkc,GAAclxB,OACnFsxB,EAAoBjQ,EAAGpH,KAAKsX,iBAC5BC,EAAmBJ,GAAiBC,GAAuBC,EAC3D5C,EAAiBrN,EAAGpH,KAAK0U,cACzBZ,EAAiB1M,EAAGvD,OAClB2T,EAAYpQ,EAAG/J,OAAO2E,SAC1B,GAAIwV,KAAepQ,EAAGpH,KAAK5B,IAASoZ,EAAUpZ,IAAUoZ,EAAUzxB,OAASqhB,EAAGpH,KAAKyX,aAAc,IAAIC,EAAgBtQ,EAAGxH,KAAKrE,OAAOic,GAKpI,GAJAlmB,GAAO,SAAmB,mBAAkC,WACxDmjB,IACFnjB,GAAO,UAA8B,iBAEnCimB,EAAkB,CAMpB,GAJEjmB,GADEmjB,EACK,MAA0B,QAA4B,qBAA+B,iBAA0B,SAAkB,MAA0B,cAAuB,eAAwB,QAA4B,MAAe,MAErP,eAAwB,SAAmB,OAEhDyC,EAAiB,CAEnB,GADA5lB,GAAO,sBAA+B,cAClCwlB,EAAY/wB,OACd,GAAI+wB,EAAY/wB,OAAS,EACvBuL,GAAO,wBAAwC,qBAA8B,SACxE,CACL,IAAIoZ,EAAOoM,EACX,GAAIpM,EAGF,IAFA,IAAkBiN,GAAM,EACtB9M,EAAKH,EAAK3kB,OAAS,EACd4xB,EAAK9M,GACVM,EAAeT,EAAKiN,GAAM,GAC1BrmB,GAAO,SAAkB,OAAU8V,EAAGxH,KAAKlC,eAAeyN,GAAiB,IAKnF,GAAI6L,EAAejxB,OAAQ,CACzB,IAAIglB,EAAOiM,EACX,GAAIjM,EAGF,IAFA,IAAgBH,GAAM,EACpBK,EAAKF,EAAKhlB,OAAS,EACd6kB,EAAKK,GACV2M,GAAa7M,EAAKH,GAAM,GACxBtZ,GAAO,OAAU8V,EAAG2G,WAAW6J,IAAe,WAAoB,KAIxEtmB,GAAO,yBAAkC,OAE3C,GAAyB,OAArB+lB,EACF/lB,GAAO,aAAuB,MAAe,UACxC,CACL,IAAIujB,EAAoBzN,EAAGyG,UACvBgK,EAAsB,OAAUjB,EAAO,OAI3C,GAHIxP,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAW+I,EAAMxP,EAAGpH,KAAKnC,eAE7DsZ,EACF,GAAIE,EACF/lB,GAAO,aAAuB,MAAe,UACxC,CAEL,IAAI4kB,EAAqBvN,EACzBA,EAAiBvB,EAAGwB,cAAgB,yBAChCI,GAAaA,IAAc,IACpBtd,KAJX4F,GAAO,MAAqB,cAK5BA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,qEAAwF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,uCAAgE,QACrN,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,oCAEA,wCAET5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,mDAAsD8V,EAAa,WAAI,cAAwB,KAExG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,GAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnC8L,EAAiBuN,EACbrN,IACFvX,GAAO,iBAGN,GAAI8lB,EACT,GAAyB,WAArBC,EAAgC,CAClC/lB,GAAO,UAAoB,eAC3B,IAAI2iB,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvCoK,EAAIpW,OAAS4Z,EACbxD,EAAI/K,WAAatB,EAAGsB,WAAa,wBACjC+K,EAAI7K,cAAgBxB,EAAGwB,cAAgB,wBACvC6K,EAAI5F,UAAYzG,EAAGpH,KAAKkV,uBAAyB9N,EAAGyG,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAW+I,EAAMxP,EAAGpH,KAAKnC,cAChH,IAAI0N,EAAYnN,EAAQ,IAAMwY,EAAO,IACrCnD,EAAIjK,YAAY4K,GAAYwC,EAC5B,IAAI5K,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAExEA,GAAO,WAA0B,kBAA4B,0HAAoI,MAAe,SAChN8V,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,MAClC,CACLR,EAAIpW,OAAS4Z,EACbxD,EAAI/K,WAAatB,EAAGsB,WAAa,wBACjC+K,EAAI7K,cAAgBxB,EAAGwB,cAAgB,wBACvC6K,EAAI5F,UAAYzG,EAAGpH,KAAKkV,uBAAyB9N,EAAGyG,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAW+I,EAAMxP,EAAGpH,KAAKnC,cAC5G0N,EAAYnN,EAAQ,IAAMwY,EAAO,IACrCnD,EAAIjK,YAAY4K,GAAYwC,EACxB5K,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAEpEuX,IACFvX,GAAO,WAA0B,aAIvC8V,EAAGyG,UAAYgH,EAEbqC,IACF5lB,GAAO,OAETA,GAAO,OACHuX,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,KAGtB,IAAIiE,EAAe1Q,EAAGpH,KAAKyJ,cAAgBrC,EAAGiC,cAC9C,GAAIyN,EAAY/wB,OAAQ,CACtB,IAAImlB,EAAO4L,EACX,GAAI5L,EAGF,IAFA,IAAIC,EAAcC,GAAM,EACtBC,EAAKH,EAAKnlB,OAAS,EACdqlB,EAAKC,GAAI,CAEd,IAAIC,EAAO9C,EADX2C,EAAeD,EAAKE,GAAM,IAE1B,GAAKhE,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,KAAO,CACnI,IAAIqN,EAAQ3N,EAAGxH,KAAK9D,YAAYqP,GAE9B4M,GADAxM,EAAYnN,EAAQ2W,EACN+C,QAAiCvrB,IAAjB+e,EAAKzJ,SACrC4R,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAaD,EAAcsM,EAC/BtB,EAAI7K,cAAgBD,EAAiB,IAAMvB,EAAGxH,KAAKZ,eAAemM,GAClEsI,EAAI5F,UAAYzG,EAAGxH,KAAK5B,QAAQoJ,EAAGyG,UAAW1C,EAAc/D,EAAGpH,KAAKnC,cACpE4V,EAAIjK,YAAY4K,GAAYhN,EAAGxH,KAAKlC,eAAeyN,GAC/Ca,EAAQ5E,EAAG1D,SAAS+P,GAExB,GADAA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAAG,CAC/CrI,EAAQ5E,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAC7C,IAAIuJ,GAAWvJ,MACV,CACDuJ,GAAWT,EACf/iB,GAAO,UAAwB,QAAsB,KAEvD,GAAIymB,EACFzmB,GAAO,MAAgB,QAClB,CACL,GAAIomB,GAAiBA,EAAcvM,GAAe,CAChD7Z,GAAO,YAAwB,kBAC3BmjB,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,SAAwB,aAC3BujB,EAAoBzN,EAAGyG,UACzBqI,EAAqBvN,EADvB,IAOIK,GALFiM,GAAmB7N,EAAGxH,KAAK7D,aAAaoP,GACtC/D,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGxH,KAAK5B,QAAQ6W,EAAmB1J,EAAc/D,EAAGpH,KAAKnC,eAE1E8K,EAAiBvB,EAAGwB,cAAgB,aAChCI,GAAaA,IAAc,IACpBtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,qCAA0D,QACnM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,yBAEA,uCAA4D,MAErE5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAEL8X,EAAQ9X,EACZA,EAAM0X,GAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnC8L,EAAiBuN,EACjB9O,EAAGyG,UAAYgH,EACfvjB,GAAO,kBAEHuX,GACFvX,GAAO,YAAwB,kBAC3BmjB,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,SAAwB,uBAE/BA,GAAO,WAAuB,kBAC1BmjB,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,SAGXA,GAAO,MAAgB,OAGvBuX,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,MAK1B,GAAImD,EAAejxB,OAAQ,CACzB,IAAI0lB,GAAOuL,EACX,GAAIvL,GAGF,IAFA,IAAImM,GAAYI,IAAM,EACpBtM,GAAKD,GAAK1lB,OAAS,EACdiyB,GAAKtM,IAAI,CAEVJ,EAAOyL,EADXa,GAAanM,GAAKuM,IAAM,IAExB,GAAK5Q,EAAGpH,KAAK4H,eAAgC,iBAAR0D,GAAoBpjB,OAAO6S,KAAKuQ,GAAMvlB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAekO,EAAMlE,EAAGK,MAAMC,KAAO,CACnI+L,EAAIpW,OAASiO,EACbmI,EAAI/K,WAAatB,EAAGsB,WAAa,qBAAuBtB,EAAGxH,KAAK9D,YAAY8b,IAC5EnE,EAAI7K,cAAgBxB,EAAGwB,cAAgB,sBAAwBxB,EAAGxH,KAAKZ,eAAe4Y,IAEpFtmB,GADEmjB,EACK,MAA0B,QAA4B,qBAA+B,iBAA0B,SAAkB,MAA0B,cAAuB,eAAwB,QAA4B,MAAe,MAErP,eAAwB,SAAmB,OAEpDnjB,GAAO,QAAW8V,EAAG2G,WAAW6J,IAAe,WAAoB,QACnEnE,EAAI5F,UAAYzG,EAAGxH,KAAKjC,YAAYyJ,EAAGyG,UAAW+I,EAAMxP,EAAGpH,KAAKnC,cAC5D0N,EAAYnN,EAAQ,IAAMwY,EAAO,IACrCnD,EAAIjK,YAAY4K,GAAYwC,EACxB5K,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAEpEuX,IACFvX,GAAO,WAA0B,aAEnCA,GAAO,MACHuX,IACFvX,GAAO,WAA0B,aAEnCA,GAAO,OACHuX,IACFvX,GAAO,UAAyB,OAChCuiB,GAAkB,OAU5B,OAJIhL,IACFvX,GAAO,MAAyB,UAAoB,iBAEtDA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,If3S1B+P,cgB3Be,SAAgC+F,EAAIC,EAAUC,GAC7D,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9B0L,EAAQ,SAAW5L,EACnBqL,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GAEvBqM,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAE/B,GADA/W,GAAO,SAAmB,aACrB8V,EAAGpH,KAAK4H,eAAmC,iBAAXY,GAAuBtgB,OAAO6S,KAAKyN,GAASziB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAeoL,EAASpB,EAAGK,MAAMC,KAAO,CAC5I+L,EAAIpW,OAASmL,EACbiL,EAAI/K,WAAaD,EACjBgL,EAAI7K,cAAgBD,EACpB,IAAIiO,EAAO,MAAQxO,EACjB+L,EAAO,MAAQ/L,EACfwC,EAAK,IAAMxC,EACX6P,EAAe,OAAUrB,EAAO,OAEhCvC,EAAY,QADDZ,EAAIlL,UAAYnB,EAAGmB,UAAY,GAE1CsO,EAAkB,iBAAmBzO,EACrCqM,EAAiBrN,EAAGpH,KAAK0U,cACzBZ,EAAiB1M,EAAGvD,OAClB4Q,IACFnjB,GAAO,UAA8B,kBAGrCA,GADEmjB,EACK,MAA0B,QAA4B,qBAA+B,iBAA0B,SAAkB,MAA0B,cAAuB,eAAwB,QAA4B,MAAe,MAErP,eAAwB,SAAmB,OAEpDnjB,GAAO,mBAA4B,cACnC,IAAIia,EAAYqL,EACZ3C,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvC,IAAI2C,EAAQ5E,EAAG1D,SAAS+P,GACxBA,EAAI5P,OAASiQ,EACT1M,EAAGxH,KAAKxD,cAAc4P,EAAOqI,GAAa,EAC5C/iB,GAAO,IAAO8V,EAAGxH,KAAKtD,WAAW0P,EAAOqI,EAAW9I,GAAc,IAEjEja,GAAO,UAAwB,QAAsB,OAAiB,IAExE8V,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EACvC3iB,GAAO,WAA0B,kBAAyB,eAAwB,OAAc,cAAqB,mBAA0B,sBAA+B,sBACtJ,IAApB8V,EAAG6B,cACL3X,GAAO,8DAAiF8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,iCAAmD,QACjM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,mCAAsD,oBAE3D8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF8V,EAAGiC,eAAiBR,IAGrBvX,GADE8V,EAAGvK,MACE,wCAEA,8CAGPgM,IACFvX,GAAO,YAETA,GAAO,OAMT,OAJIuX,IACFvX,GAAO,WAA6C,iBAEtDA,EAAM8V,EAAGxH,KAAKpD,YAAYlL,IhBlD1B0Q,SiB5Be,SAA2BoF,EAAIC,EAAUC,GACxD,IAAIhW,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnBmK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,IACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,MAKvG,IAAI2L,EAAW,SAAW/M,EAC1B,IAAKmK,EACH,GAAI/J,EAAQziB,OAASqhB,EAAGpH,KAAKyX,cAAgBrQ,EAAG/J,OAAOtU,YAAcb,OAAO6S,KAAKqM,EAAG/J,OAAOtU,YAAYhD,OAAQ,CAC7G,IAAIyxB,EAAY,GACZ9M,EAAOlC,EACX,GAAIkC,EAGF,IAFA,IAAIiK,EAAWgD,GAAM,EACnB9M,EAAKH,EAAK3kB,OAAS,EACd4xB,EAAK9M,GAAI,CACd8J,EAAYjK,EAAKiN,GAAM,GACvB,IAAIO,EAAe9Q,EAAG/J,OAAOtU,WAAW4rB,GAClCuD,IAAiB9Q,EAAGpH,KAAK4H,eAAwC,iBAAhBsQ,GAA4BhwB,OAAO6S,KAAKmd,GAAcnyB,OAAS,EAAIqhB,EAAGxH,KAAKxC,eAAe8a,EAAc9Q,EAAGK,MAAMC,QACtK8P,EAAUA,EAAUzxB,QAAU4uB,SAKhC6C,EAAYhP,EAGpB,GAAI+J,GAAWiF,EAAUzxB,OAAQ,CAC/B,IAAI8uB,EAAoBzN,EAAGyG,UACzBsK,EAAgB5F,GAAWiF,EAAUzxB,QAAUqhB,EAAGpH,KAAKyX,aACvDhD,EAAiBrN,EAAGpH,KAAK0U,cAC3B,GAAI7L,EAEF,GADAvX,GAAO,iBAA0B,KAC7B6mB,EAAe,CACZ5F,IACHjhB,GAAO,UAAuB,uBAAuC,MAEvE,IAEE2jB,EAAmB,QADnBD,EAAgB,SAAW5M,EAAO,KADhCwC,EAAK,IAAMxC,GACgC,KACA,OAC3ChB,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGxH,KAAKjC,YAAYkX,EAAmBG,EAAe5N,EAAGpH,KAAKnC,eAE/EvM,GAAO,UAAqB,YACxBihB,IACFjhB,GAAO,gBAAyB,qBAAgC,4CAAqD,QAAmB,oBAE1IA,GAAO,eAAsB,WAAkB,QAAqB,cAAqB,WAAsB,QAAkB,MAAmB,MAAa,oBAC7JmjB,IACFnjB,GAAO,gDAA0D,OAAoB,MAAa,OAEpGA,GAAO,YAAuB,cAC1BihB,IACFjhB,GAAO,UAGL0X,EAAaA,GAAc,IACpBtd,KAFX4F,GAAO,YAAuB,UAG9BA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,oCAA0D,QACnM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,yBAEA,sCAA4D,MAErE5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,iBACF,CACLA,GAAO,SACP,IAAIyZ,EAAOyM,EACX,GAAIzM,EAGF,IAFA,IAAkBH,GAAM,EACtBK,EAAKF,EAAKhlB,OAAS,EACd6kB,EAAKK,GAAI,CACdE,EAAeJ,EAAKH,GAAM,GACtBA,IACFtZ,GAAO,QAITA,GAAO,SADLwjB,EAAW1W,GADT2W,EAAQ3N,EAAGxH,KAAK9D,YAAYqP,KAEF,kBAC1BsJ,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,kBAA2B,MAAS8V,EAAGxH,KAAKlC,eAAe0J,EAAGpH,KAAKnC,aAAesN,EAAe4J,GAAU,OAGtHzjB,GAAO,QACP,IAKI0X,EAJFiM,EAAmB,QADjBD,EAAgB,UAAY5M,GACe,OAC3ChB,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGpH,KAAKnC,aAAeuJ,EAAGxH,KAAKjC,YAAYkX,EAAmBG,GAAe,GAAQH,EAAoB,MAAQG,IAE9HhM,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,oCAA0D,QACnM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,yBAEA,sCAA4D,MAErE5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAEL8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,kBAGT,GAAI6mB,EAAe,CACZ5F,IACHjhB,GAAO,UAAuB,uBAAuC,MAEvE,IACE0jB,EACAC,EAAmB,QADnBD,EAAgB,SAAW5M,EAAO,KADhCwC,EAAK,IAAMxC,GACgC,KACA,OAC3ChB,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGxH,KAAKjC,YAAYkX,EAAmBG,EAAe5N,EAAGpH,KAAKnC,eAE3E0U,IACFjhB,GAAO,UAAuB,wBAAqC,sBAC3C,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,oCAA0D,QACnM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,yBAEA,sCAA4D,MAErE5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,4FAAyG,sBAElHA,GAAO,eAAsB,WAAkB,QAAqB,cAAqB,eAAyB,MAAmB,MAAa,oBAC9ImjB,IACFnjB,GAAO,gDAA0D,OAAoB,MAAa,OAEpGA,GAAO,qBACiB,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,oCAA0D,QACnM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,yBAEA,sCAA4D,MAErE5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,mFACHihB,IACFjhB,GAAO,aAEJ,CACL,IAAI4Z,EAAOsM,EACX,GAAItM,EAGF,IAFA,IAAIC,EAAcC,GAAM,EACtBC,EAAKH,EAAKnlB,OAAS,EACdqlB,EAAKC,GAAI,CACdF,EAAeD,EAAKE,GAAM,GAC1B,IAAI2J,EAAQ3N,EAAGxH,KAAK9D,YAAYqP,GAE9B2J,GADAG,EAAmB7N,EAAGxH,KAAK7D,aAAaoP,GAC7B/M,EAAQ2W,GACjB3N,EAAGpH,KAAKkV,yBACV9N,EAAGyG,UAAYzG,EAAGxH,KAAK5B,QAAQ6W,EAAmB1J,EAAc/D,EAAGpH,KAAKnC,eAE1EvM,GAAO,WAAwB,kBAC3BmjB,IACFnjB,GAAO,gDAA0D,MAAU8V,EAAGxH,KAAK7D,aAAaoP,GAAiB,OAEnH7Z,GAAO,qBACiB,IAApB8V,EAAG6B,cACL3X,GAAO,yDAA4E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,oCAA0D,QACnM,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,gBAELA,GADE8V,EAAGpH,KAAKkV,uBACH,yBAEA,sCAA4D,MAErE5jB,GAAO,MAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAKf8V,EAAGyG,UAAYgH,OACNhM,IACTvX,GAAO,gBAET,OAAOA,GjB9OPsR,YkB7Be,SAA8BwE,EAAIC,EAAUC,GAC3D,IAUEgL,EAVEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UACzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnBmK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAQlD,GANImU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,GAEZA,GAAW+J,KAAoC,IAAxBnL,EAAGpH,KAAK4C,YAAuB,CACrD2P,IACFjhB,GAAO,UAAqB,WAA4B,mBAAoC,qBAAgC,8BAA+C,oBAAiC,qBAE9MA,GAAO,cAAwB,eAA0B,6BACzD,IAAI8mB,EAAYhR,EAAG/J,OAAO6D,OAASkG,EAAG/J,OAAO6D,MAAMnS,KACjDgb,EAAe5U,MAAMhM,QAAQivB,GAC/B,IAAKA,GAA0B,UAAbA,GAAsC,SAAbA,GAAyBrO,IAAiBqO,EAAUhwB,QAAQ,WAAa,GAAKgwB,EAAUhwB,QAAQ,UAAY,GACrJkJ,GAAO,yDAAmE,UAAoB,aAAwB,qCAEtHA,GAAO,2DAAqE,QAE5EA,GAAO,QAAW8V,EAAGxH,KADP,iBAAmBmK,EAAe,IAAM,KACnBqO,EAAW,QAAQ,GAAS,eAC3DrO,IACFzY,GAAO,sDAETA,GAAO,kDAA+D,sEAExEA,GAAO,MACHihB,IACFjhB,GAAO,SAGT,IAAI0X,EAAaA,GAAc,GAC/BA,EAAWtd,KAFX4F,GAAO,WAAsB,UAG7BA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,4DAA+E8V,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,8BAC5I,IAArBvB,EAAGpH,KAAKkJ,WACV5X,GAAO,mGAEL8V,EAAGpH,KAAKmJ,UACV7X,GAAO,eAELA,GADEihB,EACK,oBAEA,KAETjhB,GAAO,2CAA8C8V,EAAa,WAAI,cAAwB,KAEhG9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAIb4E,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAEnCvL,GAAO,MACHuX,IACFvX,GAAO,iBAGLuX,IACFvX,GAAO,iBAGX,OAAOA,GlBrDPoS,SAAU2U,ImB5BR9c,GAASS,EAAkBT,OCD3B+c,GAAW,CACb,aACA,UACA,mBACA,UACA,mBACA,YACA,YACA,UACA,kBACA,WACA,WACA,cACA,gBACA,gBACA,WACA,uBACA,OACA,SACA,YAGe,SAAUC,EAAYC,GACrC,IAAK,IAAI5nB,EAAE,EAAGA,EAAE4nB,EAAqBzyB,OAAQ6K,IAAK,CAChD2nB,EAAatR,KAAKhR,MAAMgR,KAAKH,UAAUyR,IACvC,IAEItnB,EAFA0N,EAAW6Z,EAAqB5nB,GAAGnE,MAAM,KACzCqU,EAAWyX,EAEf,IAAKtnB,EAAE,EAAGA,EAAE0N,EAAS5Y,OAAQkL,IAC3B6P,EAAWA,EAASnC,EAAS1N,IAE/B,IAAKA,EAAE,EAAGA,EAAEqnB,GAASvyB,OAAQkL,IAAK,CAChC,IAAIxI,EAAM6vB,GAASrnB,GACfoM,EAASyD,EAASrY,GAClB4U,IACFyD,EAASrY,GAAO,CACd+Y,MAAO,CACLnE,EACA,CAAE/Q,EAAM,oFAOlB,OAAOisB,GC7CLlS,GAAkBrK,GAA2BoK,cAcjD,SAASqS,EAAapb,EAAQqb,EAAMC,GAIlC,IAAItvB,EAAOwW,KACX,GAAoC,mBAAzBA,KAAK2D,MAAMoV,WACpB,MAAUrtB,MAAM,2CAEC,mBAARmtB,IACTC,EAAWD,EACXA,OAAOnsB,GAGT,IAAIyX,EAAI6U,EAAiBxb,GAAQ/R,MAAK,WACpC,IAAIwtB,EAAYzvB,EAAK0vB,WAAW1b,OAAQ9Q,EAAWmsB,GACnD,OAAOI,EAAUpV,UAqBnB,SAASsV,EAAcF,GACrB,IAAM,OAAOzvB,EAAKsa,SAASmV,GAC3B,MAAMliB,GACJ,GAAIA,aAAayP,GAAiB,OAAO4S,EAAkBriB,GAC3D,MAAMA,EAIR,SAASqiB,EAAkBriB,GACzB,IAAIsM,EAAMtM,EAAE2P,cACZ,GAAI2S,EAAMhW,GAAM,MAAU3X,MAAM,UAAY2X,EAAM,kBAAoBtM,EAAE0P,WAAa,uBAErF,IAAI6S,EAAgB9vB,EAAK+vB,gBAAgBlW,GAMzC,OALKiW,IACHA,EAAgB9vB,EAAK+vB,gBAAgBlW,GAAO7Z,EAAKma,MAAMoV,WAAW1V,IACpD5X,KAAK+tB,EAAeA,GAG7BF,EAAc7tB,MAAK,SAAUqV,GAClC,IAAKuY,EAAMhW,GACT,OAAO2V,EAAiBlY,GAAKrV,MAAK,WAC3B4tB,EAAMhW,IAAM7Z,EAAKiwB,UAAU3Y,EAAKuC,OAAK3W,EAAWmsB,SAGxDptB,MAAK,WACN,OAAO0tB,EAAcF,MAGvB,SAASO,WACAhwB,EAAK+vB,gBAAgBlW,GAG9B,SAASgW,EAAMhW,GACb,OAAO7Z,EAAK+Z,MAAMF,IAAQ7Z,EAAKga,SAASH,KAtDf8V,CAAcF,MAGzCH,GACF3U,EAAE1Y,MACA,SAASsY,GAAK+U,EAAS,KAAM/U,KAC7B+U,GAIJ,OAAO3U,EAGP,SAAS6U,EAAiBlY,GACxB,IAAI6H,EAAU7H,EAAI6H,EAClB,OAAOA,IAAYnf,EAAKkwB,UAAU/Q,GACxBiQ,EAAatwB,KAAKkB,EAAM,CAAEiD,EAAMkc,IAAW,GAC3CgR,QAAQzW,YC/CtB,OAAiB,SAAyBqE,EAAIC,EAAUC,GACtD,IAOIwL,EAKFR,EAZEhhB,EAAM,IACN8W,EAAOhB,EAAGiB,MACVC,EAAWlB,EAAGmB,UACdC,EAAUpB,EAAG/J,OAAOgK,GACpBoB,EAAcrB,EAAGsB,WAAatB,EAAGxH,KAAK9D,YAAYuL,GAClDsB,EAAiBvB,EAAGwB,cAAgB,IAAMvB,EAC1CwB,GAAiBzB,EAAGpH,KAAK8I,UAEzB1K,EAAQ,QAAUkK,GAAY,IAC9BS,EAAS,QAAUX,EACnB4L,EAAQ,SAAW5L,EACnBmK,EAAUnL,EAAGpH,KAAK5B,GAASoK,GAAWA,EAAQpK,EAE9CmU,GACFjhB,GAAO,gBAAyB,MAAS8V,EAAGxH,KAAKzB,QAAQqK,EAAQpK,EAAOkK,EAAUlB,EAAGoC,aAAgB,KACrG8I,EAAe,SAAWlK,GAE1BkK,EAAe9J,EAEjB,IAIIiR,EAAUC,EAASC,EAAQC,EAAeC,EAH5CC,EAAc,aAAe1R,EAC7B2R,EAFUla,KAEI4P,WACdoE,EAAiB,GAEnB,GAAItB,GAAWwH,EAAM3b,EAAO,CAE1B,IAAI4b,EAAkBD,EAAMxK,eAC5Bje,GAAO,UAA0B,sBAAoC,uBAFrEuoB,EAAgB,kBAAoBzR,GAE4E,QAAwB,iBACnI,CAEL,KADAwR,EAAgBxS,EAAG4G,cAVTnO,KAU8B2I,EAASpB,EAAG/J,OAAQ+J,IACxC,OACpBkL,EAAe,kBAAoB7J,EACnCoR,EAAgBD,EAAcve,KAC9Boe,EAAWM,EAAM/W,QACjB0W,EAAUK,EAAM7K,OAChByK,EAASI,EAAMnK,MAEjB,IAAIqK,EAAYJ,EAAgB,UAC9BjP,EAAK,IAAMxC,EACX8R,EAAW,UAAY9R,EACvB+R,EAAgBJ,EAAMld,MACxB,GAAIsd,IAAkB/S,EAAGvK,MAAO,MAAUtR,MAAM,gCAahD,GAZMmuB,GAAWC,IACfroB,KAA0B,YAE5BA,GAAO,SAAmB,mBAA8B,IACpDihB,GAAWwH,EAAM3b,IACnByV,GAAkB,IAClBviB,GAAO,UAA2B,uBAAkC,qBAChE0oB,IACFnG,GAAkB,IAClBviB,GAAO,MAAiB,QAAwB,qBAAsC,YAAuB,SAG7GooB,EAEApoB,GADEyoB,EAAMK,WACD,IAAOR,EAAsB,SAAI,IAEjC,MAAiB,MAASA,EAAsB,SAAI,UAExD,GAAID,EAAQ,CACjB,IAAIlG,EAAMrM,EAAGxH,KAAKlW,KAAK0d,GACnByM,EAAiB,GACrBJ,EAAIpL,QACJ,IAAIqL,EAAa,QAAUD,EAAIpL,MAC/BoL,EAAIpW,OAASuc,EAAclW,SAC3B+P,EAAI/K,WAAa,GACjB,IAAIuL,EAAgB7M,EAAGiC,cACvBjC,EAAGiC,cAAgBoK,EAAIpK,eAAgB,EACvC,IAAI2C,EAAQ5E,EAAG1D,SAAS+P,GAAKhkB,QAAQ,oBAAqBoqB,GAC1DzS,EAAGiC,cAAgBoK,EAAIpK,cAAgB4K,EACvC3iB,GAAO,UACF,EACD0X,EAAaA,GAAc,IACpBtd,KAAK4F,GAChBA,EAAM,GACNA,GAAO,OAAyB,UAE9BA,GADE8V,EAAGpH,KAAK2T,YACH,OAEA,OAGPriB,GADEmoB,IAA6B,IAAjBM,EAAM1c,OACb,QAAkB,IAElB,QAAyB,QAAkB,qBAAwB+J,EAAa,WAAI,IAE7F9V,GAAO,sBACa,MAAhB8V,EAAGyG,YACLvc,GAAO,MAAS8V,EAAY,WAE9B,IAAI0D,EAAcxC,EAAW,QAAWA,EAAW,GAAM,IAAM,aAC7D+R,EAAsB/R,EAAWlB,EAAGoC,YAAYlB,GAAY,qBAE1DgS,EADJhpB,GAAO,QAAwB,QAAgC,kBAE/DA,EAAM0X,EAAWtc,OACI,IAAjBqtB,EAAMtrB,QACR6C,GAAO,MAAiB,MACpB6oB,IACF7oB,GAAO,UAETA,KAAqC,MAInCA,GAFE6oB,EAEK,SADPF,EAAY,eAAiB7R,GACE,oBAA+B,cAAuC,qBAAgC,iDAA+D,gCAE7L,MAAoB,cAAyB,QAAiC,KAQ3F,GAJI2R,EAAMQ,YACRjpB,GAAO,UAA0B,OAAiB,QAAwB,MAA8B,MAE1GA,GAAO,KACHyoB,EAAMS,MACJ3R,IACFvX,GAAO,qBAEJ,CAcL,IAGI0X,EAhBJ1X,GAAO,cACa/E,IAAhBwtB,EAAMS,OACRlpB,GAAO,KAELA,GADEqoB,EACK,KAEA,MAGTroB,GAAO,KAAQyoB,EAAMS,MAAS,IAGhC1H,EAjHUjT,KAiHYoM,SAClBjD,EAAaA,GAAc,IACpBtd,KAHX4F,GAAO,SAKH0X,EAAaA,GAAc,IACpBtd,KAFX4F,EAAM,IAGNA,EAAM,IACkB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,UAAY,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,0BAzHzK9I,KAyHoN,QAAI,QACvM,IAArBuH,EAAGpH,KAAKkJ,WACV5X,GAAO,8BA3HDuO,KA2H+C,QAAI,2BAEvDuH,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAET,IAAI8X,EAAQ9X,EACZA,EAAM0X,EAAWtc,MAWjB,IAAI+tB,EAPAnpB,IAHC8V,EAAGiC,eAAiBR,EAEnBzB,EAAGvK,MACE,iCAA2C,OAE3C,yBAAmC,oBAGrC,gBAA0B,+EAGnCvL,EAAM0X,EAAWtc,MACbgtB,EACEK,EAAMtrB,OACY,QAAhBsrB,EAAMtrB,SACR6C,GAAO,gBAAuB,MAAgB,OAAc,cAAqB,eAA4B,gBAAuB,YAAyB,8BAA2C,kCAAuC8V,EAAY,UAAI,WAAwB,kCAA+C,oBAAuC,QACzWA,EAAGpH,KAAKmJ,UACV7X,GAAO,MAAmB,eAAgC,OAAoB,aAAuB,MAEvGA,GAAO,QAGY,IAAjByoB,EAAMtrB,OACR6C,GAAO,MAA0B,KAEjCA,GAAO,UAAoB,mBAAuC,yBAAgC,MAAgB,OAAc,cAAqB,eAA4B,gBAAuB,YAAyB,8BAA2C,kCAAuC8V,EAAY,UAAI,WAAwB,kCAA+C,oBAAuC,QAC7aA,EAAGpH,KAAKmJ,UACV7X,GAAO,MAAmB,eAAgC,OAAoB,aAAuB,MAEvGA,GAAO,SAGFqoB,GACTroB,GAAO,mBACiB,IAApB8V,EAAG6B,cACL3X,GAAO,iBAAoBwhB,GAAiB,UAAY,oCAA0C1L,EAAY,UAAI,kBAAqBA,EAAGxH,KAAKlC,eAAeiL,GAAmB,0BAzK3K9I,KAyKsN,QAAI,QACvM,IAArBuH,EAAGpH,KAAKkJ,WACV5X,GAAO,8BA3KHuO,KA2KiD,QAAI,2BAEvDuH,EAAGpH,KAAKmJ,UACV7X,GAAO,+BAA+C,mCAAsC8V,EAAa,WAAI,cAAwB,KAEvI9V,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF8V,EAAGiC,eAAiBR,IAGrBvX,GADE8V,EAAGvK,MACE,wCAEA,gDAIU,IAAjBkd,EAAMtrB,OACR6C,GAAO,MAA0B,KAEjCA,GAAO,wBAAsC,0CAAwD,qCAAmD,2CAAkD,MAAgB,OAAc,cAAqB,eAA4B,gBAAuB,YAAyB,8BAA2C,kCAAuC8V,EAAY,UAAI,QAAqB,oBAAuC,OACneA,EAAGpH,KAAKmJ,UACV7X,GAAO,MAAmB,eAAgC,OAAoB,aAAuB,MAEvGA,GAAO,iBAAqC,OAGhDA,GAAO,MACHuX,IACFvX,GAAO,YAGX,OAAOA,g7EC9NQ,CACfopB,EAAK,0EACLhZ,YAAa,CACXiZ,YAAapC,GAAW7W,YAAYiZ,aAEtC5rB,KAAM,SACN6S,aAAc,CACZvE,OAAQ,CAAC,YACTud,EAAO,CAAC,YACRR,WAAY,CAAC,UACbI,MAAO,CAAClZ,IAAK,CAACU,SAAU,CAAC,YAE3BjZ,WAAY,CACVgG,KAAMwpB,GAAWxvB,WAAWgG,KAC5BsO,OAAQ,CAACtO,KAAM,WACfqrB,WAAY,CAACrrB,KAAM,WACnB6S,aAAc,CACZ7S,KAAM,QACNmS,MAAO,CAACnS,KAAM,WAEhBwpB,WAAY,CAACxpB,KAAM,UACnBwrB,UAAW,CAACxrB,KAAM,WAClByrB,MAAO,CAACzrB,KAAM,WACd6rB,EAAO,CAAC7rB,KAAM,WACd8N,MAAO,CAAC9N,KAAM,WACdN,OAAQ,CACN+S,MAAO,CACL,CAACzS,KAAM,WACP,CAACgT,MAAO,YC9BZrC,GAAa,4BAmBjB,SAAoBuM,EAASwD,GAG3B,IAAIhI,EAAQ5H,KAAK4H,MACjB,GAAIA,EAAM3G,SAASmL,GACjB,MAAU1gB,MAAM,WAAa0gB,EAAU,uBAEzC,IAAKvM,GAAWxN,KAAK+Z,GACnB,MAAU1gB,MAAM,WAAa0gB,EAAU,8BAEzC,GAAIwD,EAAY,CACd5P,KAAKgb,gBAAgBpL,GAAY,GAEjC,IAAIvQ,EAAWuQ,EAAW1gB,KAC1B,GAAIoG,MAAMhM,QAAQ+V,GAChB,IAAK,IAAItO,EAAE,EAAGA,EAAEsO,EAASnZ,OAAQ6K,IAC/BkqB,EAAS7O,EAAS/M,EAAStO,GAAI6e,QAEjCqL,EAAS7O,EAAS/M,EAAUuQ,GAG9B,IAAI8I,EAAa9I,EAAW8I,WACxBA,IACE9I,EAAWrR,GAASyB,KAAK2D,MAAMpF,IACjCma,EAAa,CACX/W,MAAO,CACL+W,EACA,CAAEjsB,EAAQ,mFAIhBmjB,EAAWF,eAAiB1P,KAAKmD,QAAQuV,GAAY,IAOzD,SAASuC,EAAS7O,EAAS/M,EAAUuQ,GAEnC,IADA,IAAIsL,EACKnqB,EAAE,EAAGA,EAAE6W,EAAM1hB,OAAQ6K,IAAK,CACjC,IAAIoqB,EAAKvT,EAAM7W,GACf,GAAIoqB,EAAGjsB,MAAQmQ,EAAU,CACvB6b,EAAYC,EACZ,OAICD,GAEHtT,EAAM/b,KADNqvB,EAAY,CAAEhsB,KAAMmQ,EAAU5B,MAAO,KAIvC,IAAIgS,EAAO,CACTrD,QAASA,EACTwD,WAAYA,EACZwL,QAAQ,EACR5f,KAAMgT,GACNnC,WAAYuD,EAAWvD,YAEzB6O,EAAUzd,MAAM5R,KAAK4jB,GACrB7H,EAAMwT,OAAOhP,GAAWqD,EAG1B,OA7BA7H,EAAM3G,SAASmL,GAAWxE,EAAMC,IAAIuE,IAAW,EA6BxCpM,SAUT,SAAoBoM,GAElB,IAAIqD,EAAOzP,KAAK4H,MAAMwT,OAAOhP,GAC7B,OAAOqD,EAAOA,EAAKG,WAAa5P,KAAK4H,MAAM3G,SAASmL,KAAY,MAUlE,SAAuBA,GAErB,IAAIxE,EAAQ5H,KAAK4H,aACVA,EAAM3G,SAASmL,UACfxE,EAAMC,IAAIuE,UACVxE,EAAMwT,OAAOhP,GACpB,IAAK,IAAIrb,EAAE,EAAGA,EAAE6W,EAAM1hB,OAAQ6K,IAE5B,IADA,IAAI0M,EAAQmK,EAAM7W,GAAG0M,MACZrM,EAAE,EAAGA,EAAEqM,EAAMvX,OAAQkL,IAC5B,GAAIqM,EAAMrM,GAAGgb,SAAWA,EAAS,CAC/B3O,EAAM/L,OAAON,EAAG,GAChB,MAIN,OAAO4O,SAWT,SAASgb,EAAgBpL,EAAYyL,GACnCL,EAAgBpsB,OAAS,KACzB,IAAImV,EAAI/D,KAAKsb,iBAAmBtb,KAAKsb,kBACFtb,KAAKmD,QAAQoY,IAAkB,GAElE,GAAIxX,EAAE6L,GAAa,OAAO,EAE1B,GADAoL,EAAgBpsB,OAASmV,EAAEnV,OACvBysB,EACF,MAAU3vB,MAAM,yCAA4CsU,KAAK8P,WAAW/L,EAAEnV,SAE9E,OAAO,shBCpIM4sB,GAEjBA,GAAIrzB,UAAU0b,SA0Ed,SAAkB4X,EAAclgB,GAC9B,IAAIwI,EACJ,GAA2B,iBAAhB0X,GAET,KADA1X,EAAI/D,KAAK0Z,UAAU+B,IACX,MAAU/vB,MAAM,8BAAgC+vB,EAAe,SAClE,CACL,IAAIxC,EAAYjZ,KAAKkZ,WAAWuC,GAChC1X,EAAIkV,EAAUpV,UAAY7D,KAAK8D,SAASmV,GAG1C,IAAI0B,EAAQ5W,EAAExI,IACG,IAAbwI,EAAE2D,IAAiB1H,KAAKpR,OAASmV,EAAEnV,QACvC,OAAO+rB,GArFTa,GAAIrzB,UAAUgb,QAgGd,SAAiB3F,EAAQke,GACvB,IAAIzC,EAAYjZ,KAAKkZ,WAAW1b,OAAQ9Q,EAAWgvB,GACnD,OAAOzC,EAAUpV,UAAY7D,KAAK8D,SAASmV,IAjG7CuC,GAAIrzB,UAAUsxB,UA8Gd,SAAmBjc,EAAQ5U,EAAK+yB,EAAiBD,GAC/C,GAAIpmB,MAAMhM,QAAQkU,GAAQ,CACxB,IAAK,IAAIzM,EAAE,EAAGA,EAAEyM,EAAOtX,OAAQ6K,IAAKiP,KAAKyZ,UAAUjc,EAAOzM,QAAIrE,EAAWivB,EAAiBD,GAC1F,OAAO1b,KAET,IAAIyE,EAAKzE,KAAKwE,OAAOhH,GACrB,QAAW9Q,IAAP+X,GAAiC,iBAANA,EAC7B,MAAU/Y,MAAM,4BAIlB,OAFAkwB,GAAY5b,KADZpX,EAAMsa,GAAQwB,YAAY9b,GAAO6b,IAEjCzE,KAAKwD,SAAS5a,GAAOoX,KAAKkZ,WAAW1b,EAAQme,EAAiBD,GAAO,GAC9D1b,MAxHTwb,GAAIrzB,UAAU0zB,cAqId,SAAuBre,EAAQ5U,EAAKkzB,GAElC,OADA9b,KAAKyZ,UAAUjc,EAAQ5U,EAAKkzB,GAAgB,GACrC9b,MAtITwb,GAAIrzB,UAAUunB,eAiJd,SAAwBlS,EAAQue,GAC9B,IAAIpT,EAAUnL,EAAOmL,EACrB,QAAgBjc,IAAZic,GAA2C,iBAAXA,EAClC,MAAUjd,MAAM,4BAElB,KADAid,EAAUA,GAAW3I,KAAK2D,MAAMqY,aAgBlC,SAAqBxyB,GACnB,IAAIqvB,EAAOrvB,EAAKma,MAAMkV,KAMtB,OALArvB,EAAKma,MAAMqY,YAA6B,iBAARnD,EACJrvB,EAAKgb,OAAOqU,IAASA,EACrBrvB,EAAKkwB,UAAUuC,IACbA,QACAvvB,EACvBlD,EAAKma,MAAMqY,YAvB6BA,CAAYhc,OAIzD,OAFAA,KAAKkI,OAAOC,KAAK,6BACjBnI,KAAKpR,OAAS,MACP,EAET,IAAI+rB,EAAQ3a,KAAK6D,SAAS8E,EAASnL,GACnC,IAAKmd,GAASoB,EAAiB,CAC7B,IAAI3V,EAAU,sBAAwBpG,KAAK8P,aAC3C,GAAiC,OAA7B9P,KAAK2D,MAAM+L,eACV,MAAUhkB,MAAM0a,GADmBpG,KAAKkI,OAAOte,MAAMwc,GAG5D,OAAOuU,GAhKTa,GAAIrzB,UAAUuxB,UAqLd,SAAmBwC,GACjB,IAAIjD,EAAYkD,GAAcnc,KAAMkc,GACpC,cAAejD,GACb,IAAK,SAAU,OAAOA,EAAUpV,UAAY7D,KAAK8D,SAASmV,GAC1D,IAAK,SAAU,OAAOjZ,KAAK0Z,UAAUT,GACrC,IAAK,YAAa,OAKtB,SAA4BzvB,EAAM6Z,GAChC,IAAIY,EAAMf,GAAQ1F,OAAOlV,KAAKkB,EAAM,CAAEgU,OAAQ,IAAM6F,GACpD,GAAIY,EAAK,CACP,IAAIzG,EAASyG,EAAIzG,OACb4F,EAAOa,EAAIb,KACXY,EAASC,EAAID,OACbD,EAAIqY,GAAc9zB,KAAKkB,EAAMgU,EAAQ4F,OAAM1W,EAAWsX,GAS1D,OARAxa,EAAK6yB,WAAWhZ,GAAO,IAAII,GAAa,CACtCJ,IAAKA,EACLlP,UAAU,EACVqJ,OAAQA,EACR4F,KAAMA,EACNY,OAAQA,EACRH,SAAUE,IAELA,GApBkBuY,CAAmBtc,KAAMkc,KAzLtDV,GAAIrzB,UAAUo0B,aAiOd,SAAsBd,GACpB,GAAIA,aAAwBlxB,OAG1B,OAFAiyB,GAAkBxc,KAAMA,KAAKwD,SAAUiY,GACvCe,GAAkBxc,KAAMA,KAAKuD,MAAOkY,GAC7Bzb,KAET,cAAeyb,GACb,IAAK,YAIH,OAHAe,GAAkBxc,KAAMA,KAAKwD,UAC7BgZ,GAAkBxc,KAAMA,KAAKuD,OAC7BvD,KAAKmQ,OAAOG,QACLtQ,KACT,IAAK,SACH,IAAIiZ,EAAYkD,GAAcnc,KAAMyb,GAIpC,OAHIxC,GAAWjZ,KAAKmQ,OAAOE,IAAI4I,EAAUwD,iBAClCzc,KAAKwD,SAASiY,UACdzb,KAAKuD,MAAMkY,GACXzb,KACT,IAAK,SACH,IAAIpI,EAAYoI,KAAK2D,MAAM/L,UACvB6kB,EAAW7kB,EAAYA,EAAU6jB,GAAgBA,EACrDzb,KAAKmQ,OAAOE,IAAIoM,GAChB,IAAIhY,EAAKzE,KAAKwE,OAAOiX,GACjBhX,IACFA,EAAKvB,GAAQwB,YAAYD,UAClBzE,KAAKwD,SAASiB,UACdzE,KAAKuD,MAAMkB,IAGxB,OAAOzE,MA7PTwb,GAAIrzB,UAAUu0B,UA4Zd,SAAmB7iB,EAAM+I,GACF,iBAAVA,IAAoBA,EAAarY,OAAOqY,IAEnD,OADA5C,KAAKwN,SAAS3T,GAAQ+I,EACf5C,MA9ZTwb,GAAIrzB,UAAU2nB,WAoYd,SAAoBlhB,EAAQ9E,GAE1B,KADA8E,EAASA,GAAUoR,KAAKpR,QACX,MAAO,YAMpB,IAJA,IAAI+tB,OAAkCjwB,KADtC5C,EAAUA,GAAW,IACG6yB,UAA0B,KAAO7yB,EAAQ6yB,UAC7DngB,OAA8B9P,IAApB5C,EAAQ0S,QAAwB,OAAS1S,EAAQ0S,QAE3DogB,EAAO,GACF7rB,EAAE,EAAGA,EAAEnC,EAAO1I,OAAQ6K,IAAK,CAClC,IAAIgG,EAAInI,EAAOmC,GACXgG,IAAG6lB,GAAQpgB,EAAUzF,EAAE8lB,SAAW,IAAM9lB,EAAEqP,QAAUuW,GAE1D,OAAOC,EAAKpxB,MAAM,GAAImxB,EAAUz2B,SA9YlCs1B,GAAIrzB,UAAU+wB,WA0Qd,SAAoB1b,EAAQse,EAAgBjD,EAAMiE,GAChD,GAAqB,iBAAVtf,GAAuC,kBAAVA,EACtC,MAAU9R,MAAM,sCAClB,IAAIkM,EAAYoI,KAAK2D,MAAM/L,UACvB6kB,EAAW7kB,EAAYA,EAAU4F,GAAUA,EAC3Cuf,EAAS/c,KAAKmQ,OAAOjmB,IAAIuyB,GAC7B,GAAIM,EAAQ,OAAOA,EAEnBD,EAAkBA,IAAgD,IAA7B9c,KAAK2D,MAAMqZ,cAEhD,IAAIvY,EAAKvB,GAAQwB,YAAY1E,KAAKwE,OAAOhH,IACrCiH,GAAMqY,GAAiBlB,GAAY5b,KAAMyE,GAE7C,IACIwY,EADAC,GAA6C,IAA9Bld,KAAK2D,MAAM+L,iBAA6BoM,EAEvDoB,KAAkBD,EAAgBxY,GAAMA,GAAMvB,GAAQwB,YAAYlH,EAAOmL,KAC3E3I,KAAK0P,eAAelS,GAAQ,GAE9B,IAAI6H,EAAYnC,GAAQ+B,IAAI3c,KAAK0X,KAAMxC,GAEnCyb,EAAY,IAAIxV,GAAa,CAC/BgB,GAAIA,EACJjH,OAAQA,EACR6H,UAAWA,EACXoX,SAAUA,EACV5D,KAAMA,IAGK,KAATpU,EAAG,IAAaqY,IAAiB9c,KAAKuD,MAAMkB,GAAMwU,GACtDjZ,KAAKmQ,OAAOC,IAAIqM,EAAUxD,GAEtBiE,GAAgBD,GAAejd,KAAK0P,eAAelS,GAAQ,GAE/D,OAAOyb,GA1STuC,GAAIrzB,UAAU2b,SA+Sd,SAAkBmV,EAAW7V,GAC3B,GAAI6V,EAAU9L,UAOZ,OANA8L,EAAUpV,SAAWuJ,EACrBA,EAAa5P,OAASyb,EAAUzb,OAChC4P,EAAaxe,OAAS,KACtBwe,EAAahK,KAAOA,GAAcgK,GACF,IAA5B6L,EAAUzb,OAAOkK,IACnB0F,EAAa1F,GAAS,GACjB0F,EAIT,IAAI+P,EAMApZ,EARJkV,EAAU9L,WAAY,EAGlB8L,EAAUJ,OACZsE,EAAcnd,KAAK2D,MACnB3D,KAAK2D,MAAQ3D,KAAKod,WAIpB,IAAMrZ,EAAIqY,GAAc9zB,KAAK0X,KAAMiZ,EAAUzb,OAAQ4F,EAAM6V,EAAU5T,WACrE,MAAMtO,GAEJ,aADOkiB,EAAUpV,SACX9M,UAGNkiB,EAAU9L,WAAY,EAClB8L,EAAUJ,OAAM7Y,KAAK2D,MAAQwZ,GAOnC,OAJAlE,EAAUpV,SAAWE,EACrBkV,EAAUvM,KAAO3I,EAAE2I,KACnBuM,EAAU3V,OAASS,EAAET,OACrB2V,EAAU7V,KAAOW,EAAEX,KACZW,EAIP,SAASqJ,IAEP,IAAIiQ,EAAYpE,EAAUpV,SACtBrU,EAAS6tB,EAAUhQ,MAAMrN,KAAMsN,WAEnC,OADAF,EAAaxe,OAASyuB,EAAUzuB,OACzBY,IAvVXgsB,GAAIrzB,UAAUywB,aAAezc,GAE7Bqf,GAAIrzB,UAAUm1B,WAAaC,GAC3B/B,GAAIrzB,UAAUq1B,WAAaD,GAC3B/B,GAAIrzB,UAAUs1B,cAAgBF,GAC9B/B,GAAIrzB,UAAU6yB,gBAAkBuC,GAGhC/B,GAAIhP,gBAAkBC,GAAavG,WACnCsV,GAAIhV,gBAAkBiG,GAAalG,WACnCiV,GAAIkC,EAAkBA,GAEtB,IAAIzB,GAAiB,yCAEjB0B,GAAsB,CAAE,mBAAoB,cAAe,cAAe,kBAC1EC,GAAoB,CAAC,eAQzB,SAASpC,GAAIrb,GACX,KAAMH,gBAAgBwb,IAAM,OAAO,IAAIA,GAAIrb,GN9C5B,IACXyH,EAcAiW,EMgCJ1d,EAAOH,KAAK2D,MAAQ5D,EAAKlW,KAAKsW,IAAS,GAwbzC,SAAmB3W,GACjB,IAAI0e,EAAS1e,EAAKma,MAAMuE,OACxB,IAAe,IAAXA,EACF1e,EAAK0e,OAAS,CAAC4V,IAAKC,GAAM5V,KAAM4V,GAAMn0B,MAAOm0B,QACxC,CAEL,QADerxB,IAAXwb,IAAsBA,EAASve,WACZ,iBAAVue,GAAsBA,EAAO4V,KAAO5V,EAAOC,MAAQD,EAAOte,OACrE,MAAU8B,MAAM,qDAClBlC,EAAK0e,OAASA,GA/bhB8V,CAAUhe,MACVA,KAAKwD,SAAW,GAChBxD,KAAKuD,MAAQ,GACbvD,KAAKqc,WAAa,GAClBrc,KAAKwN,SAAWD,GAAQpN,EAAKyC,QAE7B5C,KAAKmQ,OAAShQ,EAAKzX,OAAS,IAAIwnB,GAChClQ,KAAKuZ,gBAAkB,GACvBvZ,KAAKkN,cAAgB,GACrBlN,KAAK4H,QNxDDA,EAAQ,CACV,CAAE1Y,KAAM,SACNuO,MAAO,CAAE,CAAE2E,QAAW,CAAC,qBACd,CAAEC,QAAW,CAAC,qBAAuB,aAAc,WAC9D,CAAEnT,KAAM,SACNuO,MAAO,CAAE,YAAa,YAAa,UAAW,WAChD,CAAEvO,KAAM,QACNuO,MAAO,CAAE,WAAY,WAAY,QAAS,WAAY,gBACxD,CAAEvO,KAAM,SACNuO,MAAO,CAAE,gBAAiB,gBAAiB,WAAY,eAAgB,gBAC9D,CAAEvU,WAAc,CAAC,uBAAwB,wBACpD,CAAEuU,MAAO,CAAE,OAAQ,QAAS,OAAQ,MAAO,QAAS,QAAS,QAAS,SAYlEoK,IAAMnM,GATRmiB,EAAM,CAAE,OAAQ,aAUpBjW,EAAMnM,MAAQC,GAFF,CAAE,SAAU,UAAW,SAAU,QAAS,SAAU,UAAW,SAI3EkM,EAAM7c,SAAQ,SAAUkzB,GACtBA,EAAMxgB,MAAQwgB,EAAMxgB,MAAM9N,KAAI,SAAUyc,GACtC,IAAI8R,EACJ,GAAsB,iBAAX9R,EAAqB,CAC9B,IAAIxjB,EAAMP,OAAO6S,KAAKkR,GAAS,GAC/B8R,EAAe9R,EAAQxjB,GACvBwjB,EAAUxjB,EACVs1B,EAAanzB,SAAQ,SAAU0F,GAC7BotB,EAAIhyB,KAAK4E,GACTmX,EAAMC,IAAIpX,IAAK,KASnB,OANAotB,EAAIhyB,KAAKugB,GACExE,EAAMC,IAAIuE,GAAW,CAC9BA,QAASA,EACT5Q,KAAM2iB,GAAY/R,GAClBC,WAAY6R,MAKhBtW,EAAMC,IAAIwC,EAAW,CACnB+B,QAAS,WACT5Q,KAAM2iB,GAAY9T,GAGhB4T,EAAM/uB,OAAM0Y,EAAMnM,MAAMwiB,EAAM/uB,MAAQ+uB,MAG5CrW,EAAM3G,SAAWvF,GAAOmiB,EAAIl3B,OAxCb,CACb,UAAW,MAAO,KAAM,QAAS,SAAU,QAC3C,cAAe,UAAW,cAC1B,WAAY,WAAY,YACxB,mBAAoB,kBACpB,kBAAmB,OAAQ,UAoC7BihB,EAAMwT,OAAS,GAERxT,GMDP5H,KAAKwE,OAwTP,SAAqBrE,GACnB,OAAQA,EAAK+E,UACX,IAAK,OAAQ,OAAOkZ,GACpB,IAAK,KAAM,OAAO5Z,GAClB,QAAS,OAAO6Z,IA5TJC,CAAYne,GAE1BA,EAAKyX,aAAezX,EAAKyX,cAAgB7R,SACf,YAAtB5F,EAAKoe,gBAA6Bpe,EAAKkV,wBAAyB,QAC7C3oB,IAAnByT,EAAKvI,YAAyBuI,EAAKvI,UAAY4X,IACnDxP,KAAKod,UAgaP,SAA8B5zB,GAE5B,IADA,IAAIg1B,EAAWze,EAAKlW,KAAKL,EAAKma,OACrB5S,EAAE,EAAGA,EAAE4sB,EAA4B5sB,WACnCytB,EAASb,GAAoB5sB,IACtC,OAAOytB,EApaUC,CAAqBze,MAElCG,EAAKoN,SAwYX,SAA2B/jB,GACzB,IAAK,IAAIqQ,KAAQrQ,EAAKma,MAAM4J,QAAS,CAEnC/jB,EAAKkzB,UAAU7iB,EADFrQ,EAAKma,MAAM4J,QAAQ1T,KA1YhB6kB,CAAkB1e,MAChCG,EAAKc,UA+YX,SAA4BzX,GAC1B,IAAK,IAAIqQ,KAAQrQ,EAAKma,MAAM1C,SAAU,CAEpCzX,EAAK8zB,WAAWzjB,EADFrQ,EAAKma,MAAM1C,SAASpH,KAjZjB8kB,CAAmB3e,MAiXxC,SAA8BxW,GAC5B,IAAIo1B,EACAp1B,EAAKma,MAAMpF,GAEb/U,EAAKqyB,cADL+C,EAAcC,GACkBD,EAAY9W,GAAK,GAEnD,IAAwB,IAApBte,EAAKma,MAAMkV,KAAgB,OAC/B,IAAIH,EAAaoG,GACbt1B,EAAKma,MAAMpF,IAAOma,EAAagF,GAAgBhF,EAAYkF,KAC/Dp0B,EAAKqyB,cAAcnD,EAAYuD,IAAgB,GAC/CzyB,EAAK+Z,MAAM,iCAAmC0Y,GA1X9C8C,CAAqB/e,MACG,iBAAbG,EAAK0Y,MAAkB7Y,KAAK6b,cAAc1b,EAAK0Y,MACtD1Y,EAAKgK,UAAUnK,KAAKsd,WAAW,WAAY,CAAC5E,WAAY,CAACxpB,KAAM,aA4XrE,SAA2B1F,GACzB,IAAIw1B,EAAcx1B,EAAKma,MAAMsb,QAC7B,IAAKD,EAAa,OAClB,GAAI1pB,MAAMhM,QAAQ01B,GAAcx1B,EAAKiwB,UAAUuF,QAC1C,IAAK,IAAIp2B,KAAOo2B,EAAax1B,EAAKiwB,UAAUuF,EAAYp2B,GAAMA,GA/XnEs2B,CAAkBlf,MA2JpB,SAASmc,GAAc3yB,EAAM0yB,GAE3B,OADAA,EAAShZ,GAAQwB,YAAYwX,GACtB1yB,EAAKga,SAAS0Y,IAAW1yB,EAAK+Z,MAAM2Y,IAAW1yB,EAAK6yB,WAAWH,GA8CxE,SAASM,GAAkBhzB,EAAMy1B,EAAShN,GACxC,IAAK,IAAIiK,KAAU+C,EAAS,CAC1B,IAAIhG,EAAYgG,EAAQ/C,GACnBjD,EAAUJ,MAAU5G,IAASA,EAAM5f,KAAK6pB,KAC3C1yB,EAAK2mB,OAAOE,IAAI4I,EAAUwD,iBACnBwC,EAAQ/C,KAqGrB,SAAS1X,GAAOhH,GAEd,OADIA,EAAOsK,GAAK9H,KAAKkI,OAAOC,KAAK,qBAAsB3K,EAAOsK,GACvDtK,EAAOiH,GAIhB,SAAS4Z,GAAQ7gB,GAEf,OADIA,EAAOiH,IAAIzE,KAAKkI,OAAOC,KAAK,oBAAqB3K,EAAOiH,IACrDjH,EAAOsK,EAIhB,SAASsW,GAAY5gB,GACnB,GAAIA,EAAOsK,GAAOtK,EAAOiH,IAAMjH,EAAOsK,GAAOtK,EAAOiH,GAClD,MAAU/Y,MAAM,mCAClB,OAAO8R,EAAOsK,GAAOtK,EAAOiH,GA+E9B,SAASmX,GAAYpyB,EAAMib,GACzB,GAAIjb,EAAKga,SAASiB,IAAOjb,EAAK+Z,MAAMkB,GAClC,MAAU/Y,MAAM,0BAA4B+Y,EAAK,oBAyBrD,SAASsZ,eCnfcoB,UAEjB9Y,MAAUmV,eAAiB,+JAW7B4D,yBAaEC,sCAEJz1B,kIAaY,gkBAwFL,uQCzHC01B,wCAOE5zB,oMAmB2B6zB,8EAYvBC,+GAWZnmB,OAAYjD,SACZ,kCAEO,0BAIc4G,QAExByiB,oGChED,IAAIC,WAAIl5B,oDACNk5B,WACG,6BAECA,4GAgNE,cAAWn5B,OAEFo5B,gDAMbD,OAAaE,0OA2Be,OAC1B14B,sxBC/Pe,CAACf,+BAEA05B,8GAKlBpb,gNDqBA7V,6DAGyCA,oBAKzCjJ,KAAakE,EAAKpD,sCAKYsK,IAAK,2GAegB,QAA/BvK,mCAA+B,IAAAA,EAAAA,EAAI,KAC1CkL,+DASLqV,EAAKtgB,QAAQq5B,SAAS55B,WAAa,mDAEtCW,wEAMiBkgB,4CAGpBA,+DAQKA,oHAKIxgB,6CAM+Bw5B,uLAmB7BhZ,SAAYtgB,qCAGlByU,sGAIY8kB,EAASC,2BAKJC,sCAYN,IAARC,EAAYC,gCAeK,gBAArBJ,sDAMcv5B,8EAGF45B,gDASZ,cADaC,WAAmCp6B,eACtC6gB,UAAauZ,8BAMN75B,2CACPiG,oIAkBf/G"} \ No newline at end of file +{"version":3,"file":"ainsley.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.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/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/ucs2length.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/_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/index.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/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/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/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // blobs\n if (realm.Blob && object instanceof realm.Blob) {\n clone = new Blob([object], { type: object.type });\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):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 {\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 \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 state to ,\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 \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 Gary Court\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 {\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(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>((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 = ((\"\").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 = [];\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 = [];\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 = [];\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(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(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(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,\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 = {\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 = {\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 = {\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\n// do not edit .js files directly - edit src/index.jst\n\n\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 if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\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\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\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 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, strictNumbers, 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 (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, 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, strictNumbers, 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= 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= 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\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= 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%\\\\^`{|}]|%[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\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__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 (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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';\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';\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 if ($property == '__proto__') continue;\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : 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 } 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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 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 if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\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) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : 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 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.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : 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) + ' 0 : 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', it.opts.strictNumbers, 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\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} 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 {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["isObject","val","combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","rulesListWithoutVariations","isArray","options","ainsleyRule","map","toStringFunction","Function","prototype","create","Object","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","hasOwnProperty","propertyIsEnumerable","SUPPORTS","WeakMap","getCleanClone","object","realm","constructor","Constructor","__proto__","call","indexOf","getObjectCloneLoose","handleCopy","cache","clone","key","set","symbols","length_1","symbol","getObjectCloneStrict","properties","concat","property","descriptor","get","value","error","Array","GLOBAL_THIS","self","window","global","console","copy","isStrict","getObjectClone","has","regExp","flags","Date","getTime","RegExp","source","ignoreCase","multiline","unicode","sticky","lastIndex","Map","forEach","Set","add","Blob","type","Buffer","isBuffer","allocUnsafe","ArrayBuffer","isView","buffer","slice","then","Error","WeakSet","_keys","push","_values","createCache","strict","merge","sets","xl","x","join","subexp","str","typeOf","o","undefined","toString","split","pop","shift","toUpperCase","toArray","obj","setInterval","assign","target","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","DEC_OCTET_RELAXED$","UNRESERVED$$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","IPRIVATE$$","IPV6ADDRESS$","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","RangeError","array","fn","result","mapDomain","string","parts","replace","ucs2decode","output","counter","charCodeAt","extra","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","oldi","w","t","baseMinusT","out","splice","fromCodePoint","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","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","longestZeroFields","reduce","acc","field","lastLongest","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","e","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","serialize","authority","charAt","absolutePath","resolveComponents","relative","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","http","isSecure","wsComponents","secure","resourceName","ws","O","ATEXT$$","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","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","keys","valueOf","checkDataType","checkDataTypes","dataTypes","data","strictNumbers","code","types","toHash","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","require$$0","ucs2length","len","pos","varOccurences","dataVar","varReplace","expr","schemaHasRules","schema","rules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","toQuotedString","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","dataType","negate","EQUAL","AND","OK","NOT","arr","hash","IDENTIFIER","SINGLE_QUOTE","util","this","traverse","module","opts","cb","_traverse","pre","post","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","arrayKeywords","propsKeywords","keywords","allKeys","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","patternProperties","dependencies","default","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","format","maxItems","minItems","uniqueItems","maxProperties","minProperties","compile","root","ref","refVal","_refs","_schemas","SchemaObject","inlineRef","_opts","inlineRefs","validate","_compile","v","baseId","res","resolveSchema","p","URI","refPath","_getFullPath","getFullPath","_getId","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","fullPath","url","ids","schemaId","baseIds","fullPaths","localRefs","PREVENT_SCOPE_CHANGE","part","$ref","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","count","Infinity","TRAILING_SLASH_HASH","Validation","errorSubclass","message","ajv","validation","MissingRef","MissingRefError","missingRef","missingSchema","Subclass","cmp","f","cycles","node","seen","stringify","toJSON","isFinite","JSON","TypeError","seenIndex","it","$keyword","$ruleType","$async","$refKeywords","RULES","all","$id","strictKeywords","$unknownKwd","$keywordsMsg","logger","warn","isTop","async","sourceCode","processCode","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$valid","$$outStack","createErrors","messages","verbose","__err","compositeRule","$top","rootId","dataPathArr","useDefaults","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","nullable","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","arr1","$type","$i","l1","$parentData","arr2","i2","l2","arr3","$propertyKey","i3","l3","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","keyword","implements","impl","$ruleImplementsSomeKeyword","ValidationError","errorClasses","refs","patterns","patternsHash","defaults","defaultsHash","customRules","checkCompiling","compilation","_compilations","compiling","callValidate","apply","arguments","formats","_formats","localCompile","cv","endCompiling","_schema","_root","isRoot","validateGenerator","errorPath","resolveRef","usePattern","useCustomRule","vars","refValCode","patternCode","defaultCode","customRuleCode","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","replaceLocalRef","removeLocalRef","refId","inline","u","regexStr","valueStr","stableStringify","rule","validateSchema","deps","definition","every","errorsText","macro","compIndex","statement","Cache","_cache","put","del","clear","DATE","DAYS","TIME","HOSTNAME","URITEMPLATE","URL","JSON_POINTER_URI_FRAGMENT","mode","date","month","day","year","isLeapYear","time","full","hour","minute","second","fast","date-time","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","$schemaValue","$isData","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","$wasComposite","l","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$additionalItems","$currErrSchemaPath","require$$11","require$$12","require$$13","require$$14","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$regexp","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","$hasDefault","i4","$invalidName","$propertySch","$loopRequired","$itemType","require$$23","KEYWORDS","metaSchema","keywordsJsonPointers","compileAsync","meta","callback","loadSchema","loadMetaSchemaOf","schemaObj","_addSchema","_compileAsync","getSchema","Promise","added","schemaPromise","_loadingSchemas","removePromise","addSchema","loadMissingSchema","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","simpleTypes","validateKeyword","_addRule","ruleGroup","rg","custom","throwError","_validateKeyword","definitionSchema","Ajv","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","compileSchema","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","addKeyword","customKeyword","getKeyword","removeKeyword","$dataMetaSchema","META_IGNORE_OPTIONS","META_SUPPORT_DATA","ALL","log","noop","setLogger","group","implKeywords","ruleModules","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","require$$1","require$$2","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","maybeAinsley","lowestLength","formatError","defaultGetConfig","getFlatConfig","import","getConfig","csso","rawCSS","styleEl","children","child","definedVariables","thisVars","variable","parentVariable","mod","parentValue","variation","variations"],"mappings":"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"} \ No newline at end of file diff --git a/dist/macro/doSync.d.ts b/dist/macro/doSync.d.ts deleted file mode 100644 index cfc7135..0000000 --- a/dist/macro/doSync.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/// -import { SpawnSyncOptions } from 'child_process'; -export declare type JSONPrimitive = string | number | boolean | null | undefined; -export declare type JSONValue = JSONObject | JSONArray | JSONPrimitive; -export declare type JSONArray = JSONValue[]; -export interface JSONObject extends Record { -} -export declare type AsyncFn = (...v: I) => Promise; -export declare const doSync: (f: AsyncFn, opts?: SpawnSyncOptions) => (...ip: I) => O; -export default doSync; diff --git a/dist/macro/doSync.spec.d.ts b/dist/macro/doSync.spec.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/macro/doSync.spec.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/macro/index.d.ts b/dist/macro/index.d.ts deleted file mode 100644 index 5298df7..0000000 --- a/dist/macro/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: any; -export default _default; diff --git a/dist/macro/index.js b/dist/macro/index.js deleted file mode 100644 index 7e4ee09..0000000 --- a/dist/macro/index.js +++ /dev/null @@ -1,91 +0,0 @@ -/*! ainsley | MIT License | @tbjgolden | tom.bio */ -'use strict'; - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var path = _interopDefault(require('path')); -var fs = _interopDefault(require('fs')); -var babelPluginMacros = require('babel-plugin-macros'); -var JSON5 = _interopDefault(require('json5')); -var child_process = require('child_process'); - -const gen = (input, fn) => ` -const main = async () => { - console.log(JSON.stringify(await (${fn})(...${JSON.stringify(input)}))); -} -main().catch(e => console.error(e)); -`; - -const doSync = (fn, { - maxBuffer = 2e9, - ...etc -} = {} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -) => (...ip) => { - const proc = child_process.spawnSync('node', ['-'], { - input: gen(ip, fn), - maxBuffer, - ...etc - }); - const stderr = proc.stderr.toString('utf-8').trim(); - if (stderr) console.error(stderr); - if (proc.error) throw proc.error; - return JSON.parse(proc.stdout.toString('utf-8')); -}; - -const minifyAinsley = doSync(async (inputAinsley, dirName) => { - const { - flatten, - minify // eslint-disable-next-line @typescript-eslint/no-var-requires - - } = require(dirName); - - const flatAinsley = await flatten(inputAinsley); - return minify(flatAinsley); -}); -var index = babelPluginMacros.createMacro(({ - references, - state, - babel -}) => { - references.default.forEach(referencePath => { - if (referencePath.parentPath.type === 'CallExpression') { - try { - if (state.file !== undefined && state.file !== null) { - const dirPath = path.dirname(state.file.opts.filename); - - if (dirPath) { - let args = referencePath.parentPath.get('arguments'); - if (!Array.isArray(args)) args = [args]; - - if (args.length > 0) { - const ainsley = fs.readFileSync(path.resolve(dirPath, args[0].evaluate().value), 'utf8'); - const ast = babel.parseSync(`const ainsley = ${JSON.stringify(minifyAinsley(JSON5.parse(ainsley), path.join(__dirname, '../..')))}`); - - if (ast !== null && ast.type === 'File') { - const firstStatement = ast.program.body[0]; - - if (firstStatement !== undefined) { - if (firstStatement.type === 'VariableDeclaration') { - const firstDeclaration = firstStatement.declarations[0]; - - if (firstDeclaration.init !== null) { - referencePath.parentPath.replaceWith(firstDeclaration.init); - return; - } - } - } - } - } - } - } - } catch (err) { - throw err; // - } - - throw new Error(`Error with ainsley/macro call`); - } - }); -}); - -module.exports = index; -//# sourceMappingURL=index.js.map diff --git a/dist/macro/index.js.map b/dist/macro/index.js.map deleted file mode 100644 index 127da1a..0000000 --- a/dist/macro/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../../src/macro/index.ts"],"sourcesContent":["import path from 'path'\nimport fs from 'fs'\nimport { createMacro } from 'babel-plugin-macros'\nimport JSON5 from 'json5'\nimport { doSync } from './doSync'\nimport { Ainsley } from '..'\n\nconst minifyAinsley = doSync(async (inputAinsley, dirName) => {\n const {\n flatten,\n minify\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n } = require(dirName as string)\n\n const flatAinsley = await flatten(inputAinsley as Ainsley)\n return minify(flatAinsley)\n})\n\nexport default createMacro(({ references, state, babel }) => {\n references.default.forEach((referencePath) => {\n if (referencePath.parentPath.type === 'CallExpression') {\n try {\n if (state.file !== undefined && state.file !== null) {\n const dirPath = path.dirname(state.file.opts.filename as string)\n\n if (dirPath) {\n let args = referencePath.parentPath.get('arguments')\n if (!Array.isArray(args)) args = [args]\n\n if (args.length > 0) {\n const ainsley = fs.readFileSync(\n path.resolve(dirPath, args[0].evaluate().value),\n 'utf8'\n )\n\n const ast = babel.parseSync(\n `const ainsley = ${JSON.stringify(\n minifyAinsley(\n JSON5.parse(ainsley),\n path.join(__dirname, '../..')\n )\n )}`\n )\n\n if (ast !== null && ast.type === 'File') {\n const firstStatement = ast.program.body[0]\n if (firstStatement !== undefined) {\n if (firstStatement.type === 'VariableDeclaration') {\n const firstDeclaration = firstStatement.declarations[0]\n\n if (firstDeclaration.init !== null) {\n referencePath.parentPath.replaceWith(\n firstDeclaration.init\n )\n return\n }\n }\n }\n }\n }\n }\n }\n } catch (err) {\n throw err\n //\n }\n throw new Error(`Error with ainsley/macro call`)\n }\n })\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcE,IAAA;AACA,IAAA;;;;QAKE,4BAA4B;gBACtB;;;;;;;;0CAMoB;;6CAEG;4CACH;;;oDAeM;;;;uFAMD;;;;sBAenB;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/macro/index.spec.d.ts b/dist/macro/index.spec.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/macro/index.spec.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/types.d.ts b/dist/types.d.ts index 0096b8a..fa81049 100644 --- a/dist/types.d.ts +++ b/dist/types.d.ts @@ -2,7 +2,10 @@ export interface AinsleyAbbreviationMapObject { [propName: string]: string | number; } export declare type AinsleyRule = [string, Array<[string, string | number]>]; -export declare type AinsleyPropertyOrPlaceholder = [string, AinsleyAbbreviationMapObject]; +export declare type AinsleyPropertyOrPlaceholder = [ + string, + AinsleyAbbreviationMapObject +]; export declare type AinsleyLeaf = AinsleyRule | AinsleyPropertyOrPlaceholder | string; export declare type AinsleyChild = Ainsley | AinsleyLeaf; export declare type AinsleyVariation = Array<[string, string]>; diff --git a/package.json b/package.json index 57f6268..6b15712 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,9 @@ }, "husky": { "hooks": { - "precommit": "yarn test", - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + "pre-commit": "yarn test", + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", + "pre-push": "yarn test" } }, "repository": { diff --git a/rollup.config.js b/rollup.config.js index 5c73efc..32c1f17 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -97,7 +97,7 @@ const getPlugins = (bundleType) => [ babel({ babelrc: false, exclude: 'node_modules/**', - presets: [['@babel/env', { loose: true, modules: false }], '@babel/react'], + presets: [['@babel/env', { loose: true, modules: false }]], plugins: ['@babel/transform-runtime', 'minify-builtins'], runtimeHelpers: true }), diff --git a/scripts/jest/shield.svg b/scripts/jest/shield.svg index 759999c..fb74f34 100644 --- a/scripts/jest/shield.svg +++ b/scripts/jest/shield.svg @@ -1 +1 @@ -coverage93% \ No newline at end of file +coverage96% \ No newline at end of file diff --git a/scripts/perf/test.js b/scripts/perf/test.js index d924a60..a99d4c8 100644 --- a/scripts/perf/test.js +++ b/scripts/perf/test.js @@ -1,3 +1,4 @@ +// prettier-ignore module.exports = { children: [ '*,::after,::before{box-sizing:border-box;outline-offset:0;border:0 solid}[type=button],[type=date],[type=datetime-local],[type=email],[type=file],[type=image],[type=month],[type=number],[type=password],[type=reset],[type=search],[type=submit],[type=tel],[type=text],[type=time],[type=url],[type=week],a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,button,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,time,tt,u,ul,var,video{margin:0;padding:0;border:0 solid;background:0 0;font:inherit;color:inherit;text-align:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}html{overflow-y:scroll;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::after,blockquote::before,q::after,q::before{content:none}textarea{resize:vertical;overflow:auto}applet,canvas,img,object,svg,video{max-width:100%;height:auto}', diff --git a/tsconfig.build.json b/tsconfig.build.json index d777a64..1a1f471 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -7,7 +7,6 @@ "downlevelIteration": true, "esModuleInterop": true, "importHelpers": true, - "jsx": "react", "lib": ["es2019", "dom"], "module": "esnext", "moduleResolution": "node",