{"mappings":"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,CAC1BzsG,WAAY,CACV0sG,uBAAwB,IACxBC,UAAW,MACX1sG,SAAU,WACVE,UAAW,YACXysG,QAAS,YAYAC,EAAkB,CAC7B33E,cAAe,gBACfC,qBAAsB,SACtBo1E,iBAAkB,mBAClBuC,WAAY,aACZxC,iBAAkB,mBAClBF,eAAgB,iBAChBI,YAAa,cACbuC,0BAA2B,4BAC3BtC,aAAc,eACduC,OAAQ,SACRtC,KAAM,OACNE,SAAU,WACVD,kBAAmB,oBACnBE,cAAe,gBACfC,oBAAqB,sBACrBK,mBAAoB,QACpBJ,MAAO,QACP11E,WAAY,aACZ43E,uBAAwB,yBACxBC,iBAAkB,mBAClB/C,UAAW,YACXgD,gBAAiB,kBACjBC,aAAc,gBAGHC,EAAW,GACXC,EAAU,IAQVC,EAA2B,SAE3BC,EAA8B,uNAE9BC,EAAuC,CAClD,8BACA,gBACA,iBACA,eACA,OACA,aACA,cACA,oBACA,aACA,yBACA,YACA,kBACA,kBACA,gCACA,eACA,gBACA,sBACA,mBACA,mBACA,cACA,gBACA,OACA,gBACA,SACA,OACA,qBACA,mBACA,4BACA,eACA,qBACA,mBACA,+BACA,sBACA,mBACA,oBACA,aACA,gCACA,wBACA,gBACA,oBACA,WACA,oBACA,gBACA,sBACA,mBACA,+BACA,4BACA,oBACA,sBACA,0BACA,0BACA,kCACA,gCACA,8BACA,gCACA,6BACA,6BACA,2BACA,wBACA,yBACA,0BACA,4BACA,iBACA,iCACA,qBACA,gCACA,wBACA,6BACA,sCACA,4BACA,6BACA,6BACA,6BACA,wBACA,oBACA,0BACA,sBACA,gBACA,kBACA,kBACA,yBACA,6BACA,0BACA,8BACA,gBACA,0BACA,uBACA,gCACA,4BACA,kCACA,iBACA,6BACA,eACA,uBAGWC,EAA2C,CACtD,OACA,aACA,OACA,OACA,OACA,OACA,OACA,KACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,KACA,KACA,UACA,SACA,SACA,SACA,UACA,UACA,gBACA,YACA,eACA,MACA,QACA,MACA,MACA,QACA,MACA,YAGWC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","sources":["src/python/actions_python.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/find-python.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/utils.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/cache.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/internal/cacheUtils.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/glob.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-globber.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-glob-options-helper.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-pattern-helper.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-path-helper.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-match-kind.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-pattern.ts","node_modules/.pnpm/minimatch@3.1.2/node_modules/minimatch/minimatch.js","node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js","node_modules/.pnpm/concat-map@0.0.1/node_modules/concat-map/index.js","node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-path.ts","node_modules/.pnpm/@actions+glob@0.1.2/node_modules/@actions/glob/src/internal-search-state.ts","node_modules/.pnpm/uuid@3.4.0/node_modules/uuid/index.js","node_modules/.pnpm/uuid@3.4.0/node_modules/uuid/v1.js","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/internal/constants.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/internal/cacheHttpClient.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/internal/downloadUtils.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/Clients.ts","node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.es6.js","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/nodeFetchHttpClient.ts","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/cookie.js","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/pubsuffix-psl.js","node_modules/.pnpm/psl@1.8.0/node_modules/psl/index.js","node_modules/.pnpm/psl@1.8.0/node_modules/psl/data/rules.json","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/store.js","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/memstore.js","node_modules/.pnpm/universalify@0.1.2/node_modules/universalify/index.js","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/permuteDomain.js","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/pathMatch.js","node_modules/.pnpm/tough-cookie@4.0.0/node_modules/tough-cookie/lib/version.js","node_modules/.pnpm/@azure+abort-controller@1.1.0/node_modules/@azure/abort-controller/src/AbortController.ts","node_modules/.pnpm/@azure+abort-controller@1.1.0/node_modules/@azure/abort-controller/src/AbortSignal.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/httpHeaders.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/proxyAgent.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/url.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/utils.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/constants.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/serializer.common.ts","node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/v4.js","node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/rng.js","node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/stringify.js","node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/validate.js","node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/regex.js","node_modules/.pnpm/form-data@4.0.0/node_modules/form-data/lib/form_data.js","node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js","node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js","node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js","node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js","node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js","node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js","node_modules/.pnpm/form-data@4.0.0/node_modules/form-data/lib/populate.js","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/restError.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/sanitizer.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/inspect.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/log.ts","node_modules/.pnpm/@azure+logger@1.0.3/node_modules/@azure/logger/src/index.ts","node_modules/.pnpm/@azure+logger@1.0.3/node_modules/@azure/logger/src/debug.ts","node_modules/.pnpm/@azure+logger@1.0.3/node_modules/@azure/logger/src/log.ts","node_modules/.pnpm/node-fetch@2.6.7/node_modules/node-fetch/lib/index.mjs","node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/public-api.js","node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL.js","node_modules/.pnpm/webidl-conversions@3.0.1/node_modules/webidl-conversions/lib/index.js","node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/utils.js","node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL-impl.js","node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/url-state-machine.js","node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/index.js","node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/lib/mappingTable.json","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/operationOptions.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/serviceClient.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/serializer.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/base64.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/deserializationPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/requestPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/httpPipelineLogLevel.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/xml.ts","node_modules/.pnpm/xml2js@0.4.23/node_modules/xml2js/lib/xml2js.js","node_modules/.pnpm/xml2js@0.4.23/node_modules/xml2js/lib/defaults.js","node_modules/.pnpm/xml2js@0.4.23/node_modules/xml2js/lib/builder.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/index.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/Utility.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDOMImplementation.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDocument.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDOMStringList.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLNode.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLElement.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/NodeType.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLAttribute.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLCData.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLCharacterData.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLComment.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDeclaration.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDocType.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDTDAttList.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDTDEntity.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDTDElement.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDTDNotation.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLRaw.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLText.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDummy.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLNodeList.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/DocumentPosition.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLStringifier.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLStringWriter.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLWriterBase.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/WriterState.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLDocumentCB.js","node_modules/.pnpm/xmlbuilder@11.0.1/node_modules/xmlbuilder/lib/XMLStreamWriter.js","node_modules/.pnpm/xml2js@0.4.23/node_modules/xml2js/lib/parser.js","node_modules/.pnpm/sax@1.2.4/node_modules/sax/lib/sax.js","node_modules/.pnpm/xml2js@0.4.23/node_modules/xml2js/lib/bom.js","node_modules/.pnpm/xml2js@0.4.23/node_modules/xml2js/lib/processors.js","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/keepAlivePolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/redirectPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/exponentialRetryPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/exponentialBackoffStrategy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/delay.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/typeguards.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/logPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/operationParameter.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/operationSpec.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/webResource.ts","node_modules/.pnpm/@azure+core-auth@1.3.2/node_modules/@azure/core-auth/src/tokenCredential.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/userAgentPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/msRestUserAgentPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/queryCollectionFormat.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/bearerTokenAuthenticationPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/disableResponseDecompressionPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/generateClientRequestIdPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/httpClientCache.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/ndJsonPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/proxyPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/rpRegistrationPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/signingPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/systemErrorRetryPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/throttlingRetryPolicy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/util/throttlingRetryStrategy.ts","node_modules/.pnpm/@azure+core-http@2.2.5/node_modules/@azure/core-http/src/policies/tracingPolicy.ts","node_modules/.pnpm/@azure+core-tracing@1.0.0-preview.13/node_modules/@azure/core-tracing/src/createSpan.ts","node_modules/.pnpm/@azure+core-tracing@1.0.0-preview.13/node_modules/@azure/core-tracing/src/interfaces.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/index.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/api/context.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/context/NoopContextManager.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/context/context.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/internal/global-utils.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/platform/index.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/platform/node/index.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/platform/node/globalThis.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/version.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/internal/semver.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/api/diag.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/diag/ComponentLogger.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/diag/internal/logLevelLogger.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/diag/types.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/api/trace.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/ProxyTracerProvider.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/ProxyTracer.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/NoopTracer.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/context-utils.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/NonRecordingSpan.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/invalid-span-constants.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/trace_flags.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/spancontext-utils.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/NoopTracerProvider.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/api/propagation.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/propagation/NoopTextMapPropagator.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/propagation/TextMapPropagator.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/baggage/context-helpers.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/baggage/utils.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/baggage/internal/baggage-impl.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/baggage/internal/symbol.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/diag/index.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/SamplingResult.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/span_kind.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/status.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/internal/utils.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/internal/tracestate-impl.ts","node_modules/.pnpm/@opentelemetry+api@1.1.0/node_modules/@opentelemetry/api/src/trace/internal/tracestate-validators.ts","node_modules/.pnpm/@azure+core-tracing@1.0.0-preview.13/node_modules/@azure/core-tracing/src/utils/traceParentHeader.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/BlobDownloadResponse.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/RetriableReadableStream.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/BlobQueryResponse.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/BlobQuickQueryStream.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-internal-avro/src/AvroReader.ts","node_modules/.pnpm/@azure+core-paging@1.3.0/node_modules/@azure/core-paging/src/index.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-internal-avro/src/AvroConstants.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-internal-avro/src/AvroParser.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-internal-avro/src/utils/utils.common.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-internal-avro/src/AvroReadableFromStream.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-internal-avro/src/AvroReadable.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/credentials/AnonymousCredential.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/AnonymousCredentialPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/CredentialPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/credentials/Credential.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/credentials/StorageSharedKeyCredential.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/constants.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/utils.common.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/operations/container.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/models/mappers.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/models/parameters.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/operations/blob.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/operations/pageBlob.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/operations/appendBlob.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/operations/blockBlob.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/models.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/PageBlobRangeResponse.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/Pipeline.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/log.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/StorageBrowserPolicyFactory.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/StorageBrowserPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/StorageRetryPolicyFactory.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/StorageRetryPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/TelemetryPolicyFactory.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/TelemetryPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/cache.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/policies/StorageBearerTokenChallengeAuthenticationPolicy.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.ts","node_modules/.pnpm/@azure+core-lro@2.2.4/node_modules/@azure/core-lro/src/poller.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/Range.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/StorageClient.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/generated/src/storageClientContext.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/Batch.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-common/src/BufferScheduler.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-common/src/PooledBuffer.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-common/src/BuffersStream.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/tracing.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/utils/utils.node.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/sas/BlobSASSignatureValues.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/sas/BlobSASPermissions.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/sas/ContainerSASPermissions.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/credentials/UserDelegationKeyCredential.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/sas/SasIPRange.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/sas/SASQueryParameters.ts","node_modules/.pnpm/@azure+storage-blob@12.10.0/node_modules/@azure/storage-blob/src/BlobLeaseClient.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/internal/requestUtils.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/options.ts","node_modules/.pnpm/@actions+cache@2.0.5/node_modules/@actions/cache/src/internal/tar.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/install-python.ts","node_modules/.pnpm/@actions+tool-cache@1.7.2/node_modules/@actions/tool-cache/src/tool-cache.ts","node_modules/.pnpm/@actions+tool-cache@1.7.2/node_modules/@actions/tool-cache/src/manifest.ts","node_modules/.pnpm/@actions+http-client@1.0.11/node_modules/@actions/http-client/index.js","node_modules/.pnpm/@actions+http-client@1.0.11/node_modules/@actions/http-client/proxy.js","node_modules/.pnpm/@actions+tool-cache@1.7.2/node_modules/@actions/tool-cache/src/retry-helper.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/find-pypy.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/install-pypy.ts","src/python/actions_cache.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/cache-distributions/cache-factory.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/cache-distributions/pip-cache.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/glob.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-globber.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-glob-options-helper.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-pattern-helper.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-path-helper.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-match-kind.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-pattern.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-path.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-search-state.ts","node_modules/.pnpm/@actions+glob@0.2.1/node_modules/@actions/glob/src/internal-hash-files.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/cache-distributions/cache-distributor.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/cache-distributions/pipenv-cache.ts","node_modules/.pnpm/github.com+actions+setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6/node_modules/setup-python/src/cache-distributions/poetry-cache.ts"],"sourcesContent":["import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\nimport { existsSync } from \"fs\"\nimport { info, warning } from \"../utils/io/io\"\nimport { debug } from \"@actions/core\"\nimport path from \"path\"\nimport { isGitHubCI } from \"../utils/env/isci\"\nimport { cacheDependencies } from \"./actions_cache\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy-\")\n}\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (process.env.AGENT_TOOLSDIRECTORY?.trim()) {\n debug(`Python is expected to be installed into AGENT_TOOLSDIRECTORY=${process.env.AGENT_TOOLSDIRECTORY}`)\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n } else {\n debug(`Python is expected to be installed into RUNNER_TOOL_CACHE==${process.env.RUNNER_TOOL_CACHE}`)\n }\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully setup PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch)\n pythonVersion = installed.version\n info(`Successfully setup ${installed.impl} (${pythonVersion})`)\n }\n\n const cache = \"pip\" // core.getInput(\"cache\") // package manager used for caching\n\n await cacheDependencies(cache, pythonVersion)\n }\n\n if (isGitHubCI()) {\n addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nfunction addPythonLoggingMatcher() {\n const matcherPath = path.join(__dirname, \"python_matcher.json\")\n if (!existsSync(matcherPath)) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup_cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a seperate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string\n): Promise {\n const desugaredVersionSpec = desugarDevVersion(version);\n const semanticVersionSpec = pythonVersionToSemantic(desugaredVersionSpec);\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n throw new Error(\n [\n `Version ${version} with arch ${architecture} not found`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n core.exportVariable('pythonLocation', installDir);\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n\n core.addPath(installDir);\n core.addPath(binDir(installDir));\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `>= 3.8.0-a0`. */\nfunction desugarDevVersion(versionSpec: string) {\n if (versionSpec.endsWith('-dev')) {\n const versionRoot = versionSpec.slice(0, -'-dev'.length);\n return `>= ${versionRoot}.0-a0`;\n } else {\n return versionSpec;\n }\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n */\nexport function pythonVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2');\n}\n","import * as cache from '@actions/cache';\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n let fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function isGhes(): boolean {\n const ghUrl = new URL(\n process.env['GITHUB_SERVER_URL'] || 'https://github.com'\n );\n return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';\n}\n\nexport function isCacheFeatureAvailable(): boolean {\n if (!cache.isFeatureAvailable()) {\n if (isGhes()) {\n throw new Error(\n 'Caching is only supported on GHES version >= 3.5. If you are on a version >= 3.5, please check with your GHES admin if the Actions cache service is enabled or not.'\n );\n } else {\n core.warning(\n 'The runner was not able to contact the cache service. Caching will be skipped'\n );\n }\n\n return false;\n }\n\n return true;\n}\n",null,null,null,null,null,null,null,null,null,"module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = (function () { try { return require('path') } catch (e) {}}()) || {\n sep: '/'\n}\nminimatch.sep = path.sep\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n b = b || {}\n var t = {}\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n m.Minimatch.defaults = function defaults (options) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n\n m.filter = function filter (pattern, options) {\n return orig.filter(pattern, ext(def, options))\n }\n\n m.defaults = function defaults (options) {\n return orig.defaults(ext(def, options))\n }\n\n m.makeRe = function makeRe (pattern, options) {\n return orig.makeRe(pattern, ext(def, options))\n }\n\n m.braceExpand = function braceExpand (pattern, options) {\n return orig.braceExpand(pattern, ext(def, options))\n }\n\n m.match = function (list, pattern, options) {\n return orig.match(list, pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (!options.allowWindowsEscape && path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nvar MAX_PATTERN_LENGTH = 1024 * 64\nvar assertValidPattern = function (pattern) {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n var options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:)\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '[': case '.': case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = function match (f, partial) {\n if (typeof partial === 'undefined') partial = this.partial\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n","module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n",null,null,"var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n",null,null,null,"// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport {\n generateUuid,\n getDefaultProxySettings,\n HttpRequestBody,\n HttpResponse,\n isNode,\n isTokenCredential,\n TokenCredential,\n TransferProgressEvent,\n URLBuilder,\n} from \"@azure/core-http\";\nimport { PollerLike, PollOperationState } from \"@azure/core-lro\";\nimport { SpanStatusCode } from \"@azure/core-tracing\";\nimport { Readable } from \"stream\";\n\nimport { BlobDownloadResponse } from \"./BlobDownloadResponse\";\nimport { BlobQueryResponse } from \"./BlobQueryResponse\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AppendBlob, Blob as StorageBlob, BlockBlob, PageBlob } from \"./generated/src/operations\";\nimport {\n AppendBlobAppendBlockFromUrlResponse,\n AppendBlobAppendBlockResponse,\n AppendBlobCreateResponse,\n BlobAbortCopyFromURLResponse,\n BlobCopyFromURLResponse,\n BlobCreateSnapshotResponse,\n BlobDeleteResponse,\n BlobDownloadOptionalParams,\n BlobDownloadResponseModel,\n BlobGetPropertiesResponseModel,\n BlobGetTagsHeaders,\n BlobSetHTTPHeadersResponse,\n BlobSetMetadataResponse,\n BlobSetTagsResponse,\n BlobSetTierResponse,\n BlobStartCopyFromURLResponse,\n BlobTags,\n BlobUndeleteResponse,\n BlockBlobCommitBlockListResponse,\n BlockBlobGetBlockListResponse,\n BlockBlobStageBlockFromURLResponse,\n BlockBlobStageBlockResponse,\n BlockBlobUploadHeaders,\n BlockBlobUploadResponse,\n BlockListType,\n CpkInfo,\n DeleteSnapshotsOptionType,\n LeaseAccessConditions,\n PageBlobClearPagesResponse,\n PageBlobCopyIncrementalResponse,\n PageBlobCreateResponse,\n PageBlobResizeResponse,\n PageBlobUpdateSequenceNumberResponse,\n PageBlobUploadPagesFromURLResponse,\n PageBlobUploadPagesResponse,\n RehydratePriority,\n SequenceNumberActionType,\n BlockBlobPutBlobFromUrlResponse,\n BlobHTTPHeaders,\n PageBlobGetPageRangesResponseModel,\n PageRangeInfo,\n PageBlobGetPageRangesDiffResponseModel,\n BlobCopySourceTags,\n} from \"./generatedModels\";\nimport {\n AppendBlobRequestConditions,\n BlobDownloadResponseParsed,\n BlobRequestConditions,\n BlockBlobTier,\n ensureCpkIfSpecified,\n Metadata,\n ObjectReplicationPolicy,\n PageBlobRequestConditions,\n PremiumPageBlobTier,\n Tags,\n toAccessTier,\n TagConditions,\n MatchConditions,\n ModificationConditions,\n ModifiedAccessConditions,\n BlobQueryArrowField,\n BlobImmutabilityPolicy,\n HttpAuthorization,\n} from \"./models\";\nimport {\n PageBlobGetPageRangesDiffResponse,\n PageBlobGetPageRangesResponse,\n rangeResponseFromModel,\n} from \"./PageBlobRangeResponse\";\nimport { newPipeline, PipelineLike, isPipelineLike, StoragePipelineOptions } from \"./Pipeline\";\nimport {\n BlobBeginCopyFromUrlPoller,\n BlobBeginCopyFromUrlPollState,\n CopyPollerBlobClient,\n} from \"./pollers/BlobStartCopyFromUrlPoller\";\nimport { Range, rangeToString } from \"./Range\";\nimport { CommonOptions, StorageClient } from \"./StorageClient\";\nimport { Batch } from \"./utils/Batch\";\nimport { BufferScheduler } from \"../../storage-common/src\";\nimport {\n BlobDoesNotUseCustomerSpecifiedEncryption,\n BlobUsesCustomerSpecifiedEncryptionMsg,\n BLOCK_BLOB_MAX_BLOCKS,\n BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES,\n BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES,\n DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES,\n DEFAULT_BLOCK_BUFFER_SIZE_BYTES,\n DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS,\n ETagAny,\n URLConstants,\n} from \"./utils/constants\";\nimport { createSpan, convertTracingToRequestOptionsBase } from \"./utils/tracing\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n extractConnectionStringParts,\n ExtractPageRangeInfoItems,\n generateBlockID,\n getURLParameter,\n httpAuthorizationToString,\n isIpEndpointStyle,\n parseObjectReplicationRecord,\n setURLParameter,\n toBlobTags,\n toBlobTagsString,\n toQuerySerialization,\n toTags,\n} from \"./utils/utils.common\";\nimport {\n fsCreateReadStream,\n fsStat,\n readStreamToLocalFile,\n streamToBuffer,\n} from \"./utils/utils.node\";\nimport { SASProtocol } from \"./sas/SASQueryParameters\";\nimport { SasIPRange } from \"./sas/SasIPRange\";\nimport { generateBlobSASQueryParameters } from \"./sas/BlobSASSignatureValues\";\nimport { BlobSASPermissions } from \"./sas/BlobSASPermissions\";\nimport { BlobLeaseClient } from \"./BlobLeaseClient\";\nimport {\n BlobDeleteImmutabilityPolicyResponse,\n BlobSetImmutabilityPolicyResponse,\n BlobSetLegalHoldResponse,\n} from \"./generatedModels\";\nimport { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\n\n/**\n * Options to configure the {@link BlobClient.beginCopyFromURL} operation.\n */\nexport interface BlobBeginCopyFromURLOptions extends BlobStartCopyFromURLOptions {\n /**\n * The amount of time in milliseconds the poller should wait between\n * calls to the service to determine the status of the Blob copy.\n * Defaults to 15 seconds.\n */\n intervalInMs?: number;\n /**\n * Callback to receive the state of the copy progress.\n */\n onProgress?: (state: BlobBeginCopyFromUrlPollState) => void;\n /**\n * Serialized poller state that can be used to resume polling from.\n * This may be useful when starting a copy on one process or thread\n * and you wish to continue polling on another process or thread.\n *\n * To get serialized poller state, call `poller.toString()` on an existing\n * poller.\n */\n resumeFrom?: string;\n}\n\n/**\n * Contains response data for the {@link BlobClient.beginCopyFromURL} operation.\n */\nexport interface BlobBeginCopyFromURLResponse extends BlobStartCopyFromURLResponse {}\n\n/**\n * Options to configure the {@link BlobClient.download} operation.\n */\nexport interface BlobDownloadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * An opaque DateTime string value that, when present, specifies the blob snapshot to retrieve.\n */\n snapshot?: string;\n /**\n * When this is set to true and download range of blob, the service returns the MD5 hash for the range,\n * as long as the range is less than or equal to 4 MB in size.\n *\n * rangeGetContentCrc64 and rangeGetContentMD5 cannot be set at same time.\n */\n rangeGetContentMD5?: boolean;\n /**\n * When this is set to true and download range of blob, the service returns the CRC64 hash for the range,\n * as long as the range is less than or equal to 4 MB in size.\n *\n * rangeGetContentCrc64 and rangeGetContentMD5 cannot be set at same time.\n */\n rangeGetContentCrc64?: boolean;\n /**\n * Conditions to meet when downloading blobs.\n */\n conditions?: BlobRequestConditions;\n /**\n * Call back to receive events on the progress of download operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Optional. ONLY AVAILABLE IN NODE.JS.\n *\n * How many retries will perform when original body download stream unexpected ends.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors.\n *\n * With this option, every additional retry means an additional `FileClient.download()` request will be made\n * from the broken point, until the requested range has been successfully downloaded or maxRetryRequests is reached.\n *\n * Default value is 5, please set a larger value when loading large files in poor network.\n */\n maxRetryRequests?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.exists} operation.\n */\nexport interface BlobExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Conditions to meet.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.getProperties} operation.\n */\nexport interface BlobGetPropertiesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting blob properties.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.delete} operation.\n */\nexport interface BlobDeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when deleting blobs.\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies options to delete blobs that have associated snapshots.\n * - `include`: Delete the base blob and all of its snapshots.\n * - `only`: Delete only the blob's snapshots and not the blob itself.\n */\n deleteSnapshots?: DeleteSnapshotsOptionType;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.undelete} operation.\n */\nexport interface BlobUndeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.setHTTPHeaders} operation.\n */\nexport interface BlobSetHTTPHeadersOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting blob HTTP headers.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.setMetadata} operation.\n */\nexport interface BlobSetMetadataOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting blob metadata.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link BlobClient.setTags} operation.\n */\nexport interface BlobSetTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet for the blob to perform this operation.\n */\n conditions?: TagConditions & LeaseAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.getTags} operation.\n */\nexport interface BlobGetTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet for the blob to perform this operation.\n */\n conditions?: TagConditions & LeaseAccessConditions;\n}\n\n/**\n * Contains response data for the {@link BlobClient.getTags} operation.\n */\nexport type BlobGetTagsResponse = { tags: Tags } & BlobGetTagsHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: BlobGetTagsHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: BlobTags;\n };\n };\n\n/**\n * Options to configure Blob - Acquire Lease operation.\n */\nexport interface BlobAcquireLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when acquiring the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Release Lease operation.\n */\nexport interface BlobReleaseLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when releasing the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Renew Lease operation.\n */\nexport interface BlobRenewLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when renewing the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Change Lease operation.\n */\nexport interface BlobChangeLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when changing the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Break Lease operation.\n */\nexport interface BlobBreakLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when breaking the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.createSnapshot} operation.\n */\nexport interface BlobCreateSnapshotOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the snapshot.\n */\n metadata?: Metadata;\n /**\n * Conditions to meet when creating blob snapshots.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link BlobClient.beginCopyFromURL} operation.\n */\nexport interface BlobStartCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the blob that are being copied.\n */\n metadata?: Metadata;\n /**\n * Conditions to meet for the destination blob when copying from a URL to the blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: ModifiedAccessConditions;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | PremiumPageBlobTier | string;\n /**\n * Rehydrate Priority - possible values include 'High', 'Standard'.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration#rehydrate-an-archived-blob-to-an-online-tier\n */\n rehydratePriority?: RehydratePriority;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n /**\n * Overrides the sealed state of the destination blob. Default true.\n */\n sealBlob?: boolean;\n}\n\n/**\n * Options to configure the {@link BlobClient.abortCopyFromURL} operation.\n */\nexport interface BlobAbortCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.syncCopyFromURL} operation.\n */\nexport interface BlobSyncCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the snapshot.\n */\n metadata?: Metadata;\n /**\n * Conditions to meet for the destination blob when copying from a URL to the blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * Specify the md5 calculated for the range of bytes that must be read from the copy source.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to encrypt the data provided in the request. If not specified, encryption is performed with the default account encryption scope. For more information, see Encryption at Rest for Azure Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Default 'REPLACE'. Indicates if source tags should be copied or replaced with the tags specified by {@link tags}.\n */\n copySourceTags?: BlobCopySourceTags;\n}\n\n/**\n * Options to configure the {@link BlobClient.setAccessTier} operation.\n */\nexport interface BlobSetTierOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions & TagConditions;\n /**\n * Rehydrate Priority - possible values include 'High', 'Standard'.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration#rehydrate-an-archived-blob-to-an-online-tier\n */\n rehydratePriority?: RehydratePriority;\n}\n\n/**\n * Option interface for the {@link BlobClient.downloadToBuffer} operation.\n */\nexport interface BlobDownloadToBufferOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * blockSize is the data every request trying to download.\n * Must be greater than or equal to 0.\n * If set to 0 or undefined, blockSize will automatically calculated according to the blob size.\n */\n blockSize?: number;\n\n /**\n * Optional. ONLY AVAILABLE IN NODE.JS.\n *\n * How many retries will perform when original block download stream unexpected ends.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors.\n *\n * With this option, every additional retry means an additional FileClient.download() request will be made\n * from the broken point, until the requested block has been successfully downloaded or\n * maxRetryRequestsPerBlock is reached.\n *\n * Default value is 5, please set a larger value when in poor network.\n */\n maxRetryRequestsPerBlock?: number;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Access conditions headers.\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Concurrency of parallel download.\n */\n concurrency?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Contains response data for the {@link BlobClient.deleteIfExists} operation.\n */\nexport interface BlobDeleteIfExistsResponse extends BlobDeleteResponse {\n /**\n * Indicate whether the blob is successfully deleted. Is false if the blob does not exist in the first place.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link BlobClient.getProperties} operation.\n */\nexport interface BlobGetPropertiesResponse extends BlobGetPropertiesResponseModel {\n /**\n * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob.\n */\n objectReplicationSourceProperties?: ObjectReplicationPolicy[];\n\n /**\n * Object Replication Policy Id of the destination blob.\n */\n objectReplicationDestinationPolicyId?: string;\n}\n\n/**\n * Common options of {@link BlobGenerateSasUrlOptions} and {@link ContainerGenerateSasUrlOptions}.\n */\nexport interface CommonGenerateSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the container this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n}\n\n/**\n * Options to configure {@link BlobClient.generateSasUrl} operation.\n */\nexport interface BlobGenerateSasUrlOptions extends CommonGenerateSasUrlOptions {\n /**\n * Optional only when identifier is provided. Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: BlobSASPermissions;\n}\n\n/**\n * Options for deleting immutability policy {@link BlobClient.deleteImmutabilityPolicy} operation.\n */\nexport interface BlobDeleteImmutabilityPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options for setting immutability policy {@link BlobClient.setImmutabilityPolicy} operation.\n */\nexport interface BlobSetImmutabilityPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n modifiedAccessCondition?: ModificationConditions;\n}\n\n/**\n * Options for setting legal hold {@link BlobClient.setLegalHold} operation.\n */\nexport interface BlobSetLegalHoldOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * A BlobClient represents a URL to an Azure Storage blob; the blob may be a block blob,\n * append blob, or page blob.\n */\nexport class BlobClient extends StorageClient {\n /**\n * blobContext provided by protocol layer.\n */\n private blobContext: StorageBlob;\n\n private _name: string;\n private _containerName: string;\n\n private _versionId?: string;\n private _snapshot?: string;\n\n /**\n * The name of the blob.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * The name of the storage container the blob is associated with.\n */\n public get containerName(): string {\n return this._containerName;\n }\n\n /**\n *\n * Creates an instance of BlobClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob\".\n * You can append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n options = options || {};\n let pipeline: PipelineLike;\n let url: string;\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n\n super(url, pipeline);\n ({ blobName: this._name, containerName: this._containerName } =\n this.getBlobAndContainerNamesFromUrl());\n this.blobContext = new StorageBlob(this.storageClientContext);\n\n this._snapshot = getURLParameter(this.url, URLConstants.Parameters.SNAPSHOT) as string;\n this._versionId = getURLParameter(this.url, URLConstants.Parameters.VERSIONID) as string;\n }\n\n /**\n * Creates a new BlobClient object identical to the source but with the specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new BlobClient object identical to the source but with the specified snapshot timestamp\n */\n public withSnapshot(snapshot: string): BlobClient {\n return new BlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a new BlobClient object pointing to a version of this blob.\n * Provide \"\" will remove the versionId and return a Client to the base blob.\n *\n * @param versionId - The versionId.\n * @returns A new BlobClient object pointing to the version of this blob.\n */\n public withVersion(versionId: string): BlobClient {\n return new BlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.VERSIONID,\n versionId.length === 0 ? undefined : versionId\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a AppendBlobClient object.\n *\n */\n public getAppendBlobClient(): AppendBlobClient {\n return new AppendBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Creates a BlockBlobClient object.\n *\n */\n public getBlockBlobClient(): BlockBlobClient {\n return new BlockBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Creates a PageBlobClient object.\n *\n */\n public getPageBlobClient(): PageBlobClient {\n return new PageBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Reads or downloads a blob from the system, including its metadata and properties.\n * You can also call Get Blob to read a snapshot.\n *\n * * In Node.js, data returns in a Readable stream readableStreamBody\n * * In browsers, data returns in a promise blobBody\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob\n *\n * @param offset - From which position of the blob to download, greater than or equal to 0\n * @param count - How much data to be downloaded, greater than 0. Will download to the end when undefined\n * @param options - Optional options to Blob Download operation.\n *\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Download and convert a blob to a string\n * const downloadBlockBlobResponse = await blobClient.download();\n * const downloaded = await streamToBuffer(downloadBlockBlobResponse.readableStreamBody);\n * console.log(\"Downloaded blob content:\", downloaded.toString());\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(data instanceof Buffer ? data : Buffer.from(data));\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * Example usage (browser):\n *\n * ```js\n * // Download and convert a blob to a string\n * const downloadBlockBlobResponse = await blobClient.download();\n * const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);\n * console.log(\n * \"Downloaded blob content\",\n * downloaded\n * );\n *\n * async function blobToString(blob: Blob): Promise {\n * const fileReader = new FileReader();\n * return new Promise((resolve, reject) => {\n * fileReader.onloadend = (ev: any) => {\n * resolve(ev.target!.result);\n * };\n * fileReader.onerror = reject;\n * fileReader.readAsText(blob);\n * });\n * }\n * ```\n */\n public async download(\n offset: number = 0,\n count?: number,\n options: BlobDownloadOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n options.conditions = options.conditions || {};\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n const { span, updatedOptions } = createSpan(\"BlobClient-download\", options);\n\n try {\n const res = await this.blobContext.download({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onDownloadProgress: isNode ? undefined : options.onProgress, // for Node.js, progress is reported by RetriableReadableStream\n },\n range: offset === 0 && !count ? undefined : rangeToString({ offset, count }),\n rangeGetContentMD5: options.rangeGetContentMD5,\n rangeGetContentCRC64: options.rangeGetContentCrc64,\n snapshot: options.snapshot,\n cpkInfo: options.customerProvidedKey,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n\n const wrappedRes = {\n ...res,\n _response: res._response, // _response is made non-enumerable\n objectReplicationDestinationPolicyId: res.objectReplicationPolicyId,\n objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules),\n };\n // Return browser response immediately\n if (!isNode) {\n return wrappedRes;\n }\n\n // We support retrying when download stream unexpected ends in Node.js runtime\n // Following code shouldn't be bundled into browser build, however some\n // bundlers may try to bundle following code and \"FileReadResponse.ts\".\n // In this case, \"FileDownloadResponse.browser.ts\" will be used as a shim of \"FileDownloadResponse.ts\"\n // The config is in package.json \"browser\" field\n if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) {\n // TODO: Default value or make it a required parameter?\n options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS;\n }\n\n if (res.contentLength === undefined) {\n throw new RangeError(`File download response doesn't contain valid content length header`);\n }\n\n if (!res.etag) {\n throw new RangeError(`File download response doesn't contain valid etag header`);\n }\n\n return new BlobDownloadResponse(\n wrappedRes,\n async (start: number): Promise => {\n const updatedDownloadOptions: BlobDownloadOptionalParams = {\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ifMatch: options.conditions!.ifMatch || res.etag,\n ifModifiedSince: options.conditions!.ifModifiedSince,\n ifNoneMatch: options.conditions!.ifNoneMatch,\n ifUnmodifiedSince: options.conditions!.ifUnmodifiedSince,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({\n count: offset + res.contentLength! - start,\n offset: start,\n }),\n rangeGetContentMD5: options.rangeGetContentMD5,\n rangeGetContentCRC64: options.rangeGetContentCrc64,\n snapshot: options.snapshot,\n cpkInfo: options.customerProvidedKey,\n };\n\n // Debug purpose only\n // console.log(\n // `Read from internal stream, range: ${\n // updatedOptions.range\n // }, options: ${JSON.stringify(updatedOptions)}`\n // );\n\n return (\n await this.blobContext.download({\n abortSignal: options.abortSignal,\n ...updatedDownloadOptions,\n })\n ).readableStreamBody!;\n },\n offset,\n res.contentLength!,\n {\n maxRetryRequests: options.maxRetryRequests,\n onProgress: options.onProgress,\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns true if the Azure blob resource represented by this client exists; false otherwise.\n *\n * NOTE: use this function with care since an existing blob might be deleted by other clients or\n * applications. Vice versa new blobs might be added by other clients or applications after this\n * function completes.\n *\n * @param options - options to Exists operation.\n */\n public async exists(options: BlobExistsOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-exists\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n await this.getProperties({\n abortSignal: options.abortSignal,\n customerProvidedKey: options.customerProvidedKey,\n conditions: options.conditions,\n tracingOptions: updatedOptions.tracingOptions,\n });\n return true;\n } catch (e: any) {\n if (e.statusCode === 404) {\n // Expected exception when checking blob existence\n return false;\n } else if (\n e.statusCode === 409 &&\n (e.details.errorCode === BlobUsesCustomerSpecifiedEncryptionMsg ||\n e.details.errorCode === BlobDoesNotUseCustomerSpecifiedEncryption)\n ) {\n // Expected exception when checking blob existence\n return true;\n }\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns all user-defined metadata, standard HTTP properties, and system properties\n * for the blob. It does not return the content of the blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the methods of {@link ContainerClient} that list blobs using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param options - Optional options to Get Properties operation.\n */\n public async getProperties(\n options: BlobGetPropertiesOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-getProperties\", options);\n try {\n options.conditions = options.conditions || {};\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n const res = await this.blobContext.getProperties({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n\n return {\n ...res,\n _response: res._response, // _response is made non-enumerable\n objectReplicationDestinationPolicyId: res.objectReplicationPolicyId,\n objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules),\n };\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param options - Optional options to Blob Delete operation.\n */\n public async delete(options: BlobDeleteOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-delete\", options);\n options.conditions = options.conditions || {};\n try {\n return await this.blobContext.delete({\n abortSignal: options.abortSignal,\n deleteSnapshots: options.deleteSnapshots,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param options - Optional options to Blob Delete operation.\n */\n public async deleteIfExists(\n options: BlobDeleteOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-deleteIfExists\", options);\n try {\n const res = await this.delete(updatedOptions);\n return {\n succeeded: true,\n ...res,\n _response: res._response, // _response is made non-enumerable\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"BlobNotFound\") {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: \"Expected exception when deleting a blob or snapshot only if it exists.\",\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Restores the contents and metadata of soft deleted blob and any associated\n * soft deleted snapshots. Undelete Blob is supported only on version 2017-07-29\n * or later.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/undelete-blob\n *\n * @param options - Optional options to Blob Undelete operation.\n */\n public async undelete(options: BlobUndeleteOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-undelete\", options);\n try {\n return await this.blobContext.undelete({\n abortSignal: options.abortSignal,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets system properties on the blob.\n *\n * If no value provided, or no value provided for the specified blob HTTP headers,\n * these blob HTTP headers without a value will be cleared.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param blobHTTPHeaders - If no value provided, or no value provided for\n * the specified blob HTTP headers, these blob HTTP\n * headers without a value will be cleared.\n * A common header to set is `blobContentType`\n * enabling the browser to provide functionality\n * based on file type.\n * @param options - Optional options to Blob Set HTTP Headers operation.\n */\n public async setHTTPHeaders(\n blobHTTPHeaders?: BlobHTTPHeaders,\n options: BlobSetHTTPHeadersOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setHTTPHeaders\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.setHttpHeaders({\n abortSignal: options.abortSignal,\n blobHttpHeaders: blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n // cpkInfo: options.customerProvidedKey, // CPK is not included in Swagger, should change this back when this issue is fixed in Swagger.\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets user-defined metadata for the specified blob as one or more name-value pairs.\n *\n * If no option provided, or no metadata defined in the parameter, the blob\n * metadata will be removed.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata\n *\n * @param metadata - Replace existing metadata with this value.\n * If no value provided the existing metadata will be removed.\n * @param options - Optional options to Set Metadata operation.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: BlobSetMetadataOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setMetadata\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.setMetadata({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets tags on the underlying blob.\n * A blob can have up to 10 tags. Tag keys must be between 1 and 128 characters. Tag values must be between 0 and 256 characters.\n * Valid tag key and value characters include lower and upper case letters, digits (0-9),\n * space (' '), plus ('+'), minus ('-'), period ('.'), foward slash ('/'), colon (':'), equals ('='), and underscore ('_').\n *\n * @param tags -\n * @param options -\n */\n public async setTags(tags: Tags, options: BlobSetTagsOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setTags\", options);\n try {\n return await this.blobContext.setTags({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n tags: toBlobTags(tags),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Gets the tags associated with the underlying blob.\n *\n * @param options -\n */\n public async getTags(options: BlobGetTagsOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-getTags\", options);\n try {\n const response = await this.blobContext.getTags({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n const wrappedResponse: BlobGetTagsResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n tags: toTags({ blobTagSet: response.blobTagSet }) || {},\n };\n return wrappedResponse;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Get a {@link BlobLeaseClient} that manages leases on the blob.\n *\n * @param proposeLeaseId - Initial proposed lease Id.\n * @returns A new BlobLeaseClient object for managing leases on the blob.\n */\n public getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient {\n return new BlobLeaseClient(this, proposeLeaseId);\n }\n\n /**\n * Creates a read-only snapshot of a blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob\n *\n * @param options - Optional options to the Blob Create Snapshot operation.\n */\n public async createSnapshot(\n options: BlobCreateSnapshotOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-createSnapshot\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.createSnapshot({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Asynchronously copies a blob to a destination within the storage account.\n * This method returns a long running operation poller that allows you to wait\n * indefinitely until the copy is completed.\n * You can also cancel a copy before it is completed by calling `cancelOperation` on the poller.\n * Note that the onProgress callback will not be invoked if the operation completes in the first\n * request, and attempting to cancel a completed copy will result in an error being thrown.\n *\n * In version 2012-02-12 and later, the source for a Copy Blob operation can be\n * a committed blob in any Azure storage account.\n * Beginning with version 2015-02-21, the source for a Copy Blob operation can be\n * an Azure file in any Azure storage account.\n * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob\n * operation to copy from another storage account.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob\n *\n * Example using automatic polling:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using manual polling:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * while (!poller.isDone()) {\n * await poller.poll();\n * }\n * const result = copyPoller.getResult();\n * ```\n *\n * Example using progress updates:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url', {\n * onProgress(state) {\n * console.log(`Progress: ${state.copyProgress}`);\n * }\n * });\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using a changing polling interval (default 15 seconds):\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url', {\n * intervalInMs: 1000 // poll blob every 1 second for copy progress\n * });\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using copy cancellation:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * // cancel operation after starting it.\n * try {\n * await copyPoller.cancelOperation();\n * // calls to get the result now throw PollerCancelledError\n * await copyPoller.getResult();\n * } catch (err) {\n * if (err.name === 'PollerCancelledError') {\n * console.log('The copy was cancelled.');\n * }\n * }\n * ```\n *\n * @param copySource - url to the source Azure Blob/File.\n * @param options - Optional options to the Blob Start Copy From URL operation.\n */\n public async beginCopyFromURL(\n copySource: string,\n options: BlobBeginCopyFromURLOptions = {}\n ): Promise<\n PollerLike, BlobBeginCopyFromURLResponse>\n > {\n const client: CopyPollerBlobClient = {\n abortCopyFromURL: (...args) => this.abortCopyFromURL(...args),\n getProperties: (...args) => this.getProperties(...args),\n startCopyFromURL: (...args) => this.startCopyFromURL(...args),\n };\n const poller = new BlobBeginCopyFromUrlPoller({\n blobClient: client,\n copySource,\n intervalInMs: options.intervalInMs,\n onProgress: options.onProgress,\n resumeFrom: options.resumeFrom,\n startCopyFromURLOptions: options,\n });\n\n // Trigger the startCopyFromURL call by calling poll.\n // Any errors from this method should be surfaced to the user.\n await poller.poll();\n\n return poller;\n }\n\n /**\n * Aborts a pending asynchronous Copy Blob operation, and leaves a destination blob with zero\n * length and full metadata. Version 2012-02-12 and newer.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob\n *\n * @param copyId - Id of the Copy From URL operation.\n * @param options - Optional options to the Blob Abort Copy From URL operation.\n */\n public async abortCopyFromURL(\n copyId: string,\n options: BlobAbortCopyFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-abortCopyFromURL\", options);\n try {\n return await this.blobContext.abortCopyFromURL(copyId, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The synchronous Copy From URL operation copies a blob or an internet resource to a new blob. It will not\n * return a response until the copy is complete.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url\n *\n * @param copySource - The source URL to copy from, Shared Access Signature(SAS) maybe needed for authentication\n * @param options -\n */\n public async syncCopyFromURL(\n copySource: string,\n options: BlobSyncCopyFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-syncCopyFromURL\", options);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n\n try {\n return await this.blobContext.copyFromURL(copySource, {\n abortSignal: options.abortSignal,\n metadata: options.metadata,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n },\n sourceContentMD5: options.sourceContentMD5,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n blobTagsString: toBlobTagsString(options.tags),\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n encryptionScope: options.encryptionScope,\n copySourceTags: options.copySourceTags,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets the tier on a blob. The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier\n *\n * @param tier - The tier to be set on the blob. Valid values are Hot, Cool, or Archive.\n * @param options - Optional options to the Blob Set Tier operation.\n */\n public async setAccessTier(\n tier: BlockBlobTier | PremiumPageBlobTier | string,\n options: BlobSetTierOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setAccessTier\", options);\n try {\n return await this.blobContext.setTier(toAccessTier(tier)!, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n rehydratePriority: options.rehydratePriority,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n // High level function\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob in parallel to a buffer.\n * Offset and count are optional, downloads the entire blob if they are not provided.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For blobs larger than this size,\n * consider {@link downloadToFile}.\n *\n * @param offset - From which position of the block blob to download(in bytes)\n * @param count - How much data(in bytes) to be downloaded. Will download to the end when passing undefined\n * @param options - BlobDownloadToBufferOptions\n */\n public async downloadToBuffer(\n offset?: number,\n count?: number,\n options?: BlobDownloadToBufferOptions\n ): Promise;\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob in parallel to a buffer.\n * Offset and count are optional, downloads the entire blob if they are not provided.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For blobs larger than this size,\n * consider {@link downloadToFile}.\n *\n * @param buffer - Buffer to be fill, must have length larger than count\n * @param offset - From which position of the block blob to download(in bytes)\n * @param count - How much data(in bytes) to be downloaded. Will download to the end when passing undefined\n * @param options - BlobDownloadToBufferOptions\n */\n public async downloadToBuffer(\n buffer: Buffer,\n offset?: number,\n count?: number,\n options?: BlobDownloadToBufferOptions\n ): Promise;\n\n public async downloadToBuffer(\n param1?: Buffer | number,\n param2?: number,\n param3?: BlobDownloadToBufferOptions | number,\n param4: BlobDownloadToBufferOptions = {}\n ): Promise {\n let buffer: Buffer | undefined;\n let offset = 0;\n let count = 0;\n let options = param4;\n if (param1 instanceof Buffer) {\n buffer = param1;\n offset = param2 || 0;\n count = typeof param3 === \"number\" ? param3 : 0;\n } else {\n offset = typeof param1 === \"number\" ? param1 : 0;\n count = typeof param2 === \"number\" ? param2 : 0;\n options = (param3 as BlobDownloadToBufferOptions) || {};\n }\n const { span, updatedOptions } = createSpan(\"BlobClient-downloadToBuffer\", options);\n\n try {\n if (!options.blockSize) {\n options.blockSize = 0;\n }\n if (options.blockSize < 0) {\n throw new RangeError(\"blockSize option must be >= 0\");\n }\n if (options.blockSize === 0) {\n options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;\n }\n\n if (offset < 0) {\n throw new RangeError(\"offset option must be >= 0\");\n }\n\n if (count && count <= 0) {\n throw new RangeError(\"count option must be greater than 0\");\n }\n\n if (!options.conditions) {\n options.conditions = {};\n }\n\n // Customer doesn't specify length, get it\n if (!count) {\n const response = await this.getProperties({\n ...options,\n tracingOptions: {\n ...options.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n count = response.contentLength! - offset;\n if (count < 0) {\n throw new RangeError(\n `offset ${offset} shouldn't be larger than blob size ${response.contentLength!}`\n );\n }\n }\n\n // Allocate the buffer of size = count if the buffer is not provided\n if (!buffer) {\n try {\n buffer = Buffer.alloc(count);\n } catch (error: any) {\n throw new Error(\n `Unable to allocate the buffer of size: ${count}(in bytes). Please try passing your own buffer to the \"downloadToBuffer\" method or try using other methods like \"download\" or \"downloadToFile\".\\t ${error.message}`\n );\n }\n }\n\n if (buffer.length < count) {\n throw new RangeError(\n `The buffer's size should be equal to or larger than the request count of bytes: ${count}`\n );\n }\n\n let transferProgress: number = 0;\n const batch = new Batch(options.concurrency);\n for (let off = offset; off < offset + count; off = off + options.blockSize) {\n batch.addOperation(async () => {\n // Exclusive chunk end position\n let chunkEnd = offset + count!;\n if (off + options.blockSize! < chunkEnd) {\n chunkEnd = off + options.blockSize!;\n }\n const response = await this.download(off, chunkEnd - off, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n maxRetryRequests: options.maxRetryRequestsPerBlock,\n customerProvidedKey: options.customerProvidedKey,\n tracingOptions: {\n ...options.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n const stream = response.readableStreamBody!;\n await streamToBuffer(stream, buffer!, off - offset, chunkEnd - offset);\n // Update progress after block is downloaded, in case of block trying\n // Could provide finer grained progress updating inside HTTP requests,\n // only if convenience layer download try is enabled\n transferProgress += chunkEnd - off;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n });\n }\n await batch.do();\n return buffer;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob to a local file.\n * Fails if the the given file path already exits.\n * Offset and count are optional, pass 0 and undefined respectively to download the entire blob.\n *\n * @param filePath -\n * @param offset - From which position of the block blob to download.\n * @param count - How much data to be downloaded. Will download to the end when passing undefined.\n * @param options - Options to Blob download options.\n * @returns The response data for blob download operation,\n * but with readableStreamBody set to undefined since its\n * content is already read and written into a local file\n * at the specified path.\n */\n public async downloadToFile(\n filePath: string,\n offset: number = 0,\n count?: number,\n options: BlobDownloadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-downloadToFile\", options);\n try {\n const response = await this.download(offset, count, {\n ...options,\n tracingOptions: {\n ...options.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n if (response.readableStreamBody) {\n await readStreamToLocalFile(response.readableStreamBody, filePath);\n }\n\n // The stream is no longer accessible so setting it to undefined.\n (response as any).blobDownloadStream = undefined;\n return response;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n private getBlobAndContainerNamesFromUrl(): { blobName: string; containerName: string } {\n let containerName;\n let blobName;\n try {\n // URL may look like the following\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt\";\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername/blob`\n // http://localhost:10001/devstoreaccount1/containername/blob\n\n const parsedUrl = URLBuilder.parse(this.url);\n\n if (parsedUrl.getHost()!.split(\".\")[1] === \"blob\") {\n // \"https://myaccount.blob.core.windows.net/containername/blob\".\n // .getPath() -> /containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)(/(.*))?\");\n containerName = pathComponents![1];\n blobName = pathComponents![3];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername/blob\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername/blob\n // .getPath() -> /devstoreaccount1/containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)/([^/]*)(/(.*))?\");\n containerName = pathComponents![2];\n blobName = pathComponents![4];\n } else {\n // \"https://customdomain.com/containername/blob\".\n // .getPath() -> /containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)(/(.*))?\");\n containerName = pathComponents![1];\n blobName = pathComponents![3];\n }\n\n // decode the encoded blobName, containerName - to get all the special characters that might be present in them\n containerName = decodeURIComponent(containerName);\n blobName = decodeURIComponent(blobName);\n\n // Azure Storage Server will replace \"\\\" with \"/\" in the blob names\n // doing the same in the SDK side so that the user doesn't have to replace \"\\\" instances in the blobName\n blobName = blobName.replace(/\\\\/g, \"/\");\n\n if (!containerName) {\n throw new Error(\"Provided containerName is invalid.\");\n }\n\n return { blobName, containerName };\n } catch (error: any) {\n throw new Error(\"Unable to extract blobName and containerName with provided information.\");\n }\n }\n\n /**\n * Asynchronously copies a blob to a destination within the storage account.\n * In version 2012-02-12 and later, the source for a Copy Blob operation can be\n * a committed blob in any Azure storage account.\n * Beginning with version 2015-02-21, the source for a Copy Blob operation can be\n * an Azure file in any Azure storage account.\n * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob\n * operation to copy from another storage account.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob\n *\n * @param copySource - url to the source Azure Blob/File.\n * @param options - Optional options to the Blob Start Copy From URL operation.\n */\n private async startCopyFromURL(\n copySource: string,\n options: BlobStartCopyFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-startCopyFromURL\", options);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n\n try {\n return await this.blobContext.startCopyFromURL(copySource, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n sourceIfTags: options.sourceConditions.tagConditions,\n },\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n rehydratePriority: options.rehydratePriority,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n sealBlob: options.sealBlob,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Only available for BlobClient constructed with a shared key credential.\n *\n * Generates a Blob Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: BlobGenerateSasUrlOptions): Promise {\n return new Promise((resolve) => {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw new RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\"\n );\n }\n\n const sas = generateBlobSASQueryParameters(\n {\n containerName: this._containerName,\n blobName: this._name,\n snapshotTime: this._snapshot,\n versionId: this._versionId,\n ...options,\n },\n this.credential\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Delete the immutablility policy on the blob.\n *\n * @param options - Optional options to delete immutability policy on the blob.\n */\n public async deleteImmutabilityPolicy(\n options?: BlobDeleteImmutabilityPolicyOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-deleteImmutabilityPolicy\", options);\n try {\n return await this.blobContext.deleteImmutabilityPolicy({\n abortSignal: options?.abortSignal,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Set immutablility policy on the blob.\n *\n * @param options - Optional options to set immutability policy on the blob.\n */\n public async setImmutabilityPolicy(\n immutabilityPolicy: BlobImmutabilityPolicy,\n options?: BlobSetImmutabilityPolicyOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setImmutabilityPolicy\", options);\n try {\n return await this.blobContext.setImmutabilityPolicy({\n abortSignal: options?.abortSignal,\n immutabilityPolicyExpiry: immutabilityPolicy.expiriesOn,\n immutabilityPolicyMode: immutabilityPolicy.policyMode,\n modifiedAccessConditions: options?.modifiedAccessCondition,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Set legal hold on the blob.\n *\n * @param options - Optional options to set legal hold on the blob.\n */\n public async setLegalHold(\n legalHoldEnabled: boolean,\n options?: BlobSetLegalHoldOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setLegalHold\", options);\n try {\n return await this.blobContext.setLegalHold(legalHoldEnabled, {\n abortSignal: options?.abortSignal,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link AppendBlobClient.create} operation.\n */\nexport interface AppendBlobCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Conditions to meet when creating append blobs.\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when creating append blobs. A common header\n * to set is `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link AppendBlobClient.createIfNotExists} operation.\n */\nexport interface AppendBlobCreateIfNotExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * HTTP headers to set when creating append blobs. A common header to set is\n * `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n}\n\n/**\n * Options to configure {@link AppendBlobClient.seal} operation.\n */\nexport interface AppendBlobSealOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet.\n */\n conditions?: AppendBlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link AppendBlobClient.appendBlock} operation.\n */\nexport interface AppendBlobAppendBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when appending append blob blocks.\n */\n conditions?: AppendBlobRequestConditions;\n /**\n * Callback to receive events on the progress of append block operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the append block content. This hash is used to verify the integrity of the append block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link AppendBlobClient.appendBlockFromURL} operation.\n */\nexport interface AppendBlobAppendBlockFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when appending append blob blocks.\n */\n conditions?: AppendBlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * An MD5 hash of the append block content from the URI.\n * This hash is used to verify the integrity of the append block during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the append block content from the URI.\n * This hash is used to verify the integrity of the append block during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n}\n\n/**\n * Contains response data for the {@link appendBlobClient.createIfNotExists} operation.\n */\nexport interface AppendBlobCreateIfNotExistsResponse extends AppendBlobCreateResponse {\n /**\n * Indicate whether the blob is successfully created. Is false when the blob is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * AppendBlobClient defines a set of operations applicable to append blobs.\n */\nexport class AppendBlobClient extends BlobClient {\n /**\n * appendBlobsContext provided by protocol layer.\n */\n private appendBlobContext: AppendBlob;\n\n /**\n *\n * Creates an instance of AppendBlobClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of AppendBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to an append blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage append blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of AppendBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to an append blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage append blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: PipelineLike;\n let url: string;\n options = options || {};\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions) url = urlOrConnectionString;\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n // The second parameter is undefined. Use anonymous credential.\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.appendBlobContext = new AppendBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new AppendBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new AppendBlobClient object identical to the source but with the specified snapshot timestamp.\n */\n public withSnapshot(snapshot: string): AppendBlobClient {\n return new AppendBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param options - Options to the Append Block Create operation.\n *\n *\n * Example usage:\n *\n * ```js\n * const appendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await appendBlobClient.create();\n * ```\n */\n public async create(options: AppendBlobCreateOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-create\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.create(0, {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.\n * If the blob with the same name already exists, the content of the existing blob will remain unchanged.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param options -\n */\n public async createIfNotExists(\n options: AppendBlobCreateIfNotExistsOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-createIfNotExists\", options);\n const conditions = { ifNoneMatch: ETagAny };\n try {\n const res = await this.create({\n ...updatedOptions,\n conditions,\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response, // _response is made non-enumerable\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"BlobAlreadyExists\") {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: \"Expected exception when creating a blob only if it does not already exist.\",\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Seals the append blob, making it read only.\n *\n * @param options -\n */\n public async seal(options: AppendBlobSealOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-seal\", options);\n options.conditions = options.conditions || {};\n try {\n return await this.appendBlobContext.seal({\n abortSignal: options.abortSignal,\n appendPositionAccessConditions: options.conditions,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Commits a new block of data to the end of the existing append blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/append-block\n *\n * @param body - Data to be appended.\n * @param contentLength - Length of the body in bytes.\n * @param options - Options to the Append Block operation.\n *\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello World!\";\n *\n * // Create a new append blob and append data to the blob.\n * const newAppendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await newAppendBlobClient.create();\n * await newAppendBlobClient.appendBlock(content, content.length);\n *\n * // Append data to an existing append blob.\n * const existingAppendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await existingAppendBlobClient.appendBlock(content, content.length);\n * ```\n */\n public async appendBlock(\n body: HttpRequestBody,\n contentLength: number,\n options: AppendBlobAppendBlockOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-appendBlock\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.appendBlock(contentLength, body, {\n abortSignal: options.abortSignal,\n appendPositionAccessConditions: options.conditions,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Append Block operation commits a new block of data to the end of an existing append blob\n * where the contents are read from a source url.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/append-block-from-url\n *\n * @param sourceURL -\n * The url to the blob that will be the source of the copy. A source blob in the same storage account can\n * be authenticated via Shared Key. However, if the source is a blob in another account, the source blob\n * must either be public or must be authenticated via a shared access signature. If the source blob is\n * public, no authentication is required to perform the operation.\n * @param sourceOffset - Offset in source to be appended\n * @param count - Number of bytes to be appended as a block\n * @param options -\n */\n public async appendBlockFromURL(\n sourceURL: string,\n sourceOffset: number,\n count: number,\n options: AppendBlobAppendBlockFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-appendBlockFromURL\", options);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, {\n abortSignal: options.abortSignal,\n sourceRange: rangeToString({ offset: sourceOffset, count }),\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n leaseAccessConditions: options.conditions,\n appendPositionAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n },\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link BlockBlobClient.upload} operation.\n */\nexport interface BlockBlobUploadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when uploading to the block blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when uploading to a block blob. A common header to set is\n * `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when uploading to a block blob.\n */\n metadata?: Metadata;\n /**\n * Callback to receive events on the progress of upload operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.syncUploadFromURL} operation.\n */\nexport interface BlockBlobSyncUploadFromURLOptions extends CommonOptions {\n /**\n * Server timeout in seconds.\n * For more information, @see https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\n */\n timeoutInSeconds?: number;\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Optional. Specifies a user-defined name-value pair associated with the blob. If no name-value\n * pairs are specified, the operation will copy the metadata from the source blob or file to the\n * destination blob. If one or more name-value pairs are specified, the destination blob is\n * created with the specified metadata, and metadata is not copied from the source blob or file.\n * Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules\n * for C# identifiers. See Naming and Referencing Containers, Blobs, and Metadata for more\n * information.\n */\n metadata?: Metadata;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n /**\n * Specify the md5 calculated for the range of bytes that must be read from the copy source.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * Blob tags.\n */\n tags?: Tags;\n /**\n * Optional, default is true. Indicates if properties from the source blob should be copied.\n */\n copySourceBlobProperties?: boolean;\n /**\n * HTTP headers to set when uploading to a block blob.\n *\n * A common header to set is `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * Conditions to meet for the destination Azure Blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Conditions to meet for the source Azure Blob.\n */\n sourceConditions?: ModifiedAccessConditions;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n /**\n * Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by {@link tags}.\n */\n copySourceTags?: BlobCopySourceTags;\n}\n\n/**\n * Blob query error type.\n */\nexport interface BlobQueryError {\n /**\n * Whether error is fatal. Fatal error will stop query.\n */\n isFatal: boolean;\n /**\n * Error name.\n */\n name: string;\n /**\n * Position in bytes of the query.\n */\n position: number;\n /**\n * Error description.\n */\n description: string;\n}\n\n/**\n * Options to query blob with JSON format.\n */\nexport interface BlobQueryJsonTextConfiguration {\n /**\n * Record separator.\n */\n recordSeparator: string;\n /**\n * Query for a JSON format blob.\n */\n kind: \"json\";\n}\n\n/**\n * Options to query blob with CSV format.\n */\nexport interface BlobQueryCsvTextConfiguration {\n /**\n * Record separator.\n */\n recordSeparator: string;\n /**\n * Query for a CSV format blob.\n */\n kind: \"csv\";\n /**\n * Column separator. Default is \",\".\n */\n columnSeparator?: string;\n /**\n * Field quote.\n */\n fieldQuote?: string;\n /**\n * Escape character.\n */\n escapeCharacter?: string;\n /**\n * Has headers. Default is false.\n */\n hasHeaders?: boolean;\n}\n\n/**\n * Options to query blob with Apache Arrow format. Only valid for {@link BlockBlobQueryOptions.outputTextConfiguration}.\n */\nexport interface BlobQueryArrowConfiguration {\n /**\n * Kind.\n */\n kind: \"arrow\";\n\n /**\n * List of {@link BlobQueryArrowField} describing the schema of the data.\n */\n schema: BlobQueryArrowField[];\n}\n\n/**\n * Options to query blob with Parquet format. Only valid for {@link BlockBlobQueryOptions.inputTextConfiguration}.\n */\nexport interface BlobQueryParquetConfiguration {\n /**\n * Kind.\n */\n kind: \"parquet\";\n}\n\n/**\n * Options to configure {@link BlockBlobClient.query} operation.\n */\nexport interface BlockBlobQueryOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Configurations for the query input.\n */\n inputTextConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryParquetConfiguration;\n /**\n * Configurations for the query output.\n */\n outputTextConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryArrowConfiguration;\n /**\n * Callback to receive events on the progress of query operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Callback to receive error events during the query operaiton.\n */\n onError?: (error: BlobQueryError) => void;\n /**\n * Conditions to meet when uploading to the block blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.stageBlock} operation.\n */\nexport interface BlockBlobStageBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions;\n /**\n * Callback to receive events on the progress of stage block operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentMD5?: Uint8Array;\n\n /**\n * A CRC64 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.stageBlockFromURL} operation.\n */\nexport interface BlockBlobStageBlockFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Specifies the bytes of the source Blob/File to upload.\n * If not specified, the entire content is uploaded as a single block.\n */\n range?: Range;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions;\n /**\n * An MD5 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.commitBlockList} operation.\n */\nexport interface BlockBlobCommitBlockListOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when committing the block list.\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when committing block list.\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when committing block list.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.getBlockList} operation.\n */\nexport interface BlockBlobGetBlockListOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions & TagConditions;\n}\n\n/**\n * Option interface for the {@link BlockBlobClient.uploadStream} operation.\n */\nexport interface BlockBlobUploadStreamOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Blob HTTP Headers.\n *\n * A common header to set is `blobContentType`, enabling the\n * browser to provide functionality based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n\n /**\n * Metadata of block blob.\n */\n metadata?: { [propertyName: string]: string };\n\n /**\n * Access conditions headers.\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n\n /**\n * Blob tags.\n */\n tags?: Tags;\n\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n}\n/**\n * Option interface for {@link BlockBlobClient.uploadFile} and {@link BlockBlobClient.uploadSeekableStream}.\n */\nexport interface BlockBlobParallelUploadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Destination block blob size in bytes.\n */\n blockSize?: number;\n\n /**\n * Blob size threshold in bytes to start concurrency uploading.\n * Default value is 256MB, blob size less than this option will\n * be uploaded via one I/O operation without concurrency.\n * You can customize a value less equal than the default value.\n */\n maxSingleShotSize?: number;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Blob HTTP Headers. A common header to set is\n * `blobContentType`, enabling the browser to provide\n * functionality based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n\n /**\n * Metadata of block blob.\n */\n metadata?: { [propertyName: string]: string };\n\n /**\n * Access conditions headers.\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Concurrency of parallel uploading. Must be greater than or equal to 0.\n */\n concurrency?: number;\n\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n\n /**\n * Blob tags.\n */\n tags?: Tags;\n\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n}\n\n/**\n * Response type for {@link BlockBlobClient.uploadFile}, {@link BlockBlobClient.uploadStream}, and\n * {@link BlockBlobClient.uploadBrowserDate}.\n */\nexport type BlobUploadCommonResponse = BlockBlobUploadHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse;\n};\n\n/**\n * BlockBlobClient defines a set of operations applicable to block blobs.\n */\nexport class BlockBlobClient extends BlobClient {\n /**\n * blobContext provided by protocol layer.\n *\n * Note. Ideally BlobClient should set BlobClient.blobContext to protected. However, API\n * extractor has issue blocking that. Here we redecelare _blobContext in BlockBlobClient.\n */\n private _blobContext: StorageBlob;\n\n /**\n * blockBlobContext provided by protocol layer.\n */\n private blockBlobContext: BlockBlob;\n\n /**\n *\n * Creates an instance of BlockBlobClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlockBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a block blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage block blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlockBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a block blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage block blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: PipelineLike;\n let url: string;\n options = options || {};\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.blockBlobContext = new BlockBlob(this.storageClientContext);\n this._blobContext = new StorageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new BlockBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a URL to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new BlockBlobClient object identical to the source but with the specified snapshot timestamp.\n */\n public withSnapshot(snapshot: string): BlockBlobClient {\n return new BlockBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Quick query for a JSON or CSV formatted blob.\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Query and convert a blob to a string\n * const queryBlockBlobResponse = await blockBlobClient.query(\"select * from BlobStorage\");\n * const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();\n * console.log(\"Query blob content:\", downloaded);\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(data instanceof Buffer ? data : Buffer.from(data));\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * @param query -\n * @param options -\n */\n public async query(\n query: string,\n options: BlockBlobQueryOptions = {}\n ): Promise {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-query\", options);\n\n try {\n if (!isNode) {\n throw new Error(\"This operation currently is only supported in Node.js.\");\n }\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n const response = await this._blobContext.query({\n abortSignal: options.abortSignal,\n queryRequest: {\n queryType: \"SQL\",\n expression: query,\n inputSerialization: toQuerySerialization(options.inputTextConfiguration),\n outputSerialization: toQuerySerialization(options.outputTextConfiguration),\n },\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n return new BlobQueryResponse(response, {\n abortSignal: options.abortSignal,\n onProgress: options.onProgress,\n onError: options.onError,\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a new block blob, or updates the content of an existing block blob.\n * Updating an existing block blob overwrites any existing metadata on the blob.\n * Partial updates are not supported; the content of the existing blob is\n * overwritten with the new content. To perform a partial update of a block blob's,\n * use {@link stageBlock} and {@link commitBlockList}.\n *\n * This is a non-parallel uploading method, please use {@link uploadFile},\n * {@link uploadStream} or {@link uploadBrowserData} for better performance\n * with concurrency uploading.\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param body - Blob, string, ArrayBuffer, ArrayBufferView or a function\n * which returns a new Readable stream whose offset is from data source beginning.\n * @param contentLength - Length of body in bytes. Use Buffer.byteLength() to calculate body length for a\n * string including non non-Base64/Hex-encoded characters.\n * @param options - Options to the Block Blob Upload operation.\n * @returns Response data for the Block Blob Upload operation.\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello world!\";\n * const uploadBlobResponse = await blockBlobClient.upload(content, content.length);\n * ```\n */\n public async upload(\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobUploadOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-upload\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.upload(contentLength, body, {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a new Block Blob where the contents of the blob are read from a given URL.\n * This API is supported beginning with the 2020-04-08 version. Partial updates\n * are not supported with Put Blob from URL; the content of an existing blob is overwritten with\n * the content of the new blob. To perform partial updates to a block blob’s contents using a\n * source URL, use {@link stageBlockFromURL} and {@link commitBlockList}.\n *\n * @param sourceURL - Specifies the URL of the blob. The value\n * may be a URL of up to 2 KB in length that specifies a blob.\n * The value should be URL-encoded as it would appear\n * in a request URI. The source blob must either be public\n * or must be authenticated via a shared access signature.\n * If the source blob is public, no authentication is required\n * to perform the operation. Here are some examples of source object URLs:\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param options - Optional parameters.\n */\n\n public async syncUploadFromURL(\n sourceURL: string,\n options: BlockBlobSyncUploadFromURLOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-syncUploadFromURL\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.putBlobFromUrl(0, sourceURL, {\n ...options,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions?.ifMatch,\n sourceIfModifiedSince: options.sourceConditions?.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions?.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions?.ifUnmodifiedSince,\n sourceIfTags: options.sourceConditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n copySourceTags: options.copySourceTags,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Uploads the specified block to the block blob's \"staging area\" to be later\n * committed by a call to commitBlockList.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-block\n *\n * @param blockId - A 64-byte value that is base64-encoded\n * @param body - Data to upload to the staging area.\n * @param contentLength - Number of bytes to upload.\n * @param options - Options to the Block Blob Stage Block operation.\n * @returns Response data for the Block Blob Stage Block operation.\n */\n public async stageBlock(\n blockId: string,\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobStageBlockOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-stageBlock\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.stageBlock(blockId, contentLength, body, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Stage Block From URL operation creates a new block to be committed as part\n * of a blob where the contents are read from a URL.\n * This API is available starting in version 2018-03-28.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url\n *\n * @param blockId - A 64-byte value that is base64-encoded\n * @param sourceURL - Specifies the URL of the blob. The value\n * may be a URL of up to 2 KB in length that specifies a blob.\n * The value should be URL-encoded as it would appear\n * in a request URI. The source blob must either be public\n * or must be authenticated via a shared access signature.\n * If the source blob is public, no authentication is required\n * to perform the operation. Here are some examples of source object URLs:\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param offset - From which position of the blob to download, greater than or equal to 0\n * @param count - How much data to be downloaded, greater than 0. Will download to the end when undefined\n * @param options - Options to the Block Blob Stage Block From URL operation.\n * @returns Response data for the Block Blob Stage Block From URL operation.\n */\n public async stageBlockFromURL(\n blockId: string,\n sourceURL: string,\n offset: number = 0,\n count?: number,\n options: BlockBlobStageBlockFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-stageBlockFromURL\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset, count }),\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Writes a blob by specifying the list of block IDs that make up the blob.\n * In order to be written as part of a blob, a block must have been successfully written\n * to the server in a prior {@link stageBlock} operation. You can call {@link commitBlockList} to\n * update a blob by uploading only those blocks that have changed, then committing the new and existing\n * blocks together. Any blocks not specified in the block list and permanently deleted.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-block-list\n *\n * @param blocks - Array of 64-byte value that is base64-encoded\n * @param options - Options to the Block Blob Commit Block List operation.\n * @returns Response data for the Block Blob Commit Block List operation.\n */\n public async commitBlockList(\n blocks: string[],\n options: BlockBlobCommitBlockListOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-commitBlockList\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.commitBlockList(\n { latest: blocks },\n {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns the list of blocks that have been uploaded as part of a block blob\n * using the specified block list filter.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-block-list\n *\n * @param listType - Specifies whether to return the list of committed blocks,\n * the list of uncommitted blocks, or both lists together.\n * @param options - Options to the Block Blob Get Block List operation.\n * @returns Response data for the Block Blob Get Block List operation.\n */\n public async getBlockList(\n listType: BlockListType,\n options: BlockBlobGetBlockListOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-getBlockList\", options);\n try {\n const res = await this.blockBlobContext.getBlockList(listType, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n\n if (!res.committedBlocks) {\n res.committedBlocks = [];\n }\n\n if (!res.uncommittedBlocks) {\n res.uncommittedBlocks = [];\n }\n\n return res;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n // High level functions\n\n /**\n * Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob.\n *\n * When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is\n * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}\n * to commit the block list.\n *\n * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is\n * `blobContentType`, enabling the browser to provide\n * functionality based on file type.\n *\n * @param data - Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView\n * @param options -\n */\n public async uploadData(\n data: Buffer | Blob | ArrayBuffer | ArrayBufferView,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadData\", options);\n try {\n if (isNode) {\n let buffer: Buffer;\n if (data instanceof Buffer) {\n buffer = data;\n } else if (data instanceof ArrayBuffer) {\n buffer = Buffer.from(data);\n } else {\n data = data as ArrayBufferView;\n buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n }\n\n return this.uploadSeekableInternal(\n (offset: number, size: number): Buffer => buffer.slice(offset, offset + size),\n buffer.byteLength,\n updatedOptions\n );\n } else {\n const browserBlob = new Blob([data]);\n return this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n updatedOptions\n );\n }\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN BROWSERS.\n *\n * Uploads a browser Blob/File/ArrayBuffer/ArrayBufferView object to block blob.\n *\n * When buffer length lesser than or equal to 256MB, this method will use 1 upload call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call\n * {@link commitBlockList} to commit the block list.\n *\n * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is\n * `blobContentType`, enabling the browser to provide\n * functionality based on file type.\n *\n * @deprecated Use {@link uploadData} instead.\n *\n * @param browserData - Blob, File, ArrayBuffer or ArrayBufferView\n * @param options - Options to upload browser data.\n * @returns Response data for the Blob Upload operation.\n */\n public async uploadBrowserData(\n browserData: Blob | ArrayBuffer | ArrayBufferView,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadBrowserData\", options);\n try {\n const browserBlob = new Blob([browserData]);\n return await this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n updatedOptions\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n *\n * Uploads data to block blob. Requires a bodyFactory as the data source,\n * which need to return a {@link HttpRequestBody} object with the offset and size provided.\n *\n * When data length is no more than the specified {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is\n * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}\n * to commit the block list.\n *\n * @param bodyFactory -\n * @param size - size of the data to upload.\n * @param options - Options to Upload to Block Blob operation.\n * @returns Response data for the Blob Upload operation.\n */\n private async uploadSeekableInternal(\n bodyFactory: (offset: number, size: number) => HttpRequestBody,\n size: number,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n if (!options.blockSize) {\n options.blockSize = 0;\n }\n if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) {\n throw new RangeError(\n `blockSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES}`\n );\n }\n\n if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) {\n options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES;\n }\n if (\n options.maxSingleShotSize < 0 ||\n options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES\n ) {\n throw new RangeError(\n `maxSingleShotSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}`\n );\n }\n\n if (options.blockSize === 0) {\n if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(`${size} is too larger to upload to a block blob.`);\n }\n if (size > options.maxSingleShotSize) {\n options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS);\n if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) {\n options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;\n }\n }\n }\n if (!options.blobHTTPHeaders) {\n options.blobHTTPHeaders = {};\n }\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadSeekableInternal\", options);\n\n try {\n if (size <= options.maxSingleShotSize) {\n return await this.upload(bodyFactory(0, size), size, updatedOptions);\n }\n\n const numBlocks: number = Math.floor((size - 1) / options.blockSize) + 1;\n if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(\n `The buffer's size is too big or the BlockSize is too small;` +\n `the number of blocks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`\n );\n }\n\n const blockList: string[] = [];\n const blockIDPrefix = generateUuid();\n let transferProgress: number = 0;\n\n const batch = new Batch(options.concurrency);\n for (let i = 0; i < numBlocks; i++) {\n batch.addOperation(async (): Promise => {\n const blockID = generateBlockID(blockIDPrefix, i);\n const start = options.blockSize! * i;\n const end = i === numBlocks - 1 ? size : start + options.blockSize!;\n const contentLength = end - start;\n blockList.push(blockID);\n await this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n encryptionScope: options.encryptionScope,\n tracingOptions: updatedOptions.tracingOptions,\n });\n // Update progress after block is successfully uploaded to server, in case of block trying\n // TODO: Hook with convenience layer progress event in finer level\n transferProgress += contentLength;\n if (options.onProgress) {\n options.onProgress!({\n loadedBytes: transferProgress,\n });\n }\n });\n }\n await batch.do();\n\n return this.commitBlockList(blockList, updatedOptions);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a local file in blocks to a block blob.\n *\n * When file size lesser than or equal to 256MB, this method will use 1 upload call to finish the upload.\n * Otherwise, this method will call stageBlock to upload blocks, and finally call commitBlockList\n * to commit the block list.\n *\n * @param filePath - Full path of local file\n * @param options - Options to Upload to Block Blob operation.\n * @returns Response data for the Blob Upload operation.\n */\n public async uploadFile(\n filePath: string,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadFile\", options);\n try {\n const size = (await fsStat(filePath)).size;\n return await this.uploadSeekableInternal(\n (offset, count) => {\n return () =>\n fsCreateReadStream(filePath, {\n autoClose: true,\n end: count ? offset + count - 1 : Infinity,\n start: offset,\n });\n },\n size,\n {\n ...options,\n tracingOptions: {\n ...options!.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a Node.js Readable stream into block blob.\n *\n * PERFORMANCE IMPROVEMENT TIPS:\n * * Input stream highWaterMark is better to set a same value with bufferSize\n * parameter, which will avoid Buffer.concat() operations.\n *\n * @param stream - Node.js Readable stream\n * @param bufferSize - Size of every buffer allocated, also the block size in the uploaded block blob. Default value is 8MB\n * @param maxConcurrency - Max concurrency indicates the max number of buffers that can be allocated,\n * positive correlation with max uploading concurrency. Default value is 5\n * @param options - Options to Upload Stream to Block Blob operation.\n * @returns Response data for the Blob Upload operation.\n */\n public async uploadStream(\n stream: Readable,\n bufferSize: number = DEFAULT_BLOCK_BUFFER_SIZE_BYTES,\n maxConcurrency: number = 5,\n options: BlockBlobUploadStreamOptions = {}\n ): Promise {\n if (!options.blobHTTPHeaders) {\n options.blobHTTPHeaders = {};\n }\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadStream\", options);\n\n try {\n let blockNum = 0;\n const blockIDPrefix = generateUuid();\n let transferProgress: number = 0;\n const blockList: string[] = [];\n\n const scheduler = new BufferScheduler(\n stream,\n bufferSize,\n maxConcurrency,\n async (body, length) => {\n const blockID = generateBlockID(blockIDPrefix, blockNum);\n blockList.push(blockID);\n blockNum++;\n\n await this.stageBlock(blockID, body, length, {\n conditions: options.conditions,\n encryptionScope: options.encryptionScope,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n // Update progress after block is successfully uploaded to server, in case of block trying\n transferProgress += length;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n },\n // concurrency should set a smaller value than maxConcurrency, which is helpful to\n // reduce the possibility when a outgoing handler waits for stream data, in\n // this situation, outgoing handlers are blocked.\n // Outgoing queue shouldn't be empty.\n Math.ceil((maxConcurrency / 4) * 3)\n );\n await scheduler.do();\n\n return await this.commitBlockList(blockList, {\n ...options,\n tracingOptions: {\n ...options!.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure the {@link PageBlobClient.create} operation.\n */\nexport interface PageBlobCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when creating a page blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * A user-controlled value that can be used to track requests.\n * The value must be between 0 and 2^63 - 1. The default value is 0.\n */\n blobSequenceNumber?: number;\n /**\n * HTTP headers to set when creating a page blob.\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: PremiumPageBlobTier | string;\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.createIfNotExists} operation.\n */\nexport interface PageBlobCreateIfNotExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A user-controlled value that can be used to track requests.\n * The value must be between 0 and 2^63 - 1. The default value is 0.\n */\n blobSequenceNumber?: number;\n /**\n * HTTP headers to set when creating a page blob.\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: PremiumPageBlobTier | string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.uploadPages} operation.\n */\nexport interface PageBlobUploadPagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when uploading pages.\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Callback to receive events on the progress of upload pages operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the content. This hash is used to verify the integrity of the content during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content. This hash is used to verify the integrity of the content during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.clearPages} operation.\n */\nexport interface PageBlobClearPagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when clearing pages.\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.getPageRanges} operation.\n */\nexport interface PageBlobGetPageRangesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure page blob - get page ranges segment operations.\n *\n * See:\n * - {@link PageBlobClient.listPageRangesSegment}\n * - {@link PageBlobClient.listPageRangeItemSegments}\n * - {@link PageBlobClient.listPageRangeItems}\n */\ninterface PageBlobListPageRangesSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies the maximum number of containers\n * to return. If the request does not specify maxPageSize, or specifies a\n * value greater than 5000, the server will return up to 5000 items. Note\n * that if the listing operation crosses a partition boundary, then the\n * service will return a continuation token for retrieving the remainder of\n * the results. For this reason, it is possible that the service will return\n * fewer results than specified by maxPageSize, or than the default of 5000.\n */\n maxPageSize?: number;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.listPageRanges} operation.\n */\nexport interface PageBlobListPageRangesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.getRangesDiff} operation.\n */\nexport interface PageBlobGetPageRangesDiffOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges diff.\n */\n conditions?: BlobRequestConditions;\n /**\n * (unused)\n */\n range?: string;\n}\n\n/**\n * Options to configure page blob - get page ranges diff segment operations.\n *\n * See:\n * - {@link PageBlobClient.listPageRangesDiffSegment}\n * - {@link PageBlobClient.listPageRangeDiffItemSegments}\n * - {@link PageBlobClient.listPageRangeDiffItems}\n */\ninterface PageBlobListPageRangesDiffSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies the maximum number of containers\n * to return. If the request does not specify maxPageSize, or specifies a\n * value greater than 5000, the server will return up to 5000 items. Note\n * that if the listing operation crosses a partition boundary, then the\n * service will return a continuation token for retrieving the remainder of\n * the results. For this reason, it is possible that the service will return\n * fewer results than specified by maxPageSize, or than the default of 5000.\n */\n maxPageSize?: number;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.listPageRangesDiff} operation.\n */\nexport interface PageBlobListPageRangesDiffOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges diff.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.resize} operation.\n */\nexport interface PageBlobResizeOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when resizing a page blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link PageBlobClient.updateSequenceNumber} operation.\n */\nexport interface PageBlobUpdateSequenceNumberOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when updating sequence number.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.startCopyIncremental} operation.\n */\nexport interface PageBlobStartCopyIncrementalOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when starting a copy incremental operation.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.uploadPagesFromURL} operation.\n */\nexport interface PageBlobUploadPagesFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when updating sequence number.\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * An MD5 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n}\n\n/**\n * Contains response data for the {@link PageBlobClient.createIfNotExists} operation.\n */\nexport interface PageBlobCreateIfNotExistsResponse extends PageBlobCreateResponse {\n /**\n * Indicate whether the blob is successfully created. Is false when the blob is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * PageBlobClient defines a set of operations applicable to page blobs.\n */\nexport class PageBlobClient extends BlobClient {\n /**\n * pageBlobsContext provided by protocol layer.\n */\n private pageBlobContext: PageBlob;\n\n /**\n *\n * Creates an instance of PageBlobClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of PageBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A Client string pointing to Azure Storage page blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net/mycontainer/pageblob?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of PageBlobClient.\n *\n * @param url - A URL string pointing to Azure Storage page blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob\".\n * You can append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: PipelineLike;\n let url: string;\n options = options || {};\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.pageBlobContext = new PageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new PageBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new PageBlobClient object identical to the source but with the specified snapshot timestamp.\n */\n public withSnapshot(snapshot: string): PageBlobClient {\n return new PageBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a page blob of the specified length. Call uploadPages to upload data\n * data to a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param size - size of the page blob.\n * @param options - Options to the Page Blob Create operation.\n * @returns Response data for the Page Blob Create operation.\n */\n public async create(\n size: number,\n options: PageBlobCreateOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-create\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.create(0, size, {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n blobSequenceNumber: options.blobSequenceNumber,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a page blob of the specified length. Call uploadPages to upload data\n * data to a page blob. If the blob with the same name already exists, the content\n * of the existing blob will remain unchanged.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param size - size of the page blob.\n * @param options -\n */\n public async createIfNotExists(\n size: number,\n options: PageBlobCreateIfNotExistsOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-createIfNotExists\", options);\n try {\n const conditions = { ifNoneMatch: ETagAny };\n const res = await this.create(size, {\n ...options,\n conditions,\n tracingOptions: updatedOptions.tracingOptions,\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response, // _response is made non-enumerable\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"BlobAlreadyExists\") {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: \"Expected exception when creating a blob only if it does not already exist.\",\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Writes 1 or more pages to the page blob. The start and end offsets must be a multiple of 512.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-page\n *\n * @param body - Data to upload\n * @param offset - Offset of destination page blob\n * @param count - Content length of the body, also number of bytes to be uploaded\n * @param options - Options to the Page Blob Upload Pages operation.\n * @returns Response data for the Page Blob Upload Pages operation.\n */\n public async uploadPages(\n body: HttpRequestBody,\n offset: number,\n count: number,\n options: PageBlobUploadPagesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-uploadPages\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.uploadPages(count, body, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n range: rangeToString({ offset, count }),\n sequenceNumberAccessConditions: options.conditions,\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Upload Pages operation writes a range of pages to a page blob where the\n * contents are read from a URL.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-page-from-url\n *\n * @param sourceURL - Specify a URL to the copy source, Shared Access Signature(SAS) maybe needed for authentication\n * @param sourceOffset - The source offset to copy from. Pass 0 to copy from the beginning of source page blob\n * @param destOffset - Offset of destination page blob\n * @param count - Number of bytes to be uploaded from source page blob\n * @param options -\n */\n public async uploadPagesFromURL(\n sourceURL: string,\n sourceOffset: number,\n destOffset: number,\n count: number,\n options: PageBlobUploadPagesFromURLOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-uploadPagesFromURL\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.uploadPagesFromURL(\n sourceURL,\n rangeToString({ offset: sourceOffset, count }),\n 0,\n rangeToString({ offset: destOffset, count }),\n {\n abortSignal: options.abortSignal,\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n leaseAccessConditions: options.conditions,\n sequenceNumberAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Frees the specified pages from the page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-page\n *\n * @param offset - Starting byte position of the pages to clear.\n * @param count - Number of bytes to clear.\n * @param options - Options to the Page Blob Clear Pages operation.\n * @returns Response data for the Page Blob Clear Pages operation.\n */\n public async clearPages(\n offset: number = 0,\n count?: number,\n options: PageBlobClearPagesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-clearPages\", options);\n try {\n return await this.pageBlobContext.clearPages(0, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({ offset, count }),\n sequenceNumberAccessConditions: options.conditions,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns the list of valid page ranges for a page blob or snapshot of a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param options - Options to the Page Blob Get Ranges operation.\n * @returns Response data for the Page Blob Get Ranges operation.\n */\n public async getPageRanges(\n offset: number = 0,\n count?: number,\n options: PageBlobGetPageRangesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRanges\", options);\n try {\n return await this.pageBlobContext\n .getPageRanges({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({ offset, count }),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n })\n .then(rangeResponseFromModel);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * getPageRangesSegment returns a single segment of page ranges starting from the\n * specified Marker. Use an empty Marker to start enumeration from the beginning.\n * After getting a segment, process it, and then call getPageRangesSegment again\n * (passing the the previously-returned Marker) to get the next segment.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param marker - A string value that identifies the portion of the list to be returned with the next list operation.\n * @param options - Options to PageBlob Get Page Ranges Segment operation.\n */\n private async listPageRangesSegment(\n offset: number = 0,\n count?: number,\n marker?: string,\n options: PageBlobListPageRangesSegmentOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRangesSegment\", options);\n try {\n return await this.pageBlobContext.getPageRanges({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({ offset, count }),\n marker: marker,\n maxPageSize: options.maxPageSize,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n /**\n * Returns an AsyncIterableIterator for {@link PageBlobGetPageRangesResponseModel}\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param marker - A string value that identifies the portion of\n * the get of page ranges to be returned with the next getting operation. The\n * operation returns the ContinuationToken value within the response body if the\n * getting operation did not return all page ranges remaining within the current page.\n * The ContinuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of get\n * items. The marker value is opaque to the client.\n * @param options - Options to List Page Ranges operation.\n */\n private async *listPageRangeItemSegments(\n offset: number = 0,\n count?: number,\n marker?: string,\n options: PageBlobListPageRangesSegmentOptions = {}\n ): AsyncIterableIterator {\n let getPageRangeItemSegmentsResponse;\n if (!!marker || marker === undefined) {\n do {\n getPageRangeItemSegmentsResponse = await this.listPageRangesSegment(\n offset,\n count,\n marker,\n options\n );\n marker = getPageRangeItemSegmentsResponse.continuationToken;\n yield await getPageRangeItemSegmentsResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator of {@link PageRangeInfo} objects\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param options - Options to List Page Ranges operation.\n */\n private async *listPageRangeItems(\n offset: number = 0,\n count?: number,\n options: PageBlobListPageRangesSegmentOptions = {}\n ): AsyncIterableIterator {\n let marker: string | undefined;\n for await (const getPageRangesSegment of this.listPageRangeItemSegments(\n offset,\n count,\n marker,\n options\n )) {\n yield* ExtractPageRangeInfoItems(getPageRangesSegment);\n }\n }\n\n /**\n * Returns an async iterable iterator to list of page ranges for a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * .byPage() returns an async iterable iterator to list of page ranges for a page blob.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the pageBlobClient before you run these snippets,\n * // Can be obtained from `blobServiceClient.getContainerClient(\"\").getPageBlobClient(\"\");`\n * let i = 1;\n * for await (const pageRange of pageBlobClient.listPageRanges()) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = pageBlobClient.listPageRanges();\n * let pageRangeItem = await iter.next();\n * while (!pageRangeItem.done) {\n * console.log(`Page range ${i++}: ${pageRangeItem.value.start} - ${pageRangeItem.value.end}, IsClear: ${pageRangeItem.value.isClear}`);\n * pageRangeItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of pageBlobClient.listPageRanges().byPage({ maxPageSize: 20 })) {\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = pageBlobClient.listPageRanges().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 page ranges\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = pageBlobClient.listPageRanges().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 page ranges\n * for (const blob of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param options - Options to the Page Blob Get Ranges operation.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listPageRanges(\n offset: number = 0,\n count?: number,\n options: PageBlobListPageRangesOptions = {}\n ): PagedAsyncIterableIterator {\n options.conditions = options.conditions || {};\n // AsyncIterableIterator to iterate over blobs\n const iter = this.listPageRangeItems(offset, count, options);\n return {\n /**\n * The next method, part of the iteration protocol\n */\n next() {\n return iter.next();\n },\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listPageRangeItemSegments(offset, count, settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...options,\n });\n },\n };\n }\n\n /**\n * Gets the collection of page ranges that differ between a specified snapshot and this page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page blob\n * @param count - Number of bytes to get ranges diff.\n * @param prevSnapshot - Timestamp of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n * @returns Response data for the Page Blob Get Page Range Diff operation.\n */\n public async getPageRangesDiff(\n offset: number,\n count: number,\n prevSnapshot: string,\n options: PageBlobGetPageRangesDiffOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRangesDiff\", options);\n\n try {\n return await this.pageBlobContext\n .getPageRangesDiff({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n prevsnapshot: prevSnapshot,\n range: rangeToString({ offset, count }),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n })\n .then(rangeResponseFromModel);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * getPageRangesDiffSegment returns a single segment of page ranges starting from the\n * specified Marker for difference between previous snapshot and the target page blob.\n * Use an empty Marker to start enumeration from the beginning.\n * After getting a segment, process it, and then call getPageRangesDiffSegment again\n * (passing the the previously-returned Marker) to get the next segment.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.\n * @param marker - A string value that identifies the portion of the get to be returned with the next get operation.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n */\n private async listPageRangesDiffSegment(\n offset: number,\n count: number,\n prevSnapshotOrUrl: string,\n marker?: string,\n options?: PageBlobListPageRangesDiffSegmentOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRangesDiffSegment\", options);\n try {\n return await this.pageBlobContext.getPageRangesDiff({\n abortSignal: options?.abortSignal,\n leaseAccessConditions: options?.conditions,\n modifiedAccessConditions: {\n ...options?.conditions,\n ifTags: options?.conditions?.tagConditions,\n },\n prevsnapshot: prevSnapshotOrUrl,\n range: rangeToString({\n offset: offset,\n count: count,\n }),\n marker: marker,\n maxPageSize: options?.maxPageSize,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n /**\n * Returns an AsyncIterableIterator for {@link PageBlobGetPageRangesDiffResponseModel}\n *\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.\n * @param marker - A string value that identifies the portion of\n * the get of page ranges to be returned with the next getting operation. The\n * operation returns the ContinuationToken value within the response body if the\n * getting operation did not return all page ranges remaining within the current page.\n * The ContinuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of get\n * items. The marker value is opaque to the client.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n */\n private async *listPageRangeDiffItemSegments(\n offset: number,\n count: number,\n prevSnapshotOrUrl: string,\n marker?: string,\n options?: PageBlobListPageRangesDiffSegmentOptions\n ): AsyncIterableIterator {\n let getPageRangeItemSegmentsResponse;\n if (!!marker || marker === undefined) {\n do {\n getPageRangeItemSegmentsResponse = await this.listPageRangesDiffSegment(\n offset,\n count,\n prevSnapshotOrUrl,\n marker,\n options\n );\n marker = getPageRangeItemSegmentsResponse.continuationToken;\n yield await getPageRangeItemSegmentsResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator of {@link PageRangeInfo} objects\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n */\n private async *listPageRangeDiffItems(\n offset: number,\n count: number,\n prevSnapshotOrUrl: string,\n options?: PageBlobListPageRangesDiffSegmentOptions\n ): AsyncIterableIterator {\n let marker: string | undefined;\n for await (const getPageRangesSegment of this.listPageRangeDiffItemSegments(\n offset,\n count,\n prevSnapshotOrUrl,\n marker,\n options\n )) {\n yield* ExtractPageRangeInfoItems(getPageRangesSegment);\n }\n }\n\n /**\n * Returns an async iterable iterator to list of page ranges that differ between a specified snapshot and this page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * .byPage() returns an async iterable iterator to list of page ranges that differ between a specified snapshot and this page blob.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the pageBlobClient before you run these snippets,\n * // Can be obtained from `blobServiceClient.getContainerClient(\"\").getPageBlobClient(\"\");`\n * let i = 1;\n * for await (const pageRange of pageBlobClient.listPageRangesDiff()) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = pageBlobClient.listPageRangesDiff();\n * let pageRangeItem = await iter.next();\n * while (!pageRangeItem.done) {\n * console.log(`Page range ${i++}: ${pageRangeItem.value.start} - ${pageRangeItem.value.end}, IsClear: ${pageRangeItem.value.isClear}`);\n * pageRangeItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of pageBlobClient.listPageRangesDiff().byPage({ maxPageSize: 20 })) {\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = pageBlobClient.listPageRangesDiff().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 page ranges\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = pageBlobClient.listPageRangesDiff().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 page ranges\n * for (const blob of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshot - Timestamp of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Ranges operation.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listPageRangesDiff(\n offset: number,\n count: number,\n prevSnapshot: string,\n options: PageBlobListPageRangesDiffOptions = {}\n ): PagedAsyncIterableIterator {\n options.conditions = options.conditions || {};\n\n // AsyncIterableIterator to iterate over blobs\n const iter = this.listPageRangeDiffItems(offset, count, prevSnapshot, {\n ...options,\n });\n return {\n /**\n * The next method, part of the iteration protocol\n */\n next() {\n return iter.next();\n },\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listPageRangeDiffItemSegments(\n offset,\n count,\n prevSnapshot,\n settings.continuationToken,\n {\n maxPageSize: settings.maxPageSize,\n ...options,\n }\n );\n },\n };\n }\n\n /**\n * Gets the collection of page ranges that differ between a specified snapshot and this page blob for managed disks.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page blob\n * @param count - Number of bytes to get ranges diff.\n * @param prevSnapshotUrl - URL of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n * @returns Response data for the Page Blob Get Page Range Diff operation.\n */\n public async getPageRangesDiffForManagedDisks(\n offset: number,\n count: number,\n prevSnapshotUrl: string,\n options: PageBlobGetPageRangesDiffOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\n \"PageBlobClient-GetPageRangesDiffForManagedDisks\",\n options\n );\n\n try {\n return await this.pageBlobContext\n .getPageRangesDiff({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n prevSnapshotUrl,\n range: rangeToString({ offset, count }),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n })\n .then(rangeResponseFromModel);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Resizes the page blob to the specified size (which must be a multiple of 512).\n * @see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties\n *\n * @param size - Target size\n * @param options - Options to the Page Blob Resize operation.\n * @returns Response data for the Page Blob Resize operation.\n */\n public async resize(\n size: number,\n options: PageBlobResizeOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-resize\", options);\n try {\n return await this.pageBlobContext.resize(size, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets a page blob's sequence number.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param sequenceNumberAction - Indicates how the service should modify the blob's sequence number.\n * @param sequenceNumber - Required if sequenceNumberAction is max or update\n * @param options - Options to the Page Blob Update Sequence Number operation.\n * @returns Response data for the Page Blob Update Sequence Number operation.\n */\n public async updateSequenceNumber(\n sequenceNumberAction: SequenceNumberActionType,\n sequenceNumber?: number,\n options: PageBlobUpdateSequenceNumberOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-updateSequenceNumber\", options);\n try {\n return await this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, {\n abortSignal: options.abortSignal,\n blobSequenceNumber: sequenceNumber,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Begins an operation to start an incremental copy from one page blob's snapshot to this page blob.\n * The snapshot is copied such that only the differential changes between the previously\n * copied snapshot are transferred to the destination.\n * The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual.\n * @see https://docs.microsoft.com/rest/api/storageservices/incremental-copy-blob\n * @see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/incremental-snapshots\n *\n * @param copySource - Specifies the name of the source page blob snapshot. For example,\n * https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param options - Options to the Page Blob Copy Incremental operation.\n * @returns Response data for the Page Blob Copy Incremental operation.\n */\n public async startCopyIncremental(\n copySource: string,\n options: PageBlobStartCopyIncrementalOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-startCopyIncremental\", options);\n try {\n return await this.pageBlobContext.copyIncremental(copySource, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as http from \"http\";\nimport * as https from \"https\";\nimport * as tough from \"tough-cookie\";\nimport { AbortController, AbortError } from \"@azure/abort-controller\";\nimport { HttpHeaders, HttpHeadersLike } from \"./httpHeaders\";\nimport { ProxyAgent, createProxyAgent, isUrlHttps } from \"./proxyAgent\";\nimport { Readable, Transform } from \"stream\";\nimport { TransferProgressEvent, WebResourceLike } from \"./webResource\";\nimport FormData from \"form-data\";\nimport { HttpClient } from \"./httpClient\";\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { RestError } from \"./restError\";\nimport { logger } from \"./log\";\nimport node_fetch from \"node-fetch\";\n\ninterface AgentCache {\n httpAgent?: http.Agent;\n httpsAgent?: https.Agent;\n}\n\nfunction getCachedAgent(\n isHttps: boolean,\n agentCache: AgentCache\n): http.Agent | https.Agent | undefined {\n return isHttps ? agentCache.httpsAgent : agentCache.httpAgent;\n}\n\ninterface FetchError extends Error {\n code?: string;\n errno?: string;\n type?: string;\n}\n\n/**\n * String URLs used when calling to `fetch()`.\n */\nexport type CommonRequestInfo = string;\n\n/**\n * An object containing information about the outgoing HTTP request.\n */\nexport type CommonRequestInit = Omit & {\n body?: any;\n headers?: any;\n signal?: any;\n};\n\n/**\n * An object containing information about the incoming HTTP response.\n */\nexport type CommonResponse = Omit & {\n body: any;\n trailer: any;\n formData: any;\n};\n\nexport class ReportTransform extends Transform {\n private loadedBytes: number = 0;\n _transform(chunk: string | Buffer, _encoding: string, callback: (arg: any) => void): void {\n this.push(chunk);\n this.loadedBytes += chunk.length;\n this.progressCallback!({ loadedBytes: this.loadedBytes });\n callback(undefined);\n }\n\n constructor(private progressCallback: (progress: TransferProgressEvent) => void) {\n super();\n }\n}\n\nfunction isReadableStream(body: any): body is Readable {\n return body && typeof body.pipe === \"function\";\n}\n\nfunction isStreamComplete(stream: Readable, aborter?: AbortController): Promise {\n return new Promise((resolve) => {\n stream.once(\"close\", () => {\n aborter?.abort();\n resolve();\n });\n stream.once(\"end\", resolve);\n stream.once(\"error\", resolve);\n });\n}\n\n/**\n * Transforms a set of headers into the key/value pair defined by {@link HttpHeadersLike}\n */\nexport function parseHeaders(headers: Headers): HttpHeadersLike {\n const httpHeaders = new HttpHeaders();\n\n headers.forEach((value, key) => {\n httpHeaders.set(key, value);\n });\n\n return httpHeaders;\n}\n\n/**\n * An HTTP client that uses `node-fetch`.\n */\nexport class NodeFetchHttpClient implements HttpClient {\n /**\n * Provides minimum viable error handling and the logic that executes the abstract methods.\n * @param httpRequest - Object representing the outgoing HTTP request.\n * @returns An object representing the incoming HTTP response.\n */\n async sendRequest(httpRequest: WebResourceLike): Promise {\n if (!httpRequest && typeof httpRequest !== \"object\") {\n throw new Error(\n \"'httpRequest' (WebResourceLike) cannot be null or undefined and must be of type object.\"\n );\n }\n\n const abortController = new AbortController();\n let abortListener: ((event: any) => void) | undefined;\n if (httpRequest.abortSignal) {\n if (httpRequest.abortSignal.aborted) {\n throw new AbortError(\"The operation was aborted.\");\n }\n\n abortListener = (event: Event) => {\n if (event.type === \"abort\") {\n abortController.abort();\n }\n };\n httpRequest.abortSignal.addEventListener(\"abort\", abortListener);\n }\n\n if (httpRequest.timeout) {\n setTimeout(() => {\n abortController.abort();\n }, httpRequest.timeout);\n }\n\n if (httpRequest.formData) {\n const formData: any = httpRequest.formData;\n const requestForm = new FormData();\n const appendFormValue = (key: string, value: any): void => {\n // value function probably returns a stream so we can provide a fresh stream on each retry\n if (typeof value === \"function\") {\n value = value();\n }\n if (\n value &&\n Object.prototype.hasOwnProperty.call(value, \"value\") &&\n Object.prototype.hasOwnProperty.call(value, \"options\")\n ) {\n requestForm.append(key, value.value, value.options);\n } else {\n requestForm.append(key, value);\n }\n };\n for (const formKey of Object.keys(formData)) {\n const formValue = formData[formKey];\n if (Array.isArray(formValue)) {\n for (let j = 0; j < formValue.length; j++) {\n appendFormValue(formKey, formValue[j]);\n }\n } else {\n appendFormValue(formKey, formValue);\n }\n }\n\n httpRequest.body = requestForm;\n httpRequest.formData = undefined;\n const contentType = httpRequest.headers.get(\"Content-Type\");\n if (contentType && contentType.indexOf(\"multipart/form-data\") !== -1) {\n if (typeof requestForm.getBoundary === \"function\") {\n httpRequest.headers.set(\n \"Content-Type\",\n `multipart/form-data; boundary=${requestForm.getBoundary()}`\n );\n } else {\n // browser will automatically apply a suitable content-type header\n httpRequest.headers.remove(\"Content-Type\");\n }\n }\n }\n\n let body = httpRequest.body\n ? typeof httpRequest.body === \"function\"\n ? httpRequest.body()\n : httpRequest.body\n : undefined;\n if (httpRequest.onUploadProgress && httpRequest.body) {\n const onUploadProgress = httpRequest.onUploadProgress;\n const uploadReportStream = new ReportTransform(onUploadProgress);\n if (isReadableStream(body)) {\n body.pipe(uploadReportStream);\n } else {\n uploadReportStream.end(body);\n }\n\n body = uploadReportStream;\n }\n\n const platformSpecificRequestInit: Partial = await this.prepareRequest(\n httpRequest\n );\n\n const requestInit: RequestInit = {\n body: body,\n headers: httpRequest.headers.rawHeaders(),\n method: httpRequest.method,\n signal: abortController.signal,\n redirect: \"manual\",\n ...platformSpecificRequestInit,\n };\n\n let operationResponse: HttpOperationResponse | undefined;\n try {\n const response: CommonResponse = await this.fetch(httpRequest.url, requestInit);\n\n const headers = parseHeaders(response.headers);\n\n const streaming =\n httpRequest.streamResponseStatusCodes?.has(response.status) ||\n httpRequest.streamResponseBody;\n\n operationResponse = {\n headers: headers,\n request: httpRequest,\n status: response.status,\n readableStreamBody: streaming\n ? (response.body as unknown as NodeJS.ReadableStream)\n : undefined,\n bodyAsText: !streaming ? await response.text() : undefined,\n };\n\n const onDownloadProgress = httpRequest.onDownloadProgress;\n if (onDownloadProgress) {\n const responseBody: ReadableStream | undefined = response.body || undefined;\n\n if (isReadableStream(responseBody)) {\n const downloadReportStream = new ReportTransform(onDownloadProgress);\n responseBody.pipe(downloadReportStream);\n operationResponse.readableStreamBody = downloadReportStream;\n } else {\n const length = parseInt(headers.get(\"Content-Length\")!) || undefined;\n if (length) {\n // Calling callback for non-stream response for consistency with browser\n onDownloadProgress({ loadedBytes: length });\n }\n }\n }\n\n await this.processRequest(operationResponse);\n\n return operationResponse;\n } catch (error: any) {\n const fetchError: FetchError = error;\n if (fetchError.code === \"ENOTFOUND\") {\n throw new RestError(\n fetchError.message,\n RestError.REQUEST_SEND_ERROR,\n undefined,\n httpRequest\n );\n } else if (fetchError.type === \"aborted\") {\n throw new AbortError(\"The operation was aborted.\");\n }\n\n throw fetchError;\n } finally {\n // clean up event listener\n if (httpRequest.abortSignal && abortListener) {\n let uploadStreamDone = Promise.resolve();\n if (isReadableStream(body)) {\n uploadStreamDone = isStreamComplete(body);\n }\n let downloadStreamDone = Promise.resolve();\n if (isReadableStream(operationResponse?.readableStreamBody)) {\n downloadStreamDone = isStreamComplete(\n operationResponse!.readableStreamBody,\n abortController\n );\n }\n\n Promise.all([uploadStreamDone, downloadStreamDone])\n .then(() => {\n httpRequest.abortSignal?.removeEventListener(\"abort\", abortListener!);\n return;\n })\n .catch((e) => {\n logger.warning(\"Error when cleaning up abortListener on httpRequest\", e);\n });\n }\n }\n }\n\n // a mapping of proxy settings string `${host}:${port}:${username}:${password}` to agent\n private proxyAgentMap: Map = new Map();\n private keepAliveAgents: AgentCache = {};\n\n private readonly cookieJar = new tough.CookieJar(undefined, { looseMode: true });\n\n private getOrCreateAgent(httpRequest: WebResourceLike): http.Agent | https.Agent {\n const isHttps = isUrlHttps(httpRequest.url);\n\n // At the moment, proxy settings and keepAlive are mutually\n // exclusive because the 'tunnel' library currently lacks the\n // ability to create a proxy with keepAlive turned on.\n if (httpRequest.proxySettings) {\n const { host, port, username, password } = httpRequest.proxySettings;\n const key = `${host}:${port}:${username}:${password}`;\n const proxyAgents = this.proxyAgentMap.get(key) ?? {};\n\n let agent = getCachedAgent(isHttps, proxyAgents);\n if (agent) {\n return agent;\n }\n\n const tunnel: ProxyAgent = createProxyAgent(\n httpRequest.url,\n httpRequest.proxySettings,\n httpRequest.headers\n );\n\n agent = tunnel.agent;\n if (tunnel.isHttps) {\n proxyAgents.httpsAgent = tunnel.agent as https.Agent;\n } else {\n proxyAgents.httpAgent = tunnel.agent;\n }\n this.proxyAgentMap.set(key, proxyAgents);\n\n return agent;\n } else if (httpRequest.keepAlive) {\n let agent = getCachedAgent(isHttps, this.keepAliveAgents);\n if (agent) {\n return agent;\n }\n\n const agentOptions: http.AgentOptions | https.AgentOptions = {\n keepAlive: httpRequest.keepAlive,\n };\n\n if (isHttps) {\n agent = this.keepAliveAgents.httpsAgent = new https.Agent(agentOptions);\n } else {\n agent = this.keepAliveAgents.httpAgent = new http.Agent(agentOptions);\n }\n\n return agent;\n } else {\n return isHttps ? https.globalAgent : http.globalAgent;\n }\n }\n\n /**\n * Uses `node-fetch` to perform the request.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-apisurface-standardized-verbs\n async fetch(input: CommonRequestInfo, init?: CommonRequestInit): Promise {\n return node_fetch(input, init) as unknown as Promise;\n }\n\n /**\n * Prepares a request based on the provided web resource.\n */\n async prepareRequest(httpRequest: WebResourceLike): Promise> {\n const requestInit: Partial = {};\n\n if (this.cookieJar && !httpRequest.headers.get(\"Cookie\")) {\n const cookieString = await new Promise((resolve, reject) => {\n this.cookieJar!.getCookieString(httpRequest.url, (err, cookie) => {\n if (err) {\n reject(err);\n } else {\n resolve(cookie);\n }\n });\n });\n\n httpRequest.headers.set(\"Cookie\", cookieString);\n }\n\n // Set the http(s) agent\n requestInit.agent = this.getOrCreateAgent(httpRequest);\n\n requestInit.compress = httpRequest.decompressResponse;\n\n return requestInit;\n }\n\n /**\n * Process an HTTP response. Handles persisting a cookie for subsequent requests if the response has a \"Set-Cookie\" header.\n */\n async processRequest(operationResponse: HttpOperationResponse): Promise {\n if (this.cookieJar) {\n const setCookieHeader = operationResponse.headers.get(\"Set-Cookie\");\n if (setCookieHeader !== undefined) {\n await new Promise((resolve, reject) => {\n this.cookieJar!.setCookie(\n setCookieHeader,\n operationResponse.request.url,\n { ignoreError: true },\n (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n }\n );\n });\n }\n }\n }\n}\n","/*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\"use strict\";\nconst punycode = require(\"punycode\");\nconst urlParse = require(\"url\").parse;\nconst util = require(\"util\");\nconst pubsuffix = require(\"./pubsuffix-psl\");\nconst Store = require(\"./store\").Store;\nconst MemoryCookieStore = require(\"./memstore\").MemoryCookieStore;\nconst pathMatch = require(\"./pathMatch\").pathMatch;\nconst VERSION = require(\"./version\");\nconst { fromCallback } = require(\"universalify\");\n\n// From RFC6265 S4.1.1\n// note that it excludes \\x3B \";\"\nconst COOKIE_OCTETS = /^[\\x21\\x23-\\x2B\\x2D-\\x3A\\x3C-\\x5B\\x5D-\\x7E]+$/;\n\nconst CONTROL_CHARS = /[\\x00-\\x1F]/;\n\n// From Chromium // '\\r', '\\n' and '\\0' should be treated as a terminator in\n// the \"relaxed\" mode, see:\n// https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60\nconst TERMINATORS = [\"\\n\", \"\\r\", \"\\0\"];\n\n// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or \";\"'\n// Note ';' is \\x3B\nconst PATH_VALUE = /[\\x20-\\x3A\\x3C-\\x7E]+/;\n\n// date-time parsing constants (RFC6265 S5.1.1)\n\nconst DATE_DELIM = /[\\x09\\x20-\\x2F\\x3B-\\x40\\x5B-\\x60\\x7B-\\x7E]/;\n\nconst MONTH_TO_NUM = {\n jan: 0,\n feb: 1,\n mar: 2,\n apr: 3,\n may: 4,\n jun: 5,\n jul: 6,\n aug: 7,\n sep: 8,\n oct: 9,\n nov: 10,\n dec: 11\n};\n\nconst MAX_TIME = 2147483647000; // 31-bit max\nconst MIN_TIME = 0; // 31-bit min\nconst SAME_SITE_CONTEXT_VAL_ERR =\n 'Invalid sameSiteContext option for getCookies(); expected one of \"strict\", \"lax\", or \"none\"';\n\nfunction checkSameSiteContext(value) {\n const context = String(value).toLowerCase();\n if (context === \"none\" || context === \"lax\" || context === \"strict\") {\n return context;\n } else {\n return null;\n }\n}\n\nconst PrefixSecurityEnum = Object.freeze({\n SILENT: \"silent\",\n STRICT: \"strict\",\n DISABLED: \"unsafe-disabled\"\n});\n\n// Dumped from ip-regex@4.0.0, with the following changes:\n// * all capturing groups converted to non-capturing -- \"(?:)\"\n// * support for IPv6 Scoped Literal (\"%eth1\") removed\n// * lowercase hexadecimal only\nvar IP_REGEX_LOWERCASE =/(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-f\\d]{1,4}:){7}(?:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,2}|:)|(?:[a-f\\d]{1,4}:){4}(?:(?::[a-f\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,3}|:)|(?:[a-f\\d]{1,4}:){3}(?:(?::[a-f\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,4}|:)|(?:[a-f\\d]{1,4}:){2}(?:(?::[a-f\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,5}|:)|(?:[a-f\\d]{1,4}:){1}(?:(?::[a-f\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,7}|:)))$)/;\n\n/*\n * Parses a Natural number (i.e., non-negative integer) with either the\n * *DIGIT ( non-digit *OCTET )\n * or\n * *DIGIT\n * grammar (RFC6265 S5.1.1).\n *\n * The \"trailingOK\" boolean controls if the grammar accepts a\n * \"( non-digit *OCTET )\" trailer.\n */\nfunction parseDigits(token, minDigits, maxDigits, trailingOK) {\n let count = 0;\n while (count < token.length) {\n const c = token.charCodeAt(count);\n // \"non-digit = %x00-2F / %x3A-FF\"\n if (c <= 0x2f || c >= 0x3a) {\n break;\n }\n count++;\n }\n\n // constrain to a minimum and maximum number of digits.\n if (count < minDigits || count > maxDigits) {\n return null;\n }\n\n if (!trailingOK && count != token.length) {\n return null;\n }\n\n return parseInt(token.substr(0, count), 10);\n}\n\nfunction parseTime(token) {\n const parts = token.split(\":\");\n const result = [0, 0, 0];\n\n /* RF6256 S5.1.1:\n * time = hms-time ( non-digit *OCTET )\n * hms-time = time-field \":\" time-field \":\" time-field\n * time-field = 1*2DIGIT\n */\n\n if (parts.length !== 3) {\n return null;\n }\n\n for (let i = 0; i < 3; i++) {\n // \"time-field\" must be strictly \"1*2DIGIT\", HOWEVER, \"hms-time\" can be\n // followed by \"( non-digit *OCTET )\" so therefore the last time-field can\n // have a trailer\n const trailingOK = i == 2;\n const num = parseDigits(parts[i], 1, 2, trailingOK);\n if (num === null) {\n return null;\n }\n result[i] = num;\n }\n\n return result;\n}\n\nfunction parseMonth(token) {\n token = String(token)\n .substr(0, 3)\n .toLowerCase();\n const num = MONTH_TO_NUM[token];\n return num >= 0 ? num : null;\n}\n\n/*\n * RFC6265 S5.1.1 date parser (see RFC for full grammar)\n */\nfunction parseDate(str) {\n if (!str) {\n return;\n }\n\n /* RFC6265 S5.1.1:\n * 2. Process each date-token sequentially in the order the date-tokens\n * appear in the cookie-date\n */\n const tokens = str.split(DATE_DELIM);\n if (!tokens) {\n return;\n }\n\n let hour = null;\n let minute = null;\n let second = null;\n let dayOfMonth = null;\n let month = null;\n let year = null;\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i].trim();\n if (!token.length) {\n continue;\n }\n\n let result;\n\n /* 2.1. If the found-time flag is not set and the token matches the time\n * production, set the found-time flag and set the hour- value,\n * minute-value, and second-value to the numbers denoted by the digits in\n * the date-token, respectively. Skip the remaining sub-steps and continue\n * to the next date-token.\n */\n if (second === null) {\n result = parseTime(token);\n if (result) {\n hour = result[0];\n minute = result[1];\n second = result[2];\n continue;\n }\n }\n\n /* 2.2. If the found-day-of-month flag is not set and the date-token matches\n * the day-of-month production, set the found-day-of- month flag and set\n * the day-of-month-value to the number denoted by the date-token. Skip\n * the remaining sub-steps and continue to the next date-token.\n */\n if (dayOfMonth === null) {\n // \"day-of-month = 1*2DIGIT ( non-digit *OCTET )\"\n result = parseDigits(token, 1, 2, true);\n if (result !== null) {\n dayOfMonth = result;\n continue;\n }\n }\n\n /* 2.3. If the found-month flag is not set and the date-token matches the\n * month production, set the found-month flag and set the month-value to\n * the month denoted by the date-token. Skip the remaining sub-steps and\n * continue to the next date-token.\n */\n if (month === null) {\n result = parseMonth(token);\n if (result !== null) {\n month = result;\n continue;\n }\n }\n\n /* 2.4. If the found-year flag is not set and the date-token matches the\n * year production, set the found-year flag and set the year-value to the\n * number denoted by the date-token. Skip the remaining sub-steps and\n * continue to the next date-token.\n */\n if (year === null) {\n // \"year = 2*4DIGIT ( non-digit *OCTET )\"\n result = parseDigits(token, 2, 4, true);\n if (result !== null) {\n year = result;\n /* From S5.1.1:\n * 3. If the year-value is greater than or equal to 70 and less\n * than or equal to 99, increment the year-value by 1900.\n * 4. If the year-value is greater than or equal to 0 and less\n * than or equal to 69, increment the year-value by 2000.\n */\n if (year >= 70 && year <= 99) {\n year += 1900;\n } else if (year >= 0 && year <= 69) {\n year += 2000;\n }\n }\n }\n }\n\n /* RFC 6265 S5.1.1\n * \"5. Abort these steps and fail to parse the cookie-date if:\n * * at least one of the found-day-of-month, found-month, found-\n * year, or found-time flags is not set,\n * * the day-of-month-value is less than 1 or greater than 31,\n * * the year-value is less than 1601,\n * * the hour-value is greater than 23,\n * * the minute-value is greater than 59, or\n * * the second-value is greater than 59.\n * (Note that leap seconds cannot be represented in this syntax.)\"\n *\n * So, in order as above:\n */\n if (\n dayOfMonth === null ||\n month === null ||\n year === null ||\n second === null ||\n dayOfMonth < 1 ||\n dayOfMonth > 31 ||\n year < 1601 ||\n hour > 23 ||\n minute > 59 ||\n second > 59\n ) {\n return;\n }\n\n return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));\n}\n\nfunction formatDate(date) {\n return date.toUTCString();\n}\n\n// S5.1.2 Canonicalized Host Names\nfunction canonicalDomain(str) {\n if (str == null) {\n return null;\n }\n str = str.trim().replace(/^\\./, \"\"); // S4.1.2.3 & S5.2.3: ignore leading .\n\n // convert to IDN if any non-ASCII characters\n if (punycode && /[^\\u0001-\\u007f]/.test(str)) {\n str = punycode.toASCII(str);\n }\n\n return str.toLowerCase();\n}\n\n// S5.1.3 Domain Matching\nfunction domainMatch(str, domStr, canonicalize) {\n if (str == null || domStr == null) {\n return null;\n }\n if (canonicalize !== false) {\n str = canonicalDomain(str);\n domStr = canonicalDomain(domStr);\n }\n\n /*\n * S5.1.3:\n * \"A string domain-matches a given domain string if at least one of the\n * following conditions hold:\"\n *\n * \" o The domain string and the string are identical. (Note that both the\n * domain string and the string will have been canonicalized to lower case at\n * this point)\"\n */\n if (str == domStr) {\n return true;\n }\n\n /* \" o All of the following [three] conditions hold:\" */\n\n /* \"* The domain string is a suffix of the string\" */\n const idx = str.indexOf(domStr);\n if (idx <= 0) {\n return false; // it's a non-match (-1) or prefix (0)\n }\n\n // next, check it's a proper suffix\n // e.g., \"a.b.c\".indexOf(\"b.c\") === 2\n // 5 === 3+2\n if (str.length !== domStr.length + idx) {\n return false; // it's not a suffix\n }\n\n /* \" * The last character of the string that is not included in the\n * domain string is a %x2E (\".\") character.\" */\n if (str.substr(idx-1,1) !== '.') {\n return false; // doesn't align on \".\"\n }\n\n /* \" * The string is a host name (i.e., not an IP address).\" */\n if (IP_REGEX_LOWERCASE.test(str)) {\n return false; // it's an IP address\n }\n\n return true;\n}\n\n// RFC6265 S5.1.4 Paths and Path-Match\n\n/*\n * \"The user agent MUST use an algorithm equivalent to the following algorithm\n * to compute the default-path of a cookie:\"\n *\n * Assumption: the path (and not query part or absolute uri) is passed in.\n */\nfunction defaultPath(path) {\n // \"2. If the uri-path is empty or if the first character of the uri-path is not\n // a %x2F (\"/\") character, output %x2F (\"/\") and skip the remaining steps.\n if (!path || path.substr(0, 1) !== \"/\") {\n return \"/\";\n }\n\n // \"3. If the uri-path contains no more than one %x2F (\"/\") character, output\n // %x2F (\"/\") and skip the remaining step.\"\n if (path === \"/\") {\n return path;\n }\n\n const rightSlash = path.lastIndexOf(\"/\");\n if (rightSlash === 0) {\n return \"/\";\n }\n\n // \"4. Output the characters of the uri-path from the first character up to,\n // but not including, the right-most %x2F (\"/\").\"\n return path.slice(0, rightSlash);\n}\n\nfunction trimTerminator(str) {\n for (let t = 0; t < TERMINATORS.length; t++) {\n const terminatorIdx = str.indexOf(TERMINATORS[t]);\n if (terminatorIdx !== -1) {\n str = str.substr(0, terminatorIdx);\n }\n }\n\n return str;\n}\n\nfunction parseCookiePair(cookiePair, looseMode) {\n cookiePair = trimTerminator(cookiePair);\n\n let firstEq = cookiePair.indexOf(\"=\");\n if (looseMode) {\n if (firstEq === 0) {\n // '=' is immediately at start\n cookiePair = cookiePair.substr(1);\n firstEq = cookiePair.indexOf(\"=\"); // might still need to split on '='\n }\n } else {\n // non-loose mode\n if (firstEq <= 0) {\n // no '=' or is at start\n return; // needs to have non-empty \"cookie-name\"\n }\n }\n\n let cookieName, cookieValue;\n if (firstEq <= 0) {\n cookieName = \"\";\n cookieValue = cookiePair.trim();\n } else {\n cookieName = cookiePair.substr(0, firstEq).trim();\n cookieValue = cookiePair.substr(firstEq + 1).trim();\n }\n\n if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {\n return;\n }\n\n const c = new Cookie();\n c.key = cookieName;\n c.value = cookieValue;\n return c;\n}\n\nfunction parse(str, options) {\n if (!options || typeof options !== \"object\") {\n options = {};\n }\n str = str.trim();\n\n // We use a regex to parse the \"name-value-pair\" part of S5.2\n const firstSemi = str.indexOf(\";\"); // S5.2 step 1\n const cookiePair = firstSemi === -1 ? str : str.substr(0, firstSemi);\n const c = parseCookiePair(cookiePair, !!options.loose);\n if (!c) {\n return;\n }\n\n if (firstSemi === -1) {\n return c;\n }\n\n // S5.2.3 \"unparsed-attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\" plus later on in the same section\n // \"discard the first \";\" and trim\".\n const unparsed = str.slice(firstSemi + 1).trim();\n\n // \"If the unparsed-attributes string is empty, skip the rest of these\n // steps.\"\n if (unparsed.length === 0) {\n return c;\n }\n\n /*\n * S5.2 says that when looping over the items \"[p]rocess the attribute-name\n * and attribute-value according to the requirements in the following\n * subsections\" for every item. Plus, for many of the individual attributes\n * in S5.3 it says to use the \"attribute-value of the last attribute in the\n * cookie-attribute-list\". Therefore, in this implementation, we overwrite\n * the previous value.\n */\n const cookie_avs = unparsed.split(\";\");\n while (cookie_avs.length) {\n const av = cookie_avs.shift().trim();\n if (av.length === 0) {\n // happens if \";;\" appears\n continue;\n }\n const av_sep = av.indexOf(\"=\");\n let av_key, av_value;\n\n if (av_sep === -1) {\n av_key = av;\n av_value = null;\n } else {\n av_key = av.substr(0, av_sep);\n av_value = av.substr(av_sep + 1);\n }\n\n av_key = av_key.trim().toLowerCase();\n\n if (av_value) {\n av_value = av_value.trim();\n }\n\n switch (av_key) {\n case \"expires\": // S5.2.1\n if (av_value) {\n const exp = parseDate(av_value);\n // \"If the attribute-value failed to parse as a cookie date, ignore the\n // cookie-av.\"\n if (exp) {\n // over and underflow not realistically a concern: V8's getTime() seems to\n // store something larger than a 32-bit time_t (even with 32-bit node)\n c.expires = exp;\n }\n }\n break;\n\n case \"max-age\": // S5.2.2\n if (av_value) {\n // \"If the first character of the attribute-value is not a DIGIT or a \"-\"\n // character ...[or]... If the remainder of attribute-value contains a\n // non-DIGIT character, ignore the cookie-av.\"\n if (/^-?[0-9]+$/.test(av_value)) {\n const delta = parseInt(av_value, 10);\n // \"If delta-seconds is less than or equal to zero (0), let expiry-time\n // be the earliest representable date and time.\"\n c.setMaxAge(delta);\n }\n }\n break;\n\n case \"domain\": // S5.2.3\n // \"If the attribute-value is empty, the behavior is undefined. However,\n // the user agent SHOULD ignore the cookie-av entirely.\"\n if (av_value) {\n // S5.2.3 \"Let cookie-domain be the attribute-value without the leading %x2E\n // (\".\") character.\"\n const domain = av_value.trim().replace(/^\\./, \"\");\n if (domain) {\n // \"Convert the cookie-domain to lower case.\"\n c.domain = domain.toLowerCase();\n }\n }\n break;\n\n case \"path\": // S5.2.4\n /*\n * \"If the attribute-value is empty or if the first character of the\n * attribute-value is not %x2F (\"/\"):\n * Let cookie-path be the default-path.\n * Otherwise:\n * Let cookie-path be the attribute-value.\"\n *\n * We'll represent the default-path as null since it depends on the\n * context of the parsing.\n */\n c.path = av_value && av_value[0] === \"/\" ? av_value : null;\n break;\n\n case \"secure\": // S5.2.5\n /*\n * \"If the attribute-name case-insensitively matches the string \"Secure\",\n * the user agent MUST append an attribute to the cookie-attribute-list\n * with an attribute-name of Secure and an empty attribute-value.\"\n */\n c.secure = true;\n break;\n\n case \"httponly\": // S5.2.6 -- effectively the same as 'secure'\n c.httpOnly = true;\n break;\n\n case \"samesite\": // RFC6265bis-02 S5.3.7\n const enforcement = av_value ? av_value.toLowerCase() : \"\";\n switch (enforcement) {\n case \"strict\":\n c.sameSite = \"strict\";\n break;\n case \"lax\":\n c.sameSite = \"lax\";\n break;\n default:\n // RFC6265bis-02 S5.3.7 step 1:\n // \"If cookie-av's attribute-value is not a case-insensitive match\n // for \"Strict\" or \"Lax\", ignore the \"cookie-av\".\"\n // This effectively sets it to 'none' from the prototype.\n break;\n }\n break;\n\n default:\n c.extensions = c.extensions || [];\n c.extensions.push(av);\n break;\n }\n }\n\n return c;\n}\n\n/**\n * If the cookie-name begins with a case-sensitive match for the\n * string \"__Secure-\", abort these steps and ignore the cookie\n * entirely unless the cookie's secure-only-flag is true.\n * @param cookie\n * @returns boolean\n */\nfunction isSecurePrefixConditionMet(cookie) {\n return !cookie.key.startsWith(\"__Secure-\") || cookie.secure;\n}\n\n/**\n * If the cookie-name begins with a case-sensitive match for the\n * string \"__Host-\", abort these steps and ignore the cookie\n * entirely unless the cookie meets all the following criteria:\n * 1. The cookie's secure-only-flag is true.\n * 2. The cookie's host-only-flag is true.\n * 3. The cookie-attribute-list contains an attribute with an\n * attribute-name of \"Path\", and the cookie's path is \"/\".\n * @param cookie\n * @returns boolean\n */\nfunction isHostPrefixConditionMet(cookie) {\n return (\n !cookie.key.startsWith(\"__Host-\") ||\n (cookie.secure &&\n cookie.hostOnly &&\n cookie.path != null &&\n cookie.path === \"/\")\n );\n}\n\n// avoid the V8 deoptimization monster!\nfunction jsonParse(str) {\n let obj;\n try {\n obj = JSON.parse(str);\n } catch (e) {\n return e;\n }\n return obj;\n}\n\nfunction fromJSON(str) {\n if (!str) {\n return null;\n }\n\n let obj;\n if (typeof str === \"string\") {\n obj = jsonParse(str);\n if (obj instanceof Error) {\n return null;\n }\n } else {\n // assume it's an Object\n obj = str;\n }\n\n const c = new Cookie();\n for (let i = 0; i < Cookie.serializableProperties.length; i++) {\n const prop = Cookie.serializableProperties[i];\n if (obj[prop] === undefined || obj[prop] === cookieDefaults[prop]) {\n continue; // leave as prototype default\n }\n\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (obj[prop] === null) {\n c[prop] = null;\n } else {\n c[prop] = obj[prop] == \"Infinity\" ? \"Infinity\" : new Date(obj[prop]);\n }\n } else {\n c[prop] = obj[prop];\n }\n }\n\n return c;\n}\n\n/* Section 5.4 part 2:\n * \"* Cookies with longer paths are listed before cookies with\n * shorter paths.\n *\n * * Among cookies that have equal-length path fields, cookies with\n * earlier creation-times are listed before cookies with later\n * creation-times.\"\n */\n\nfunction cookieCompare(a, b) {\n let cmp = 0;\n\n // descending for length: b CMP a\n const aPathLen = a.path ? a.path.length : 0;\n const bPathLen = b.path ? b.path.length : 0;\n cmp = bPathLen - aPathLen;\n if (cmp !== 0) {\n return cmp;\n }\n\n // ascending for time: a CMP b\n const aTime = a.creation ? a.creation.getTime() : MAX_TIME;\n const bTime = b.creation ? b.creation.getTime() : MAX_TIME;\n cmp = aTime - bTime;\n if (cmp !== 0) {\n return cmp;\n }\n\n // break ties for the same millisecond (precision of JavaScript's clock)\n cmp = a.creationIndex - b.creationIndex;\n\n return cmp;\n}\n\n// Gives the permutation of all possible pathMatch()es of a given path. The\n// array is in longest-to-shortest order. Handy for indexing.\nfunction permutePath(path) {\n if (path === \"/\") {\n return [\"/\"];\n }\n const permutations = [path];\n while (path.length > 1) {\n const lindex = path.lastIndexOf(\"/\");\n if (lindex === 0) {\n break;\n }\n path = path.substr(0, lindex);\n permutations.push(path);\n }\n permutations.push(\"/\");\n return permutations;\n}\n\nfunction getCookieContext(url) {\n if (url instanceof Object) {\n return url;\n }\n // NOTE: decodeURI will throw on malformed URIs (see GH-32).\n // Therefore, we will just skip decoding for such URIs.\n try {\n url = decodeURI(url);\n } catch (err) {\n // Silently swallow error\n }\n\n return urlParse(url);\n}\n\nconst cookieDefaults = {\n // the order in which the RFC has them:\n key: \"\",\n value: \"\",\n expires: \"Infinity\",\n maxAge: null,\n domain: null,\n path: null,\n secure: false,\n httpOnly: false,\n extensions: null,\n // set by the CookieJar:\n hostOnly: null,\n pathIsDefault: null,\n creation: null,\n lastAccessed: null,\n sameSite: \"none\"\n};\n\nclass Cookie {\n constructor(options = {}) {\n if (util.inspect.custom) {\n this[util.inspect.custom] = this.inspect;\n }\n\n Object.assign(this, cookieDefaults, options);\n this.creation = this.creation || new Date();\n\n // used to break creation ties in cookieCompare():\n Object.defineProperty(this, \"creationIndex\", {\n configurable: false,\n enumerable: false, // important for assert.deepEqual checks\n writable: true,\n value: ++Cookie.cookiesCreated\n });\n }\n\n inspect() {\n const now = Date.now();\n const hostOnly = this.hostOnly != null ? this.hostOnly : \"?\";\n const createAge = this.creation\n ? `${now - this.creation.getTime()}ms`\n : \"?\";\n const accessAge = this.lastAccessed\n ? `${now - this.lastAccessed.getTime()}ms`\n : \"?\";\n return `Cookie=\"${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}\"`;\n }\n\n toJSON() {\n const obj = {};\n\n for (const prop of Cookie.serializableProperties) {\n if (this[prop] === cookieDefaults[prop]) {\n continue; // leave as prototype default\n }\n\n if (\n prop === \"expires\" ||\n prop === \"creation\" ||\n prop === \"lastAccessed\"\n ) {\n if (this[prop] === null) {\n obj[prop] = null;\n } else {\n obj[prop] =\n this[prop] == \"Infinity\" // intentionally not ===\n ? \"Infinity\"\n : this[prop].toISOString();\n }\n } else if (prop === \"maxAge\") {\n if (this[prop] !== null) {\n // again, intentionally not ===\n obj[prop] =\n this[prop] == Infinity || this[prop] == -Infinity\n ? this[prop].toString()\n : this[prop];\n }\n } else {\n if (this[prop] !== cookieDefaults[prop]) {\n obj[prop] = this[prop];\n }\n }\n }\n\n return obj;\n }\n\n clone() {\n return fromJSON(this.toJSON());\n }\n\n validate() {\n if (!COOKIE_OCTETS.test(this.value)) {\n return false;\n }\n if (\n this.expires != Infinity &&\n !(this.expires instanceof Date) &&\n !parseDate(this.expires)\n ) {\n return false;\n }\n if (this.maxAge != null && this.maxAge <= 0) {\n return false; // \"Max-Age=\" non-zero-digit *DIGIT\n }\n if (this.path != null && !PATH_VALUE.test(this.path)) {\n return false;\n }\n\n const cdomain = this.cdomain();\n if (cdomain) {\n if (cdomain.match(/\\.$/)) {\n return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this\n }\n const suffix = pubsuffix.getPublicSuffix(cdomain);\n if (suffix == null) {\n // it's a public suffix\n return false;\n }\n }\n return true;\n }\n\n setExpires(exp) {\n if (exp instanceof Date) {\n this.expires = exp;\n } else {\n this.expires = parseDate(exp) || \"Infinity\";\n }\n }\n\n setMaxAge(age) {\n if (age === Infinity || age === -Infinity) {\n this.maxAge = age.toString(); // so JSON.stringify() works\n } else {\n this.maxAge = age;\n }\n }\n\n cookieString() {\n let val = this.value;\n if (val == null) {\n val = \"\";\n }\n if (this.key === \"\") {\n return val;\n }\n return `${this.key}=${val}`;\n }\n\n // gives Set-Cookie header format\n toString() {\n let str = this.cookieString();\n\n if (this.expires != Infinity) {\n if (this.expires instanceof Date) {\n str += `; Expires=${formatDate(this.expires)}`;\n } else {\n str += `; Expires=${this.expires}`;\n }\n }\n\n if (this.maxAge != null && this.maxAge != Infinity) {\n str += `; Max-Age=${this.maxAge}`;\n }\n\n if (this.domain && !this.hostOnly) {\n str += `; Domain=${this.domain}`;\n }\n if (this.path) {\n str += `; Path=${this.path}`;\n }\n\n if (this.secure) {\n str += \"; Secure\";\n }\n if (this.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (this.sameSite && this.sameSite !== \"none\") {\n const ssCanon = Cookie.sameSiteCanonical[this.sameSite.toLowerCase()];\n str += `; SameSite=${ssCanon ? ssCanon : this.sameSite}`;\n }\n if (this.extensions) {\n this.extensions.forEach(ext => {\n str += `; ${ext}`;\n });\n }\n\n return str;\n }\n\n // TTL() partially replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n // S5.3 says to give the \"latest representable date\" for which we use Infinity\n // For \"expired\" we use 0\n TTL(now) {\n /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires\n * attribute, the Max-Age attribute has precedence and controls the\n * expiration date of the cookie.\n * (Concurs with S5.3 step 3)\n */\n if (this.maxAge != null) {\n return this.maxAge <= 0 ? 0 : this.maxAge * 1000;\n }\n\n let expires = this.expires;\n if (expires != Infinity) {\n if (!(expires instanceof Date)) {\n expires = parseDate(expires) || Infinity;\n }\n\n if (expires == Infinity) {\n return Infinity;\n }\n\n return expires.getTime() - (now || Date.now());\n }\n\n return Infinity;\n }\n\n // expiryTime() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n expiryTime(now) {\n if (this.maxAge != null) {\n const relativeTo = now || this.creation || new Date();\n const age = this.maxAge <= 0 ? -Infinity : this.maxAge * 1000;\n return relativeTo.getTime() + age;\n }\n\n if (this.expires == Infinity) {\n return Infinity;\n }\n return this.expires.getTime();\n }\n\n // expiryDate() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere), except it returns a Date\n expiryDate(now) {\n const millisec = this.expiryTime(now);\n if (millisec == Infinity) {\n return new Date(MAX_TIME);\n } else if (millisec == -Infinity) {\n return new Date(MIN_TIME);\n } else {\n return new Date(millisec);\n }\n }\n\n // This replaces the \"persistent-flag\" parts of S5.3 step 3\n isPersistent() {\n return this.maxAge != null || this.expires != Infinity;\n }\n\n // Mostly S5.1.2 and S5.2.3:\n canonicalizedDomain() {\n if (this.domain == null) {\n return null;\n }\n return canonicalDomain(this.domain);\n }\n\n cdomain() {\n return this.canonicalizedDomain();\n }\n}\n\nCookie.cookiesCreated = 0;\nCookie.parse = parse;\nCookie.fromJSON = fromJSON;\nCookie.serializableProperties = Object.keys(cookieDefaults);\nCookie.sameSiteLevel = {\n strict: 3,\n lax: 2,\n none: 1\n};\n\nCookie.sameSiteCanonical = {\n strict: \"Strict\",\n lax: \"Lax\"\n};\n\nfunction getNormalizedPrefixSecurity(prefixSecurity) {\n if (prefixSecurity != null) {\n const normalizedPrefixSecurity = prefixSecurity.toLowerCase();\n /* The three supported options */\n switch (normalizedPrefixSecurity) {\n case PrefixSecurityEnum.STRICT:\n case PrefixSecurityEnum.SILENT:\n case PrefixSecurityEnum.DISABLED:\n return normalizedPrefixSecurity;\n }\n }\n /* Default is SILENT */\n return PrefixSecurityEnum.SILENT;\n}\n\nclass CookieJar {\n constructor(store, options = { rejectPublicSuffixes: true }) {\n if (typeof options === \"boolean\") {\n options = { rejectPublicSuffixes: options };\n }\n this.rejectPublicSuffixes = options.rejectPublicSuffixes;\n this.enableLooseMode = !!options.looseMode;\n this.allowSpecialUseDomain = !!options.allowSpecialUseDomain;\n this.store = store || new MemoryCookieStore();\n this.prefixSecurity = getNormalizedPrefixSecurity(options.prefixSecurity);\n this._cloneSync = syncWrap(\"clone\");\n this._importCookiesSync = syncWrap(\"_importCookies\");\n this.getCookiesSync = syncWrap(\"getCookies\");\n this.getCookieStringSync = syncWrap(\"getCookieString\");\n this.getSetCookieStringsSync = syncWrap(\"getSetCookieStrings\");\n this.removeAllCookiesSync = syncWrap(\"removeAllCookies\");\n this.setCookieSync = syncWrap(\"setCookie\");\n this.serializeSync = syncWrap(\"serialize\");\n }\n\n setCookie(cookie, url, options, cb) {\n let err;\n const context = getCookieContext(url);\n if (typeof options === \"function\") {\n cb = options;\n options = {};\n }\n\n const host = canonicalDomain(context.hostname);\n const loose = options.loose || this.enableLooseMode;\n\n let sameSiteContext = null;\n if (options.sameSiteContext) {\n sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n if (!sameSiteContext) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n\n // S5.3 step 1\n if (typeof cookie === \"string\" || cookie instanceof String) {\n cookie = Cookie.parse(cookie, { loose: loose });\n if (!cookie) {\n err = new Error(\"Cookie failed to parse\");\n return cb(options.ignoreError ? null : err);\n }\n } else if (!(cookie instanceof Cookie)) {\n // If you're seeing this error, and are passing in a Cookie object,\n // it *might* be a Cookie object from another loaded version of tough-cookie.\n err = new Error(\n \"First argument to setCookie must be a Cookie object or string\"\n );\n return cb(options.ignoreError ? null : err);\n }\n\n // S5.3 step 2\n const now = options.now || new Date(); // will assign later to save effort in the face of errors\n\n // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie()\n\n // S5.3 step 4: NOOP; domain is null by default\n\n // S5.3 step 5: public suffixes\n if (this.rejectPublicSuffixes && cookie.domain) {\n const suffix = pubsuffix.getPublicSuffix(cookie.cdomain());\n if (suffix == null) {\n // e.g. \"com\"\n err = new Error(\"Cookie has domain set to a public suffix\");\n return cb(options.ignoreError ? null : err);\n }\n }\n\n // S5.3 step 6:\n if (cookie.domain) {\n if (!domainMatch(host, cookie.cdomain(), false)) {\n err = new Error(\n `Cookie not in this host's domain. Cookie:${cookie.cdomain()} Request:${host}`\n );\n return cb(options.ignoreError ? null : err);\n }\n\n if (cookie.hostOnly == null) {\n // don't reset if already set\n cookie.hostOnly = false;\n }\n } else {\n cookie.hostOnly = true;\n cookie.domain = host;\n }\n\n //S5.2.4 If the attribute-value is empty or if the first character of the\n //attribute-value is not %x2F (\"/\"):\n //Let cookie-path be the default-path.\n if (!cookie.path || cookie.path[0] !== \"/\") {\n cookie.path = defaultPath(context.pathname);\n cookie.pathIsDefault = true;\n }\n\n // S5.3 step 8: NOOP; secure attribute\n // S5.3 step 9: NOOP; httpOnly attribute\n\n // S5.3 step 10\n if (options.http === false && cookie.httpOnly) {\n err = new Error(\"Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err);\n }\n\n // 6252bis-02 S5.4 Step 13 & 14:\n if (cookie.sameSite !== \"none\" && sameSiteContext) {\n // \"If the cookie's \"same-site-flag\" is not \"None\", and the cookie\n // is being set from a context whose \"site for cookies\" is not an\n // exact match for request-uri's host's registered domain, then\n // abort these steps and ignore the newly created cookie entirely.\"\n if (sameSiteContext === \"none\") {\n err = new Error(\n \"Cookie is SameSite but this is a cross-origin request\"\n );\n return cb(options.ignoreError ? null : err);\n }\n }\n\n /* 6265bis-02 S5.4 Steps 15 & 16 */\n const ignoreErrorForPrefixSecurity =\n this.prefixSecurity === PrefixSecurityEnum.SILENT;\n const prefixSecurityDisabled =\n this.prefixSecurity === PrefixSecurityEnum.DISABLED;\n /* If prefix checking is not disabled ...*/\n if (!prefixSecurityDisabled) {\n let errorFound = false;\n let errorMsg;\n /* Check secure prefix condition */\n if (!isSecurePrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Secure prefix but Secure attribute is not set\";\n } else if (!isHostPrefixConditionMet(cookie)) {\n /* Check host prefix condition */\n errorFound = true;\n errorMsg =\n \"Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'\";\n }\n if (errorFound) {\n return cb(\n options.ignoreError || ignoreErrorForPrefixSecurity\n ? null\n : new Error(errorMsg)\n );\n }\n }\n\n const store = this.store;\n\n if (!store.updateCookie) {\n store.updateCookie = function(oldCookie, newCookie, cb) {\n this.putCookie(newCookie, cb);\n };\n }\n\n function withCookie(err, oldCookie) {\n if (err) {\n return cb(err);\n }\n\n const next = function(err) {\n if (err) {\n return cb(err);\n } else {\n cb(null, cookie);\n }\n };\n\n if (oldCookie) {\n // S5.3 step 11 - \"If the cookie store contains a cookie with the same name,\n // domain, and path as the newly created cookie:\"\n if (options.http === false && oldCookie.httpOnly) {\n // step 11.2\n err = new Error(\"old Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err);\n }\n cookie.creation = oldCookie.creation; // step 11.3\n cookie.creationIndex = oldCookie.creationIndex; // preserve tie-breaker\n cookie.lastAccessed = now;\n // Step 11.4 (delete cookie) is implied by just setting the new one:\n store.updateCookie(oldCookie, cookie, next); // step 12\n } else {\n cookie.creation = cookie.lastAccessed = now;\n store.putCookie(cookie, next); // step 12\n }\n }\n\n store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);\n }\n\n // RFC6365 S5.4\n getCookies(url, options, cb) {\n const context = getCookieContext(url);\n if (typeof options === \"function\") {\n cb = options;\n options = {};\n }\n\n const host = canonicalDomain(context.hostname);\n const path = context.pathname || \"/\";\n\n let secure = options.secure;\n if (\n secure == null &&\n context.protocol &&\n (context.protocol == \"https:\" || context.protocol == \"wss:\")\n ) {\n secure = true;\n }\n\n let sameSiteLevel = 0;\n if (options.sameSiteContext) {\n const sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];\n if (!sameSiteLevel) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n\n let http = options.http;\n if (http == null) {\n http = true;\n }\n\n const now = options.now || Date.now();\n const expireCheck = options.expire !== false;\n const allPaths = !!options.allPaths;\n const store = this.store;\n\n function matchingCookie(c) {\n // \"Either:\n // The cookie's host-only-flag is true and the canonicalized\n // request-host is identical to the cookie's domain.\n // Or:\n // The cookie's host-only-flag is false and the canonicalized\n // request-host domain-matches the cookie's domain.\"\n if (c.hostOnly) {\n if (c.domain != host) {\n return false;\n }\n } else {\n if (!domainMatch(host, c.domain, false)) {\n return false;\n }\n }\n\n // \"The request-uri's path path-matches the cookie's path.\"\n if (!allPaths && !pathMatch(path, c.path)) {\n return false;\n }\n\n // \"If the cookie's secure-only-flag is true, then the request-uri's\n // scheme must denote a \"secure\" protocol\"\n if (c.secure && !secure) {\n return false;\n }\n\n // \"If the cookie's http-only-flag is true, then exclude the cookie if the\n // cookie-string is being generated for a \"non-HTTP\" API\"\n if (c.httpOnly && !http) {\n return false;\n }\n\n // RFC6265bis-02 S5.3.7\n if (sameSiteLevel) {\n const cookieLevel = Cookie.sameSiteLevel[c.sameSite || \"none\"];\n if (cookieLevel > sameSiteLevel) {\n // only allow cookies at or below the request level\n return false;\n }\n }\n\n // deferred from S5.3\n // non-RFC: allow retention of expired cookies by choice\n if (expireCheck && c.expiryTime() <= now) {\n store.removeCookie(c.domain, c.path, c.key, () => {}); // result ignored\n return false;\n }\n\n return true;\n }\n\n store.findCookies(\n host,\n allPaths ? null : path,\n this.allowSpecialUseDomain,\n (err, cookies) => {\n if (err) {\n return cb(err);\n }\n\n cookies = cookies.filter(matchingCookie);\n\n // sorting of S5.4 part 2\n if (options.sort !== false) {\n cookies = cookies.sort(cookieCompare);\n }\n\n // S5.4 part 3\n const now = new Date();\n for (const cookie of cookies) {\n cookie.lastAccessed = now;\n }\n // TODO persist lastAccessed\n\n cb(null, cookies);\n }\n );\n }\n\n getCookieString(...args) {\n const cb = args.pop();\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies\n .sort(cookieCompare)\n .map(c => c.cookieString())\n .join(\"; \")\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n\n getSetCookieStrings(...args) {\n const cb = args.pop();\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.map(c => {\n return c.toString();\n })\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n\n serialize(cb) {\n let type = this.store.constructor.name;\n if (type === \"Object\") {\n type = null;\n }\n\n // update README.md \"Serialization Format\" if you change this, please!\n const serialized = {\n // The version of tough-cookie that serialized this jar. Generally a good\n // practice since future versions can make data import decisions based on\n // known past behavior. When/if this matters, use `semver`.\n version: `tough-cookie@${VERSION}`,\n\n // add the store type, to make humans happy:\n storeType: type,\n\n // CookieJar configuration:\n rejectPublicSuffixes: !!this.rejectPublicSuffixes,\n\n // this gets filled from getAllCookies:\n cookies: []\n };\n\n if (\n !(\n this.store.getAllCookies &&\n typeof this.store.getAllCookies === \"function\"\n )\n ) {\n return cb(\n new Error(\n \"store does not support getAllCookies and cannot be serialized\"\n )\n );\n }\n\n this.store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n\n serialized.cookies = cookies.map(cookie => {\n // convert to serialized 'raw' cookies\n cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie;\n\n // Remove the index so new ones get assigned during deserialization\n delete cookie.creationIndex;\n\n return cookie;\n });\n\n return cb(null, serialized);\n });\n }\n\n toJSON() {\n return this.serializeSync();\n }\n\n // use the class method CookieJar.deserialize instead of calling this directly\n _importCookies(serialized, cb) {\n let cookies = serialized.cookies;\n if (!cookies || !Array.isArray(cookies)) {\n return cb(new Error(\"serialized jar has no cookies array\"));\n }\n cookies = cookies.slice(); // do not modify the original\n\n const putNext = err => {\n if (err) {\n return cb(err);\n }\n\n if (!cookies.length) {\n return cb(err, this);\n }\n\n let cookie;\n try {\n cookie = fromJSON(cookies.shift());\n } catch (e) {\n return cb(e);\n }\n\n if (cookie === null) {\n return putNext(null); // skip this cookie\n }\n\n this.store.putCookie(cookie, putNext);\n };\n\n putNext();\n }\n\n clone(newStore, cb) {\n if (arguments.length === 1) {\n cb = newStore;\n newStore = null;\n }\n\n this.serialize((err, serialized) => {\n if (err) {\n return cb(err);\n }\n CookieJar.deserialize(serialized, newStore, cb);\n });\n }\n\n cloneSync(newStore) {\n if (arguments.length === 0) {\n return this._cloneSync();\n }\n if (!newStore.synchronous) {\n throw new Error(\n \"CookieJar clone destination store is not synchronous; use async API instead.\"\n );\n }\n return this._cloneSync(newStore);\n }\n\n removeAllCookies(cb) {\n const store = this.store;\n\n // Check that the store implements its own removeAllCookies(). The default\n // implementation in Store will immediately call the callback with a \"not\n // implemented\" Error.\n if (\n typeof store.removeAllCookies === \"function\" &&\n store.removeAllCookies !== Store.prototype.removeAllCookies\n ) {\n return store.removeAllCookies(cb);\n }\n\n store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n\n if (cookies.length === 0) {\n return cb(null);\n }\n\n let completedCount = 0;\n const removeErrors = [];\n\n function removeCookieCb(removeErr) {\n if (removeErr) {\n removeErrors.push(removeErr);\n }\n\n completedCount++;\n\n if (completedCount === cookies.length) {\n return cb(removeErrors.length ? removeErrors[0] : null);\n }\n }\n\n cookies.forEach(cookie => {\n store.removeCookie(\n cookie.domain,\n cookie.path,\n cookie.key,\n removeCookieCb\n );\n });\n });\n }\n\n static deserialize(strOrObj, store, cb) {\n if (arguments.length !== 3) {\n // store is optional\n cb = store;\n store = null;\n }\n\n let serialized;\n if (typeof strOrObj === \"string\") {\n serialized = jsonParse(strOrObj);\n if (serialized instanceof Error) {\n return cb(serialized);\n }\n } else {\n serialized = strOrObj;\n }\n\n const jar = new CookieJar(store, serialized.rejectPublicSuffixes);\n jar._importCookies(serialized, err => {\n if (err) {\n return cb(err);\n }\n cb(null, jar);\n });\n }\n\n static deserializeSync(strOrObj, store) {\n const serialized =\n typeof strOrObj === \"string\" ? JSON.parse(strOrObj) : strOrObj;\n const jar = new CookieJar(store, serialized.rejectPublicSuffixes);\n\n // catch this mistake early:\n if (!jar.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n\n jar._importCookiesSync(serialized);\n return jar;\n }\n}\nCookieJar.fromJSON = CookieJar.deserializeSync;\n\n[\n \"_importCookies\",\n \"clone\",\n \"getCookies\",\n \"getCookieString\",\n \"getSetCookieStrings\",\n \"removeAllCookies\",\n \"serialize\",\n \"setCookie\"\n].forEach(name => {\n CookieJar.prototype[name] = fromCallback(CookieJar.prototype[name]);\n});\nCookieJar.deserialize = fromCallback(CookieJar.deserialize);\n\n// Use a closure to provide a true imperative API for synchronous stores.\nfunction syncWrap(method) {\n return function(...args) {\n if (!this.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n\n let syncErr, syncResult;\n this[method](...args, (err, result) => {\n syncErr = err;\n syncResult = result;\n });\n\n if (syncErr) {\n throw syncErr;\n }\n return syncResult;\n };\n}\n\nexports.version = VERSION;\nexports.CookieJar = CookieJar;\nexports.Cookie = Cookie;\nexports.Store = Store;\nexports.MemoryCookieStore = MemoryCookieStore;\nexports.parseDate = parseDate;\nexports.formatDate = formatDate;\nexports.parse = parse;\nexports.fromJSON = fromJSON;\nexports.domainMatch = domainMatch;\nexports.defaultPath = defaultPath;\nexports.pathMatch = pathMatch;\nexports.getPublicSuffix = pubsuffix.getPublicSuffix;\nexports.cookieCompare = cookieCompare;\nexports.permuteDomain = require(\"./permuteDomain\").permuteDomain;\nexports.permutePath = permutePath;\nexports.canonicalDomain = canonicalDomain;\nexports.PrefixSecurityEnum = PrefixSecurityEnum;\n","/*!\n * Copyright (c) 2018, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\"use strict\";\nconst psl = require(\"psl\");\n\nfunction getPublicSuffix(domain) {\n return psl.get(domain);\n}\n\nexports.getPublicSuffix = getPublicSuffix;\n","/*eslint no-var:0, prefer-arrow-callback: 0, object-shorthand: 0 */\n'use strict';\n\n\nvar Punycode = require('punycode');\n\n\nvar internals = {};\n\n\n//\n// Read rules from file.\n//\ninternals.rules = require('./data/rules.json').map(function (rule) {\n\n return {\n rule: rule,\n suffix: rule.replace(/^(\\*\\.|\\!)/, ''),\n punySuffix: -1,\n wildcard: rule.charAt(0) === '*',\n exception: rule.charAt(0) === '!'\n };\n});\n\n\n//\n// Check is given string ends with `suffix`.\n//\ninternals.endsWith = function (str, suffix) {\n\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n};\n\n\n//\n// Find rule for a given domain.\n//\ninternals.findRule = function (domain) {\n\n var punyDomain = Punycode.toASCII(domain);\n return internals.rules.reduce(function (memo, rule) {\n\n if (rule.punySuffix === -1){\n rule.punySuffix = Punycode.toASCII(rule.suffix);\n }\n if (!internals.endsWith(punyDomain, '.' + rule.punySuffix) && punyDomain !== rule.punySuffix) {\n return memo;\n }\n // This has been commented out as it never seems to run. This is because\n // sub tlds always appear after their parents and we never find a shorter\n // match.\n //if (memo) {\n // var memoSuffix = Punycode.toASCII(memo.suffix);\n // if (memoSuffix.length >= punySuffix.length) {\n // return memo;\n // }\n //}\n return rule;\n }, null);\n};\n\n\n//\n// Error codes and messages.\n//\nexports.errorCodes = {\n DOMAIN_TOO_SHORT: 'Domain name too short.',\n DOMAIN_TOO_LONG: 'Domain name too long. It should be no more than 255 chars.',\n LABEL_STARTS_WITH_DASH: 'Domain name label can not start with a dash.',\n LABEL_ENDS_WITH_DASH: 'Domain name label can not end with a dash.',\n LABEL_TOO_LONG: 'Domain name label should be at most 63 chars long.',\n LABEL_TOO_SHORT: 'Domain name label should be at least 1 character long.',\n LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.'\n};\n\n\n//\n// Validate domain name and throw if not valid.\n//\n// From wikipedia:\n//\n// Hostnames are composed of series of labels concatenated with dots, as are all\n// domain names. Each label must be between 1 and 63 characters long, and the\n// entire hostname (including the delimiting dots) has a maximum of 255 chars.\n//\n// Allowed chars:\n//\n// * `a-z`\n// * `0-9`\n// * `-` but not as a starting or ending character\n// * `.` as a separator for the textual portions of a domain name\n//\n// * http://en.wikipedia.org/wiki/Domain_name\n// * http://en.wikipedia.org/wiki/Hostname\n//\ninternals.validate = function (input) {\n\n // Before we can validate we need to take care of IDNs with unicode chars.\n var ascii = Punycode.toASCII(input);\n\n if (ascii.length < 1) {\n return 'DOMAIN_TOO_SHORT';\n }\n if (ascii.length > 255) {\n return 'DOMAIN_TOO_LONG';\n }\n\n // Check each part's length and allowed chars.\n var labels = ascii.split('.');\n var label;\n\n for (var i = 0; i < labels.length; ++i) {\n label = labels[i];\n if (!label.length) {\n return 'LABEL_TOO_SHORT';\n }\n if (label.length > 63) {\n return 'LABEL_TOO_LONG';\n }\n if (label.charAt(0) === '-') {\n return 'LABEL_STARTS_WITH_DASH';\n }\n if (label.charAt(label.length - 1) === '-') {\n return 'LABEL_ENDS_WITH_DASH';\n }\n if (!/^[a-z0-9\\-]+$/.test(label)) {\n return 'LABEL_INVALID_CHARS';\n }\n }\n};\n\n\n//\n// Public API\n//\n\n\n//\n// Parse domain.\n//\nexports.parse = function (input) {\n\n if (typeof input !== 'string') {\n throw new TypeError('Domain name must be a string.');\n }\n\n // Force domain to lowercase.\n var domain = input.slice(0).toLowerCase();\n\n // Handle FQDN.\n // TODO: Simply remove trailing dot?\n if (domain.charAt(domain.length - 1) === '.') {\n domain = domain.slice(0, domain.length - 1);\n }\n\n // Validate and sanitise input.\n var error = internals.validate(domain);\n if (error) {\n return {\n input: input,\n error: {\n message: exports.errorCodes[error],\n code: error\n }\n };\n }\n\n var parsed = {\n input: input,\n tld: null,\n sld: null,\n domain: null,\n subdomain: null,\n listed: false\n };\n\n var domainParts = domain.split('.');\n\n // Non-Internet TLD\n if (domainParts[domainParts.length - 1] === 'local') {\n return parsed;\n }\n\n var handlePunycode = function () {\n\n if (!/xn--/.test(domain)) {\n return parsed;\n }\n if (parsed.domain) {\n parsed.domain = Punycode.toASCII(parsed.domain);\n }\n if (parsed.subdomain) {\n parsed.subdomain = Punycode.toASCII(parsed.subdomain);\n }\n return parsed;\n };\n\n var rule = internals.findRule(domain);\n\n // Unlisted tld.\n if (!rule) {\n if (domainParts.length < 2) {\n return parsed;\n }\n parsed.tld = domainParts.pop();\n parsed.sld = domainParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join('.');\n if (domainParts.length) {\n parsed.subdomain = domainParts.pop();\n }\n return handlePunycode();\n }\n\n // At this point we know the public suffix is listed.\n parsed.listed = true;\n\n var tldParts = rule.suffix.split('.');\n var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);\n\n if (rule.exception) {\n privateParts.push(tldParts.shift());\n }\n\n parsed.tld = tldParts.join('.');\n\n if (!privateParts.length) {\n return handlePunycode();\n }\n\n if (rule.wildcard) {\n tldParts.unshift(privateParts.pop());\n parsed.tld = tldParts.join('.');\n }\n\n if (!privateParts.length) {\n return handlePunycode();\n }\n\n parsed.sld = privateParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join('.');\n\n if (privateParts.length) {\n parsed.subdomain = privateParts.join('.');\n }\n\n return handlePunycode();\n};\n\n\n//\n// Get domain.\n//\nexports.get = function (domain) {\n\n if (!domain) {\n return null;\n }\n return exports.parse(domain).domain || null;\n};\n\n\n//\n// Check whether domain belongs to a known public suffix.\n//\nexports.isValid = function (domain) {\n\n var parsed = exports.parse(domain);\n return Boolean(parsed.domain && parsed.listed);\n};\n","[\n\"ac\",\n\"com.ac\",\n\"edu.ac\",\n\"gov.ac\",\n\"net.ac\",\n\"mil.ac\",\n\"org.ac\",\n\"ad\",\n\"nom.ad\",\n\"ae\",\n\"co.ae\",\n\"net.ae\",\n\"org.ae\",\n\"sch.ae\",\n\"ac.ae\",\n\"gov.ae\",\n\"mil.ae\",\n\"aero\",\n\"accident-investigation.aero\",\n\"accident-prevention.aero\",\n\"aerobatic.aero\",\n\"aeroclub.aero\",\n\"aerodrome.aero\",\n\"agents.aero\",\n\"aircraft.aero\",\n\"airline.aero\",\n\"airport.aero\",\n\"air-surveillance.aero\",\n\"airtraffic.aero\",\n\"air-traffic-control.aero\",\n\"ambulance.aero\",\n\"amusement.aero\",\n\"association.aero\",\n\"author.aero\",\n\"ballooning.aero\",\n\"broker.aero\",\n\"caa.aero\",\n\"cargo.aero\",\n\"catering.aero\",\n\"certification.aero\",\n\"championship.aero\",\n\"charter.aero\",\n\"civilaviation.aero\",\n\"club.aero\",\n\"conference.aero\",\n\"consultant.aero\",\n\"consulting.aero\",\n\"control.aero\",\n\"council.aero\",\n\"crew.aero\",\n\"design.aero\",\n\"dgca.aero\",\n\"educator.aero\",\n\"emergency.aero\",\n\"engine.aero\",\n\"engineer.aero\",\n\"entertainment.aero\",\n\"equipment.aero\",\n\"exchange.aero\",\n\"express.aero\",\n\"federation.aero\",\n\"flight.aero\",\n\"freight.aero\",\n\"fuel.aero\",\n\"gliding.aero\",\n\"government.aero\",\n\"groundhandling.aero\",\n\"group.aero\",\n\"hanggliding.aero\",\n\"homebuilt.aero\",\n\"insurance.aero\",\n\"journal.aero\",\n\"journalist.aero\",\n\"leasing.aero\",\n\"logistics.aero\",\n\"magazine.aero\",\n\"maintenance.aero\",\n\"media.aero\",\n\"microlight.aero\",\n\"modelling.aero\",\n\"navigation.aero\",\n\"parachuting.aero\",\n\"paragliding.aero\",\n\"passenger-association.aero\",\n\"pilot.aero\",\n\"press.aero\",\n\"production.aero\",\n\"recreation.aero\",\n\"repbody.aero\",\n\"res.aero\",\n\"research.aero\",\n\"rotorcraft.aero\",\n\"safety.aero\",\n\"scientist.aero\",\n\"services.aero\",\n\"show.aero\",\n\"skydiving.aero\",\n\"software.aero\",\n\"student.aero\",\n\"trader.aero\",\n\"trading.aero\",\n\"trainer.aero\",\n\"union.aero\",\n\"workinggroup.aero\",\n\"works.aero\",\n\"af\",\n\"gov.af\",\n\"com.af\",\n\"org.af\",\n\"net.af\",\n\"edu.af\",\n\"ag\",\n\"com.ag\",\n\"org.ag\",\n\"net.ag\",\n\"co.ag\",\n\"nom.ag\",\n\"ai\",\n\"off.ai\",\n\"com.ai\",\n\"net.ai\",\n\"org.ai\",\n\"al\",\n\"com.al\",\n\"edu.al\",\n\"gov.al\",\n\"mil.al\",\n\"net.al\",\n\"org.al\",\n\"am\",\n\"co.am\",\n\"com.am\",\n\"commune.am\",\n\"net.am\",\n\"org.am\",\n\"ao\",\n\"ed.ao\",\n\"gv.ao\",\n\"og.ao\",\n\"co.ao\",\n\"pb.ao\",\n\"it.ao\",\n\"aq\",\n\"ar\",\n\"com.ar\",\n\"edu.ar\",\n\"gob.ar\",\n\"gov.ar\",\n\"int.ar\",\n\"mil.ar\",\n\"musica.ar\",\n\"net.ar\",\n\"org.ar\",\n\"tur.ar\",\n\"arpa\",\n\"e164.arpa\",\n\"in-addr.arpa\",\n\"ip6.arpa\",\n\"iris.arpa\",\n\"uri.arpa\",\n\"urn.arpa\",\n\"as\",\n\"gov.as\",\n\"asia\",\n\"at\",\n\"ac.at\",\n\"co.at\",\n\"gv.at\",\n\"or.at\",\n\"au\",\n\"com.au\",\n\"net.au\",\n\"org.au\",\n\"edu.au\",\n\"gov.au\",\n\"asn.au\",\n\"id.au\",\n\"info.au\",\n\"conf.au\",\n\"oz.au\",\n\"act.au\",\n\"nsw.au\",\n\"nt.au\",\n\"qld.au\",\n\"sa.au\",\n\"tas.au\",\n\"vic.au\",\n\"wa.au\",\n\"act.edu.au\",\n\"catholic.edu.au\",\n\"nsw.edu.au\",\n\"nt.edu.au\",\n\"qld.edu.au\",\n\"sa.edu.au\",\n\"tas.edu.au\",\n\"vic.edu.au\",\n\"wa.edu.au\",\n\"qld.gov.au\",\n\"sa.gov.au\",\n\"tas.gov.au\",\n\"vic.gov.au\",\n\"wa.gov.au\",\n\"education.tas.edu.au\",\n\"schools.nsw.edu.au\",\n\"aw\",\n\"com.aw\",\n\"ax\",\n\"az\",\n\"com.az\",\n\"net.az\",\n\"int.az\",\n\"gov.az\",\n\"org.az\",\n\"edu.az\",\n\"info.az\",\n\"pp.az\",\n\"mil.az\",\n\"name.az\",\n\"pro.az\",\n\"biz.az\",\n\"ba\",\n\"com.ba\",\n\"edu.ba\",\n\"gov.ba\",\n\"mil.ba\",\n\"net.ba\",\n\"org.ba\",\n\"bb\",\n\"biz.bb\",\n\"co.bb\",\n\"com.bb\",\n\"edu.bb\",\n\"gov.bb\",\n\"info.bb\",\n\"net.bb\",\n\"org.bb\",\n\"store.bb\",\n\"tv.bb\",\n\"*.bd\",\n\"be\",\n\"ac.be\",\n\"bf\",\n\"gov.bf\",\n\"bg\",\n\"a.bg\",\n\"b.bg\",\n\"c.bg\",\n\"d.bg\",\n\"e.bg\",\n\"f.bg\",\n\"g.bg\",\n\"h.bg\",\n\"i.bg\",\n\"j.bg\",\n\"k.bg\",\n\"l.bg\",\n\"m.bg\",\n\"n.bg\",\n\"o.bg\",\n\"p.bg\",\n\"q.bg\",\n\"r.bg\",\n\"s.bg\",\n\"t.bg\",\n\"u.bg\",\n\"v.bg\",\n\"w.bg\",\n\"x.bg\",\n\"y.bg\",\n\"z.bg\",\n\"0.bg\",\n\"1.bg\",\n\"2.bg\",\n\"3.bg\",\n\"4.bg\",\n\"5.bg\",\n\"6.bg\",\n\"7.bg\",\n\"8.bg\",\n\"9.bg\",\n\"bh\",\n\"com.bh\",\n\"edu.bh\",\n\"net.bh\",\n\"org.bh\",\n\"gov.bh\",\n\"bi\",\n\"co.bi\",\n\"com.bi\",\n\"edu.bi\",\n\"or.bi\",\n\"org.bi\",\n\"biz\",\n\"bj\",\n\"asso.bj\",\n\"barreau.bj\",\n\"gouv.bj\",\n\"bm\",\n\"com.bm\",\n\"edu.bm\",\n\"gov.bm\",\n\"net.bm\",\n\"org.bm\",\n\"bn\",\n\"com.bn\",\n\"edu.bn\",\n\"gov.bn\",\n\"net.bn\",\n\"org.bn\",\n\"bo\",\n\"com.bo\",\n\"edu.bo\",\n\"gob.bo\",\n\"int.bo\",\n\"org.bo\",\n\"net.bo\",\n\"mil.bo\",\n\"tv.bo\",\n\"web.bo\",\n\"academia.bo\",\n\"agro.bo\",\n\"arte.bo\",\n\"blog.bo\",\n\"bolivia.bo\",\n\"ciencia.bo\",\n\"cooperativa.bo\",\n\"democracia.bo\",\n\"deporte.bo\",\n\"ecologia.bo\",\n\"economia.bo\",\n\"empresa.bo\",\n\"indigena.bo\",\n\"industria.bo\",\n\"info.bo\",\n\"medicina.bo\",\n\"movimiento.bo\",\n\"musica.bo\",\n\"natural.bo\",\n\"nombre.bo\",\n\"noticias.bo\",\n\"patria.bo\",\n\"politica.bo\",\n\"profesional.bo\",\n\"plurinacional.bo\",\n\"pueblo.bo\",\n\"revista.bo\",\n\"salud.bo\",\n\"tecnologia.bo\",\n\"tksat.bo\",\n\"transporte.bo\",\n\"wiki.bo\",\n\"br\",\n\"9guacu.br\",\n\"abc.br\",\n\"adm.br\",\n\"adv.br\",\n\"agr.br\",\n\"aju.br\",\n\"am.br\",\n\"anani.br\",\n\"aparecida.br\",\n\"arq.br\",\n\"art.br\",\n\"ato.br\",\n\"b.br\",\n\"barueri.br\",\n\"belem.br\",\n\"bhz.br\",\n\"bio.br\",\n\"blog.br\",\n\"bmd.br\",\n\"boavista.br\",\n\"bsb.br\",\n\"campinagrande.br\",\n\"campinas.br\",\n\"caxias.br\",\n\"cim.br\",\n\"cng.br\",\n\"cnt.br\",\n\"com.br\",\n\"contagem.br\",\n\"coop.br\",\n\"cri.br\",\n\"cuiaba.br\",\n\"curitiba.br\",\n\"def.br\",\n\"ecn.br\",\n\"eco.br\",\n\"edu.br\",\n\"emp.br\",\n\"eng.br\",\n\"esp.br\",\n\"etc.br\",\n\"eti.br\",\n\"far.br\",\n\"feira.br\",\n\"flog.br\",\n\"floripa.br\",\n\"fm.br\",\n\"fnd.br\",\n\"fortal.br\",\n\"fot.br\",\n\"foz.br\",\n\"fst.br\",\n\"g12.br\",\n\"ggf.br\",\n\"goiania.br\",\n\"gov.br\",\n\"ac.gov.br\",\n\"al.gov.br\",\n\"am.gov.br\",\n\"ap.gov.br\",\n\"ba.gov.br\",\n\"ce.gov.br\",\n\"df.gov.br\",\n\"es.gov.br\",\n\"go.gov.br\",\n\"ma.gov.br\",\n\"mg.gov.br\",\n\"ms.gov.br\",\n\"mt.gov.br\",\n\"pa.gov.br\",\n\"pb.gov.br\",\n\"pe.gov.br\",\n\"pi.gov.br\",\n\"pr.gov.br\",\n\"rj.gov.br\",\n\"rn.gov.br\",\n\"ro.gov.br\",\n\"rr.gov.br\",\n\"rs.gov.br\",\n\"sc.gov.br\",\n\"se.gov.br\",\n\"sp.gov.br\",\n\"to.gov.br\",\n\"gru.br\",\n\"imb.br\",\n\"ind.br\",\n\"inf.br\",\n\"jab.br\",\n\"jampa.br\",\n\"jdf.br\",\n\"joinville.br\",\n\"jor.br\",\n\"jus.br\",\n\"leg.br\",\n\"lel.br\",\n\"londrina.br\",\n\"macapa.br\",\n\"maceio.br\",\n\"manaus.br\",\n\"maringa.br\",\n\"mat.br\",\n\"med.br\",\n\"mil.br\",\n\"morena.br\",\n\"mp.br\",\n\"mus.br\",\n\"natal.br\",\n\"net.br\",\n\"niteroi.br\",\n\"*.nom.br\",\n\"not.br\",\n\"ntr.br\",\n\"odo.br\",\n\"ong.br\",\n\"org.br\",\n\"osasco.br\",\n\"palmas.br\",\n\"poa.br\",\n\"ppg.br\",\n\"pro.br\",\n\"psc.br\",\n\"psi.br\",\n\"pvh.br\",\n\"qsl.br\",\n\"radio.br\",\n\"rec.br\",\n\"recife.br\",\n\"ribeirao.br\",\n\"rio.br\",\n\"riobranco.br\",\n\"riopreto.br\",\n\"salvador.br\",\n\"sampa.br\",\n\"santamaria.br\",\n\"santoandre.br\",\n\"saobernardo.br\",\n\"saogonca.br\",\n\"sjc.br\",\n\"slg.br\",\n\"slz.br\",\n\"sorocaba.br\",\n\"srv.br\",\n\"taxi.br\",\n\"tc.br\",\n\"teo.br\",\n\"the.br\",\n\"tmp.br\",\n\"trd.br\",\n\"tur.br\",\n\"tv.br\",\n\"udi.br\",\n\"vet.br\",\n\"vix.br\",\n\"vlog.br\",\n\"wiki.br\",\n\"zlg.br\",\n\"bs\",\n\"com.bs\",\n\"net.bs\",\n\"org.bs\",\n\"edu.bs\",\n\"gov.bs\",\n\"bt\",\n\"com.bt\",\n\"edu.bt\",\n\"gov.bt\",\n\"net.bt\",\n\"org.bt\",\n\"bv\",\n\"bw\",\n\"co.bw\",\n\"org.bw\",\n\"by\",\n\"gov.by\",\n\"mil.by\",\n\"com.by\",\n\"of.by\",\n\"bz\",\n\"com.bz\",\n\"net.bz\",\n\"org.bz\",\n\"edu.bz\",\n\"gov.bz\",\n\"ca\",\n\"ab.ca\",\n\"bc.ca\",\n\"mb.ca\",\n\"nb.ca\",\n\"nf.ca\",\n\"nl.ca\",\n\"ns.ca\",\n\"nt.ca\",\n\"nu.ca\",\n\"on.ca\",\n\"pe.ca\",\n\"qc.ca\",\n\"sk.ca\",\n\"yk.ca\",\n\"gc.ca\",\n\"cat\",\n\"cc\",\n\"cd\",\n\"gov.cd\",\n\"cf\",\n\"cg\",\n\"ch\",\n\"ci\",\n\"org.ci\",\n\"or.ci\",\n\"com.ci\",\n\"co.ci\",\n\"edu.ci\",\n\"ed.ci\",\n\"ac.ci\",\n\"net.ci\",\n\"go.ci\",\n\"asso.ci\",\n\"aéroport.ci\",\n\"int.ci\",\n\"presse.ci\",\n\"md.ci\",\n\"gouv.ci\",\n\"*.ck\",\n\"!www.ck\",\n\"cl\",\n\"aprendemas.cl\",\n\"co.cl\",\n\"gob.cl\",\n\"gov.cl\",\n\"mil.cl\",\n\"cm\",\n\"co.cm\",\n\"com.cm\",\n\"gov.cm\",\n\"net.cm\",\n\"cn\",\n\"ac.cn\",\n\"com.cn\",\n\"edu.cn\",\n\"gov.cn\",\n\"net.cn\",\n\"org.cn\",\n\"mil.cn\",\n\"公司.cn\",\n\"网络.cn\",\n\"網絡.cn\",\n\"ah.cn\",\n\"bj.cn\",\n\"cq.cn\",\n\"fj.cn\",\n\"gd.cn\",\n\"gs.cn\",\n\"gz.cn\",\n\"gx.cn\",\n\"ha.cn\",\n\"hb.cn\",\n\"he.cn\",\n\"hi.cn\",\n\"hl.cn\",\n\"hn.cn\",\n\"jl.cn\",\n\"js.cn\",\n\"jx.cn\",\n\"ln.cn\",\n\"nm.cn\",\n\"nx.cn\",\n\"qh.cn\",\n\"sc.cn\",\n\"sd.cn\",\n\"sh.cn\",\n\"sn.cn\",\n\"sx.cn\",\n\"tj.cn\",\n\"xj.cn\",\n\"xz.cn\",\n\"yn.cn\",\n\"zj.cn\",\n\"hk.cn\",\n\"mo.cn\",\n\"tw.cn\",\n\"co\",\n\"arts.co\",\n\"com.co\",\n\"edu.co\",\n\"firm.co\",\n\"gov.co\",\n\"info.co\",\n\"int.co\",\n\"mil.co\",\n\"net.co\",\n\"nom.co\",\n\"org.co\",\n\"rec.co\",\n\"web.co\",\n\"com\",\n\"coop\",\n\"cr\",\n\"ac.cr\",\n\"co.cr\",\n\"ed.cr\",\n\"fi.cr\",\n\"go.cr\",\n\"or.cr\",\n\"sa.cr\",\n\"cu\",\n\"com.cu\",\n\"edu.cu\",\n\"org.cu\",\n\"net.cu\",\n\"gov.cu\",\n\"inf.cu\",\n\"cv\",\n\"cw\",\n\"com.cw\",\n\"edu.cw\",\n\"net.cw\",\n\"org.cw\",\n\"cx\",\n\"gov.cx\",\n\"cy\",\n\"ac.cy\",\n\"biz.cy\",\n\"com.cy\",\n\"ekloges.cy\",\n\"gov.cy\",\n\"ltd.cy\",\n\"name.cy\",\n\"net.cy\",\n\"org.cy\",\n\"parliament.cy\",\n\"press.cy\",\n\"pro.cy\",\n\"tm.cy\",\n\"cz\",\n\"de\",\n\"dj\",\n\"dk\",\n\"dm\",\n\"com.dm\",\n\"net.dm\",\n\"org.dm\",\n\"edu.dm\",\n\"gov.dm\",\n\"do\",\n\"art.do\",\n\"com.do\",\n\"edu.do\",\n\"gob.do\",\n\"gov.do\",\n\"mil.do\",\n\"net.do\",\n\"org.do\",\n\"sld.do\",\n\"web.do\",\n\"dz\",\n\"com.dz\",\n\"org.dz\",\n\"net.dz\",\n\"gov.dz\",\n\"edu.dz\",\n\"asso.dz\",\n\"pol.dz\",\n\"art.dz\",\n\"ec\",\n\"com.ec\",\n\"info.ec\",\n\"net.ec\",\n\"fin.ec\",\n\"k12.ec\",\n\"med.ec\",\n\"pro.ec\",\n\"org.ec\",\n\"edu.ec\",\n\"gov.ec\",\n\"gob.ec\",\n\"mil.ec\",\n\"edu\",\n\"ee\",\n\"edu.ee\",\n\"gov.ee\",\n\"riik.ee\",\n\"lib.ee\",\n\"med.ee\",\n\"com.ee\",\n\"pri.ee\",\n\"aip.ee\",\n\"org.ee\",\n\"fie.ee\",\n\"eg\",\n\"com.eg\",\n\"edu.eg\",\n\"eun.eg\",\n\"gov.eg\",\n\"mil.eg\",\n\"name.eg\",\n\"net.eg\",\n\"org.eg\",\n\"sci.eg\",\n\"*.er\",\n\"es\",\n\"com.es\",\n\"nom.es\",\n\"org.es\",\n\"gob.es\",\n\"edu.es\",\n\"et\",\n\"com.et\",\n\"gov.et\",\n\"org.et\",\n\"edu.et\",\n\"biz.et\",\n\"name.et\",\n\"info.et\",\n\"net.et\",\n\"eu\",\n\"fi\",\n\"aland.fi\",\n\"fj\",\n\"ac.fj\",\n\"biz.fj\",\n\"com.fj\",\n\"gov.fj\",\n\"info.fj\",\n\"mil.fj\",\n\"name.fj\",\n\"net.fj\",\n\"org.fj\",\n\"pro.fj\",\n\"*.fk\",\n\"fm\",\n\"fo\",\n\"fr\",\n\"asso.fr\",\n\"com.fr\",\n\"gouv.fr\",\n\"nom.fr\",\n\"prd.fr\",\n\"tm.fr\",\n\"aeroport.fr\",\n\"avocat.fr\",\n\"avoues.fr\",\n\"cci.fr\",\n\"chambagri.fr\",\n\"chirurgiens-dentistes.fr\",\n\"experts-comptables.fr\",\n\"geometre-expert.fr\",\n\"greta.fr\",\n\"huissier-justice.fr\",\n\"medecin.fr\",\n\"notaires.fr\",\n\"pharmacien.fr\",\n\"port.fr\",\n\"veterinaire.fr\",\n\"ga\",\n\"gb\",\n\"gd\",\n\"ge\",\n\"com.ge\",\n\"edu.ge\",\n\"gov.ge\",\n\"org.ge\",\n\"mil.ge\",\n\"net.ge\",\n\"pvt.ge\",\n\"gf\",\n\"gg\",\n\"co.gg\",\n\"net.gg\",\n\"org.gg\",\n\"gh\",\n\"com.gh\",\n\"edu.gh\",\n\"gov.gh\",\n\"org.gh\",\n\"mil.gh\",\n\"gi\",\n\"com.gi\",\n\"ltd.gi\",\n\"gov.gi\",\n\"mod.gi\",\n\"edu.gi\",\n\"org.gi\",\n\"gl\",\n\"co.gl\",\n\"com.gl\",\n\"edu.gl\",\n\"net.gl\",\n\"org.gl\",\n\"gm\",\n\"gn\",\n\"ac.gn\",\n\"com.gn\",\n\"edu.gn\",\n\"gov.gn\",\n\"org.gn\",\n\"net.gn\",\n\"gov\",\n\"gp\",\n\"com.gp\",\n\"net.gp\",\n\"mobi.gp\",\n\"edu.gp\",\n\"org.gp\",\n\"asso.gp\",\n\"gq\",\n\"gr\",\n\"com.gr\",\n\"edu.gr\",\n\"net.gr\",\n\"org.gr\",\n\"gov.gr\",\n\"gs\",\n\"gt\",\n\"com.gt\",\n\"edu.gt\",\n\"gob.gt\",\n\"ind.gt\",\n\"mil.gt\",\n\"net.gt\",\n\"org.gt\",\n\"gu\",\n\"com.gu\",\n\"edu.gu\",\n\"gov.gu\",\n\"guam.gu\",\n\"info.gu\",\n\"net.gu\",\n\"org.gu\",\n\"web.gu\",\n\"gw\",\n\"gy\",\n\"co.gy\",\n\"com.gy\",\n\"edu.gy\",\n\"gov.gy\",\n\"net.gy\",\n\"org.gy\",\n\"hk\",\n\"com.hk\",\n\"edu.hk\",\n\"gov.hk\",\n\"idv.hk\",\n\"net.hk\",\n\"org.hk\",\n\"公司.hk\",\n\"教育.hk\",\n\"敎育.hk\",\n\"政府.hk\",\n\"個人.hk\",\n\"个人.hk\",\n\"箇人.hk\",\n\"網络.hk\",\n\"网络.hk\",\n\"组織.hk\",\n\"網絡.hk\",\n\"网絡.hk\",\n\"组织.hk\",\n\"組織.hk\",\n\"組织.hk\",\n\"hm\",\n\"hn\",\n\"com.hn\",\n\"edu.hn\",\n\"org.hn\",\n\"net.hn\",\n\"mil.hn\",\n\"gob.hn\",\n\"hr\",\n\"iz.hr\",\n\"from.hr\",\n\"name.hr\",\n\"com.hr\",\n\"ht\",\n\"com.ht\",\n\"shop.ht\",\n\"firm.ht\",\n\"info.ht\",\n\"adult.ht\",\n\"net.ht\",\n\"pro.ht\",\n\"org.ht\",\n\"med.ht\",\n\"art.ht\",\n\"coop.ht\",\n\"pol.ht\",\n\"asso.ht\",\n\"edu.ht\",\n\"rel.ht\",\n\"gouv.ht\",\n\"perso.ht\",\n\"hu\",\n\"co.hu\",\n\"info.hu\",\n\"org.hu\",\n\"priv.hu\",\n\"sport.hu\",\n\"tm.hu\",\n\"2000.hu\",\n\"agrar.hu\",\n\"bolt.hu\",\n\"casino.hu\",\n\"city.hu\",\n\"erotica.hu\",\n\"erotika.hu\",\n\"film.hu\",\n\"forum.hu\",\n\"games.hu\",\n\"hotel.hu\",\n\"ingatlan.hu\",\n\"jogasz.hu\",\n\"konyvelo.hu\",\n\"lakas.hu\",\n\"media.hu\",\n\"news.hu\",\n\"reklam.hu\",\n\"sex.hu\",\n\"shop.hu\",\n\"suli.hu\",\n\"szex.hu\",\n\"tozsde.hu\",\n\"utazas.hu\",\n\"video.hu\",\n\"id\",\n\"ac.id\",\n\"biz.id\",\n\"co.id\",\n\"desa.id\",\n\"go.id\",\n\"mil.id\",\n\"my.id\",\n\"net.id\",\n\"or.id\",\n\"ponpes.id\",\n\"sch.id\",\n\"web.id\",\n\"ie\",\n\"gov.ie\",\n\"il\",\n\"ac.il\",\n\"co.il\",\n\"gov.il\",\n\"idf.il\",\n\"k12.il\",\n\"muni.il\",\n\"net.il\",\n\"org.il\",\n\"im\",\n\"ac.im\",\n\"co.im\",\n\"com.im\",\n\"ltd.co.im\",\n\"net.im\",\n\"org.im\",\n\"plc.co.im\",\n\"tt.im\",\n\"tv.im\",\n\"in\",\n\"co.in\",\n\"firm.in\",\n\"net.in\",\n\"org.in\",\n\"gen.in\",\n\"ind.in\",\n\"nic.in\",\n\"ac.in\",\n\"edu.in\",\n\"res.in\",\n\"gov.in\",\n\"mil.in\",\n\"info\",\n\"int\",\n\"eu.int\",\n\"io\",\n\"com.io\",\n\"iq\",\n\"gov.iq\",\n\"edu.iq\",\n\"mil.iq\",\n\"com.iq\",\n\"org.iq\",\n\"net.iq\",\n\"ir\",\n\"ac.ir\",\n\"co.ir\",\n\"gov.ir\",\n\"id.ir\",\n\"net.ir\",\n\"org.ir\",\n\"sch.ir\",\n\"ایران.ir\",\n\"ايران.ir\",\n\"is\",\n\"net.is\",\n\"com.is\",\n\"edu.is\",\n\"gov.is\",\n\"org.is\",\n\"int.is\",\n\"it\",\n\"gov.it\",\n\"edu.it\",\n\"abr.it\",\n\"abruzzo.it\",\n\"aosta-valley.it\",\n\"aostavalley.it\",\n\"bas.it\",\n\"basilicata.it\",\n\"cal.it\",\n\"calabria.it\",\n\"cam.it\",\n\"campania.it\",\n\"emilia-romagna.it\",\n\"emiliaromagna.it\",\n\"emr.it\",\n\"friuli-v-giulia.it\",\n\"friuli-ve-giulia.it\",\n\"friuli-vegiulia.it\",\n\"friuli-venezia-giulia.it\",\n\"friuli-veneziagiulia.it\",\n\"friuli-vgiulia.it\",\n\"friuliv-giulia.it\",\n\"friulive-giulia.it\",\n\"friulivegiulia.it\",\n\"friulivenezia-giulia.it\",\n\"friuliveneziagiulia.it\",\n\"friulivgiulia.it\",\n\"fvg.it\",\n\"laz.it\",\n\"lazio.it\",\n\"lig.it\",\n\"liguria.it\",\n\"lom.it\",\n\"lombardia.it\",\n\"lombardy.it\",\n\"lucania.it\",\n\"mar.it\",\n\"marche.it\",\n\"mol.it\",\n\"molise.it\",\n\"piedmont.it\",\n\"piemonte.it\",\n\"pmn.it\",\n\"pug.it\",\n\"puglia.it\",\n\"sar.it\",\n\"sardegna.it\",\n\"sardinia.it\",\n\"sic.it\",\n\"sicilia.it\",\n\"sicily.it\",\n\"taa.it\",\n\"tos.it\",\n\"toscana.it\",\n\"trentin-sud-tirol.it\",\n\"trentin-süd-tirol.it\",\n\"trentin-sudtirol.it\",\n\"trentin-südtirol.it\",\n\"trentin-sued-tirol.it\",\n\"trentin-suedtirol.it\",\n\"trentino-a-adige.it\",\n\"trentino-aadige.it\",\n\"trentino-alto-adige.it\",\n\"trentino-altoadige.it\",\n\"trentino-s-tirol.it\",\n\"trentino-stirol.it\",\n\"trentino-sud-tirol.it\",\n\"trentino-süd-tirol.it\",\n\"trentino-sudtirol.it\",\n\"trentino-südtirol.it\",\n\"trentino-sued-tirol.it\",\n\"trentino-suedtirol.it\",\n\"trentino.it\",\n\"trentinoa-adige.it\",\n\"trentinoaadige.it\",\n\"trentinoalto-adige.it\",\n\"trentinoaltoadige.it\",\n\"trentinos-tirol.it\",\n\"trentinostirol.it\",\n\"trentinosud-tirol.it\",\n\"trentinosüd-tirol.it\",\n\"trentinosudtirol.it\",\n\"trentinosüdtirol.it\",\n\"trentinosued-tirol.it\",\n\"trentinosuedtirol.it\",\n\"trentinsud-tirol.it\",\n\"trentinsüd-tirol.it\",\n\"trentinsudtirol.it\",\n\"trentinsüdtirol.it\",\n\"trentinsued-tirol.it\",\n\"trentinsuedtirol.it\",\n\"tuscany.it\",\n\"umb.it\",\n\"umbria.it\",\n\"val-d-aosta.it\",\n\"val-daosta.it\",\n\"vald-aosta.it\",\n\"valdaosta.it\",\n\"valle-aosta.it\",\n\"valle-d-aosta.it\",\n\"valle-daosta.it\",\n\"valleaosta.it\",\n\"valled-aosta.it\",\n\"valledaosta.it\",\n\"vallee-aoste.it\",\n\"vallée-aoste.it\",\n\"vallee-d-aoste.it\",\n\"vallée-d-aoste.it\",\n\"valleeaoste.it\",\n\"valléeaoste.it\",\n\"valleedaoste.it\",\n\"valléedaoste.it\",\n\"vao.it\",\n\"vda.it\",\n\"ven.it\",\n\"veneto.it\",\n\"ag.it\",\n\"agrigento.it\",\n\"al.it\",\n\"alessandria.it\",\n\"alto-adige.it\",\n\"altoadige.it\",\n\"an.it\",\n\"ancona.it\",\n\"andria-barletta-trani.it\",\n\"andria-trani-barletta.it\",\n\"andriabarlettatrani.it\",\n\"andriatranibarletta.it\",\n\"ao.it\",\n\"aosta.it\",\n\"aoste.it\",\n\"ap.it\",\n\"aq.it\",\n\"aquila.it\",\n\"ar.it\",\n\"arezzo.it\",\n\"ascoli-piceno.it\",\n\"ascolipiceno.it\",\n\"asti.it\",\n\"at.it\",\n\"av.it\",\n\"avellino.it\",\n\"ba.it\",\n\"balsan-sudtirol.it\",\n\"balsan-südtirol.it\",\n\"balsan-suedtirol.it\",\n\"balsan.it\",\n\"bari.it\",\n\"barletta-trani-andria.it\",\n\"barlettatraniandria.it\",\n\"belluno.it\",\n\"benevento.it\",\n\"bergamo.it\",\n\"bg.it\",\n\"bi.it\",\n\"biella.it\",\n\"bl.it\",\n\"bn.it\",\n\"bo.it\",\n\"bologna.it\",\n\"bolzano-altoadige.it\",\n\"bolzano.it\",\n\"bozen-sudtirol.it\",\n\"bozen-südtirol.it\",\n\"bozen-suedtirol.it\",\n\"bozen.it\",\n\"br.it\",\n\"brescia.it\",\n\"brindisi.it\",\n\"bs.it\",\n\"bt.it\",\n\"bulsan-sudtirol.it\",\n\"bulsan-südtirol.it\",\n\"bulsan-suedtirol.it\",\n\"bulsan.it\",\n\"bz.it\",\n\"ca.it\",\n\"cagliari.it\",\n\"caltanissetta.it\",\n\"campidano-medio.it\",\n\"campidanomedio.it\",\n\"campobasso.it\",\n\"carbonia-iglesias.it\",\n\"carboniaiglesias.it\",\n\"carrara-massa.it\",\n\"carraramassa.it\",\n\"caserta.it\",\n\"catania.it\",\n\"catanzaro.it\",\n\"cb.it\",\n\"ce.it\",\n\"cesena-forli.it\",\n\"cesena-forlì.it\",\n\"cesenaforli.it\",\n\"cesenaforlì.it\",\n\"ch.it\",\n\"chieti.it\",\n\"ci.it\",\n\"cl.it\",\n\"cn.it\",\n\"co.it\",\n\"como.it\",\n\"cosenza.it\",\n\"cr.it\",\n\"cremona.it\",\n\"crotone.it\",\n\"cs.it\",\n\"ct.it\",\n\"cuneo.it\",\n\"cz.it\",\n\"dell-ogliastra.it\",\n\"dellogliastra.it\",\n\"en.it\",\n\"enna.it\",\n\"fc.it\",\n\"fe.it\",\n\"fermo.it\",\n\"ferrara.it\",\n\"fg.it\",\n\"fi.it\",\n\"firenze.it\",\n\"florence.it\",\n\"fm.it\",\n\"foggia.it\",\n\"forli-cesena.it\",\n\"forlì-cesena.it\",\n\"forlicesena.it\",\n\"forlìcesena.it\",\n\"fr.it\",\n\"frosinone.it\",\n\"ge.it\",\n\"genoa.it\",\n\"genova.it\",\n\"go.it\",\n\"gorizia.it\",\n\"gr.it\",\n\"grosseto.it\",\n\"iglesias-carbonia.it\",\n\"iglesiascarbonia.it\",\n\"im.it\",\n\"imperia.it\",\n\"is.it\",\n\"isernia.it\",\n\"kr.it\",\n\"la-spezia.it\",\n\"laquila.it\",\n\"laspezia.it\",\n\"latina.it\",\n\"lc.it\",\n\"le.it\",\n\"lecce.it\",\n\"lecco.it\",\n\"li.it\",\n\"livorno.it\",\n\"lo.it\",\n\"lodi.it\",\n\"lt.it\",\n\"lu.it\",\n\"lucca.it\",\n\"macerata.it\",\n\"mantova.it\",\n\"massa-carrara.it\",\n\"massacarrara.it\",\n\"matera.it\",\n\"mb.it\",\n\"mc.it\",\n\"me.it\",\n\"medio-campidano.it\",\n\"mediocampidano.it\",\n\"messina.it\",\n\"mi.it\",\n\"milan.it\",\n\"milano.it\",\n\"mn.it\",\n\"mo.it\",\n\"modena.it\",\n\"monza-brianza.it\",\n\"monza-e-della-brianza.it\",\n\"monza.it\",\n\"monzabrianza.it\",\n\"monzaebrianza.it\",\n\"monzaedellabrianza.it\",\n\"ms.it\",\n\"mt.it\",\n\"na.it\",\n\"naples.it\",\n\"napoli.it\",\n\"no.it\",\n\"novara.it\",\n\"nu.it\",\n\"nuoro.it\",\n\"og.it\",\n\"ogliastra.it\",\n\"olbia-tempio.it\",\n\"olbiatempio.it\",\n\"or.it\",\n\"oristano.it\",\n\"ot.it\",\n\"pa.it\",\n\"padova.it\",\n\"padua.it\",\n\"palermo.it\",\n\"parma.it\",\n\"pavia.it\",\n\"pc.it\",\n\"pd.it\",\n\"pe.it\",\n\"perugia.it\",\n\"pesaro-urbino.it\",\n\"pesarourbino.it\",\n\"pescara.it\",\n\"pg.it\",\n\"pi.it\",\n\"piacenza.it\",\n\"pisa.it\",\n\"pistoia.it\",\n\"pn.it\",\n\"po.it\",\n\"pordenone.it\",\n\"potenza.it\",\n\"pr.it\",\n\"prato.it\",\n\"pt.it\",\n\"pu.it\",\n\"pv.it\",\n\"pz.it\",\n\"ra.it\",\n\"ragusa.it\",\n\"ravenna.it\",\n\"rc.it\",\n\"re.it\",\n\"reggio-calabria.it\",\n\"reggio-emilia.it\",\n\"reggiocalabria.it\",\n\"reggioemilia.it\",\n\"rg.it\",\n\"ri.it\",\n\"rieti.it\",\n\"rimini.it\",\n\"rm.it\",\n\"rn.it\",\n\"ro.it\",\n\"roma.it\",\n\"rome.it\",\n\"rovigo.it\",\n\"sa.it\",\n\"salerno.it\",\n\"sassari.it\",\n\"savona.it\",\n\"si.it\",\n\"siena.it\",\n\"siracusa.it\",\n\"so.it\",\n\"sondrio.it\",\n\"sp.it\",\n\"sr.it\",\n\"ss.it\",\n\"suedtirol.it\",\n\"südtirol.it\",\n\"sv.it\",\n\"ta.it\",\n\"taranto.it\",\n\"te.it\",\n\"tempio-olbia.it\",\n\"tempioolbia.it\",\n\"teramo.it\",\n\"terni.it\",\n\"tn.it\",\n\"to.it\",\n\"torino.it\",\n\"tp.it\",\n\"tr.it\",\n\"trani-andria-barletta.it\",\n\"trani-barletta-andria.it\",\n\"traniandriabarletta.it\",\n\"tranibarlettaandria.it\",\n\"trapani.it\",\n\"trento.it\",\n\"treviso.it\",\n\"trieste.it\",\n\"ts.it\",\n\"turin.it\",\n\"tv.it\",\n\"ud.it\",\n\"udine.it\",\n\"urbino-pesaro.it\",\n\"urbinopesaro.it\",\n\"va.it\",\n\"varese.it\",\n\"vb.it\",\n\"vc.it\",\n\"ve.it\",\n\"venezia.it\",\n\"venice.it\",\n\"verbania.it\",\n\"vercelli.it\",\n\"verona.it\",\n\"vi.it\",\n\"vibo-valentia.it\",\n\"vibovalentia.it\",\n\"vicenza.it\",\n\"viterbo.it\",\n\"vr.it\",\n\"vs.it\",\n\"vt.it\",\n\"vv.it\",\n\"je\",\n\"co.je\",\n\"net.je\",\n\"org.je\",\n\"*.jm\",\n\"jo\",\n\"com.jo\",\n\"org.jo\",\n\"net.jo\",\n\"edu.jo\",\n\"sch.jo\",\n\"gov.jo\",\n\"mil.jo\",\n\"name.jo\",\n\"jobs\",\n\"jp\",\n\"ac.jp\",\n\"ad.jp\",\n\"co.jp\",\n\"ed.jp\",\n\"go.jp\",\n\"gr.jp\",\n\"lg.jp\",\n\"ne.jp\",\n\"or.jp\",\n\"aichi.jp\",\n\"akita.jp\",\n\"aomori.jp\",\n\"chiba.jp\",\n\"ehime.jp\",\n\"fukui.jp\",\n\"fukuoka.jp\",\n\"fukushima.jp\",\n\"gifu.jp\",\n\"gunma.jp\",\n\"hiroshima.jp\",\n\"hokkaido.jp\",\n\"hyogo.jp\",\n\"ibaraki.jp\",\n\"ishikawa.jp\",\n\"iwate.jp\",\n\"kagawa.jp\",\n\"kagoshima.jp\",\n\"kanagawa.jp\",\n\"kochi.jp\",\n\"kumamoto.jp\",\n\"kyoto.jp\",\n\"mie.jp\",\n\"miyagi.jp\",\n\"miyazaki.jp\",\n\"nagano.jp\",\n\"nagasaki.jp\",\n\"nara.jp\",\n\"niigata.jp\",\n\"oita.jp\",\n\"okayama.jp\",\n\"okinawa.jp\",\n\"osaka.jp\",\n\"saga.jp\",\n\"saitama.jp\",\n\"shiga.jp\",\n\"shimane.jp\",\n\"shizuoka.jp\",\n\"tochigi.jp\",\n\"tokushima.jp\",\n\"tokyo.jp\",\n\"tottori.jp\",\n\"toyama.jp\",\n\"wakayama.jp\",\n\"yamagata.jp\",\n\"yamaguchi.jp\",\n\"yamanashi.jp\",\n\"栃木.jp\",\n\"愛知.jp\",\n\"愛媛.jp\",\n\"兵庫.jp\",\n\"熊本.jp\",\n\"茨城.jp\",\n\"北海道.jp\",\n\"千葉.jp\",\n\"和歌山.jp\",\n\"長崎.jp\",\n\"長野.jp\",\n\"新潟.jp\",\n\"青森.jp\",\n\"静岡.jp\",\n\"東京.jp\",\n\"石川.jp\",\n\"埼玉.jp\",\n\"三重.jp\",\n\"京都.jp\",\n\"佐賀.jp\",\n\"大分.jp\",\n\"大阪.jp\",\n\"奈良.jp\",\n\"宮城.jp\",\n\"宮崎.jp\",\n\"富山.jp\",\n\"山口.jp\",\n\"山形.jp\",\n\"山梨.jp\",\n\"岩手.jp\",\n\"岐阜.jp\",\n\"岡山.jp\",\n\"島根.jp\",\n\"広島.jp\",\n\"徳島.jp\",\n\"沖縄.jp\",\n\"滋賀.jp\",\n\"神奈川.jp\",\n\"福井.jp\",\n\"福岡.jp\",\n\"福島.jp\",\n\"秋田.jp\",\n\"群馬.jp\",\n\"香川.jp\",\n\"高知.jp\",\n\"鳥取.jp\",\n\"鹿児島.jp\",\n\"*.kawasaki.jp\",\n\"*.kitakyushu.jp\",\n\"*.kobe.jp\",\n\"*.nagoya.jp\",\n\"*.sapporo.jp\",\n\"*.sendai.jp\",\n\"*.yokohama.jp\",\n\"!city.kawasaki.jp\",\n\"!city.kitakyushu.jp\",\n\"!city.kobe.jp\",\n\"!city.nagoya.jp\",\n\"!city.sapporo.jp\",\n\"!city.sendai.jp\",\n\"!city.yokohama.jp\",\n\"aisai.aichi.jp\",\n\"ama.aichi.jp\",\n\"anjo.aichi.jp\",\n\"asuke.aichi.jp\",\n\"chiryu.aichi.jp\",\n\"chita.aichi.jp\",\n\"fuso.aichi.jp\",\n\"gamagori.aichi.jp\",\n\"handa.aichi.jp\",\n\"hazu.aichi.jp\",\n\"hekinan.aichi.jp\",\n\"higashiura.aichi.jp\",\n\"ichinomiya.aichi.jp\",\n\"inazawa.aichi.jp\",\n\"inuyama.aichi.jp\",\n\"isshiki.aichi.jp\",\n\"iwakura.aichi.jp\",\n\"kanie.aichi.jp\",\n\"kariya.aichi.jp\",\n\"kasugai.aichi.jp\",\n\"kira.aichi.jp\",\n\"kiyosu.aichi.jp\",\n\"komaki.aichi.jp\",\n\"konan.aichi.jp\",\n\"kota.aichi.jp\",\n\"mihama.aichi.jp\",\n\"miyoshi.aichi.jp\",\n\"nishio.aichi.jp\",\n\"nisshin.aichi.jp\",\n\"obu.aichi.jp\",\n\"oguchi.aichi.jp\",\n\"oharu.aichi.jp\",\n\"okazaki.aichi.jp\",\n\"owariasahi.aichi.jp\",\n\"seto.aichi.jp\",\n\"shikatsu.aichi.jp\",\n\"shinshiro.aichi.jp\",\n\"shitara.aichi.jp\",\n\"tahara.aichi.jp\",\n\"takahama.aichi.jp\",\n\"tobishima.aichi.jp\",\n\"toei.aichi.jp\",\n\"togo.aichi.jp\",\n\"tokai.aichi.jp\",\n\"tokoname.aichi.jp\",\n\"toyoake.aichi.jp\",\n\"toyohashi.aichi.jp\",\n\"toyokawa.aichi.jp\",\n\"toyone.aichi.jp\",\n\"toyota.aichi.jp\",\n\"tsushima.aichi.jp\",\n\"yatomi.aichi.jp\",\n\"akita.akita.jp\",\n\"daisen.akita.jp\",\n\"fujisato.akita.jp\",\n\"gojome.akita.jp\",\n\"hachirogata.akita.jp\",\n\"happou.akita.jp\",\n\"higashinaruse.akita.jp\",\n\"honjo.akita.jp\",\n\"honjyo.akita.jp\",\n\"ikawa.akita.jp\",\n\"kamikoani.akita.jp\",\n\"kamioka.akita.jp\",\n\"katagami.akita.jp\",\n\"kazuno.akita.jp\",\n\"kitaakita.akita.jp\",\n\"kosaka.akita.jp\",\n\"kyowa.akita.jp\",\n\"misato.akita.jp\",\n\"mitane.akita.jp\",\n\"moriyoshi.akita.jp\",\n\"nikaho.akita.jp\",\n\"noshiro.akita.jp\",\n\"odate.akita.jp\",\n\"oga.akita.jp\",\n\"ogata.akita.jp\",\n\"semboku.akita.jp\",\n\"yokote.akita.jp\",\n\"yurihonjo.akita.jp\",\n\"aomori.aomori.jp\",\n\"gonohe.aomori.jp\",\n\"hachinohe.aomori.jp\",\n\"hashikami.aomori.jp\",\n\"hiranai.aomori.jp\",\n\"hirosaki.aomori.jp\",\n\"itayanagi.aomori.jp\",\n\"kuroishi.aomori.jp\",\n\"misawa.aomori.jp\",\n\"mutsu.aomori.jp\",\n\"nakadomari.aomori.jp\",\n\"noheji.aomori.jp\",\n\"oirase.aomori.jp\",\n\"owani.aomori.jp\",\n\"rokunohe.aomori.jp\",\n\"sannohe.aomori.jp\",\n\"shichinohe.aomori.jp\",\n\"shingo.aomori.jp\",\n\"takko.aomori.jp\",\n\"towada.aomori.jp\",\n\"tsugaru.aomori.jp\",\n\"tsuruta.aomori.jp\",\n\"abiko.chiba.jp\",\n\"asahi.chiba.jp\",\n\"chonan.chiba.jp\",\n\"chosei.chiba.jp\",\n\"choshi.chiba.jp\",\n\"chuo.chiba.jp\",\n\"funabashi.chiba.jp\",\n\"futtsu.chiba.jp\",\n\"hanamigawa.chiba.jp\",\n\"ichihara.chiba.jp\",\n\"ichikawa.chiba.jp\",\n\"ichinomiya.chiba.jp\",\n\"inzai.chiba.jp\",\n\"isumi.chiba.jp\",\n\"kamagaya.chiba.jp\",\n\"kamogawa.chiba.jp\",\n\"kashiwa.chiba.jp\",\n\"katori.chiba.jp\",\n\"katsuura.chiba.jp\",\n\"kimitsu.chiba.jp\",\n\"kisarazu.chiba.jp\",\n\"kozaki.chiba.jp\",\n\"kujukuri.chiba.jp\",\n\"kyonan.chiba.jp\",\n\"matsudo.chiba.jp\",\n\"midori.chiba.jp\",\n\"mihama.chiba.jp\",\n\"minamiboso.chiba.jp\",\n\"mobara.chiba.jp\",\n\"mutsuzawa.chiba.jp\",\n\"nagara.chiba.jp\",\n\"nagareyama.chiba.jp\",\n\"narashino.chiba.jp\",\n\"narita.chiba.jp\",\n\"noda.chiba.jp\",\n\"oamishirasato.chiba.jp\",\n\"omigawa.chiba.jp\",\n\"onjuku.chiba.jp\",\n\"otaki.chiba.jp\",\n\"sakae.chiba.jp\",\n\"sakura.chiba.jp\",\n\"shimofusa.chiba.jp\",\n\"shirako.chiba.jp\",\n\"shiroi.chiba.jp\",\n\"shisui.chiba.jp\",\n\"sodegaura.chiba.jp\",\n\"sosa.chiba.jp\",\n\"tako.chiba.jp\",\n\"tateyama.chiba.jp\",\n\"togane.chiba.jp\",\n\"tohnosho.chiba.jp\",\n\"tomisato.chiba.jp\",\n\"urayasu.chiba.jp\",\n\"yachimata.chiba.jp\",\n\"yachiyo.chiba.jp\",\n\"yokaichiba.chiba.jp\",\n\"yokoshibahikari.chiba.jp\",\n\"yotsukaido.chiba.jp\",\n\"ainan.ehime.jp\",\n\"honai.ehime.jp\",\n\"ikata.ehime.jp\",\n\"imabari.ehime.jp\",\n\"iyo.ehime.jp\",\n\"kamijima.ehime.jp\",\n\"kihoku.ehime.jp\",\n\"kumakogen.ehime.jp\",\n\"masaki.ehime.jp\",\n\"matsuno.ehime.jp\",\n\"matsuyama.ehime.jp\",\n\"namikata.ehime.jp\",\n\"niihama.ehime.jp\",\n\"ozu.ehime.jp\",\n\"saijo.ehime.jp\",\n\"seiyo.ehime.jp\",\n\"shikokuchuo.ehime.jp\",\n\"tobe.ehime.jp\",\n\"toon.ehime.jp\",\n\"uchiko.ehime.jp\",\n\"uwajima.ehime.jp\",\n\"yawatahama.ehime.jp\",\n\"echizen.fukui.jp\",\n\"eiheiji.fukui.jp\",\n\"fukui.fukui.jp\",\n\"ikeda.fukui.jp\",\n\"katsuyama.fukui.jp\",\n\"mihama.fukui.jp\",\n\"minamiechizen.fukui.jp\",\n\"obama.fukui.jp\",\n\"ohi.fukui.jp\",\n\"ono.fukui.jp\",\n\"sabae.fukui.jp\",\n\"sakai.fukui.jp\",\n\"takahama.fukui.jp\",\n\"tsuruga.fukui.jp\",\n\"wakasa.fukui.jp\",\n\"ashiya.fukuoka.jp\",\n\"buzen.fukuoka.jp\",\n\"chikugo.fukuoka.jp\",\n\"chikuho.fukuoka.jp\",\n\"chikujo.fukuoka.jp\",\n\"chikushino.fukuoka.jp\",\n\"chikuzen.fukuoka.jp\",\n\"chuo.fukuoka.jp\",\n\"dazaifu.fukuoka.jp\",\n\"fukuchi.fukuoka.jp\",\n\"hakata.fukuoka.jp\",\n\"higashi.fukuoka.jp\",\n\"hirokawa.fukuoka.jp\",\n\"hisayama.fukuoka.jp\",\n\"iizuka.fukuoka.jp\",\n\"inatsuki.fukuoka.jp\",\n\"kaho.fukuoka.jp\",\n\"kasuga.fukuoka.jp\",\n\"kasuya.fukuoka.jp\",\n\"kawara.fukuoka.jp\",\n\"keisen.fukuoka.jp\",\n\"koga.fukuoka.jp\",\n\"kurate.fukuoka.jp\",\n\"kurogi.fukuoka.jp\",\n\"kurume.fukuoka.jp\",\n\"minami.fukuoka.jp\",\n\"miyako.fukuoka.jp\",\n\"miyama.fukuoka.jp\",\n\"miyawaka.fukuoka.jp\",\n\"mizumaki.fukuoka.jp\",\n\"munakata.fukuoka.jp\",\n\"nakagawa.fukuoka.jp\",\n\"nakama.fukuoka.jp\",\n\"nishi.fukuoka.jp\",\n\"nogata.fukuoka.jp\",\n\"ogori.fukuoka.jp\",\n\"okagaki.fukuoka.jp\",\n\"okawa.fukuoka.jp\",\n\"oki.fukuoka.jp\",\n\"omuta.fukuoka.jp\",\n\"onga.fukuoka.jp\",\n\"onojo.fukuoka.jp\",\n\"oto.fukuoka.jp\",\n\"saigawa.fukuoka.jp\",\n\"sasaguri.fukuoka.jp\",\n\"shingu.fukuoka.jp\",\n\"shinyoshitomi.fukuoka.jp\",\n\"shonai.fukuoka.jp\",\n\"soeda.fukuoka.jp\",\n\"sue.fukuoka.jp\",\n\"tachiarai.fukuoka.jp\",\n\"tagawa.fukuoka.jp\",\n\"takata.fukuoka.jp\",\n\"toho.fukuoka.jp\",\n\"toyotsu.fukuoka.jp\",\n\"tsuiki.fukuoka.jp\",\n\"ukiha.fukuoka.jp\",\n\"umi.fukuoka.jp\",\n\"usui.fukuoka.jp\",\n\"yamada.fukuoka.jp\",\n\"yame.fukuoka.jp\",\n\"yanagawa.fukuoka.jp\",\n\"yukuhashi.fukuoka.jp\",\n\"aizubange.fukushima.jp\",\n\"aizumisato.fukushima.jp\",\n\"aizuwakamatsu.fukushima.jp\",\n\"asakawa.fukushima.jp\",\n\"bandai.fukushima.jp\",\n\"date.fukushima.jp\",\n\"fukushima.fukushima.jp\",\n\"furudono.fukushima.jp\",\n\"futaba.fukushima.jp\",\n\"hanawa.fukushima.jp\",\n\"higashi.fukushima.jp\",\n\"hirata.fukushima.jp\",\n\"hirono.fukushima.jp\",\n\"iitate.fukushima.jp\",\n\"inawashiro.fukushima.jp\",\n\"ishikawa.fukushima.jp\",\n\"iwaki.fukushima.jp\",\n\"izumizaki.fukushima.jp\",\n\"kagamiishi.fukushima.jp\",\n\"kaneyama.fukushima.jp\",\n\"kawamata.fukushima.jp\",\n\"kitakata.fukushima.jp\",\n\"kitashiobara.fukushima.jp\",\n\"koori.fukushima.jp\",\n\"koriyama.fukushima.jp\",\n\"kunimi.fukushima.jp\",\n\"miharu.fukushima.jp\",\n\"mishima.fukushima.jp\",\n\"namie.fukushima.jp\",\n\"nango.fukushima.jp\",\n\"nishiaizu.fukushima.jp\",\n\"nishigo.fukushima.jp\",\n\"okuma.fukushima.jp\",\n\"omotego.fukushima.jp\",\n\"ono.fukushima.jp\",\n\"otama.fukushima.jp\",\n\"samegawa.fukushima.jp\",\n\"shimogo.fukushima.jp\",\n\"shirakawa.fukushima.jp\",\n\"showa.fukushima.jp\",\n\"soma.fukushima.jp\",\n\"sukagawa.fukushima.jp\",\n\"taishin.fukushima.jp\",\n\"tamakawa.fukushima.jp\",\n\"tanagura.fukushima.jp\",\n\"tenei.fukushima.jp\",\n\"yabuki.fukushima.jp\",\n\"yamato.fukushima.jp\",\n\"yamatsuri.fukushima.jp\",\n\"yanaizu.fukushima.jp\",\n\"yugawa.fukushima.jp\",\n\"anpachi.gifu.jp\",\n\"ena.gifu.jp\",\n\"gifu.gifu.jp\",\n\"ginan.gifu.jp\",\n\"godo.gifu.jp\",\n\"gujo.gifu.jp\",\n\"hashima.gifu.jp\",\n\"hichiso.gifu.jp\",\n\"hida.gifu.jp\",\n\"higashishirakawa.gifu.jp\",\n\"ibigawa.gifu.jp\",\n\"ikeda.gifu.jp\",\n\"kakamigahara.gifu.jp\",\n\"kani.gifu.jp\",\n\"kasahara.gifu.jp\",\n\"kasamatsu.gifu.jp\",\n\"kawaue.gifu.jp\",\n\"kitagata.gifu.jp\",\n\"mino.gifu.jp\",\n\"minokamo.gifu.jp\",\n\"mitake.gifu.jp\",\n\"mizunami.gifu.jp\",\n\"motosu.gifu.jp\",\n\"nakatsugawa.gifu.jp\",\n\"ogaki.gifu.jp\",\n\"sakahogi.gifu.jp\",\n\"seki.gifu.jp\",\n\"sekigahara.gifu.jp\",\n\"shirakawa.gifu.jp\",\n\"tajimi.gifu.jp\",\n\"takayama.gifu.jp\",\n\"tarui.gifu.jp\",\n\"toki.gifu.jp\",\n\"tomika.gifu.jp\",\n\"wanouchi.gifu.jp\",\n\"yamagata.gifu.jp\",\n\"yaotsu.gifu.jp\",\n\"yoro.gifu.jp\",\n\"annaka.gunma.jp\",\n\"chiyoda.gunma.jp\",\n\"fujioka.gunma.jp\",\n\"higashiagatsuma.gunma.jp\",\n\"isesaki.gunma.jp\",\n\"itakura.gunma.jp\",\n\"kanna.gunma.jp\",\n\"kanra.gunma.jp\",\n\"katashina.gunma.jp\",\n\"kawaba.gunma.jp\",\n\"kiryu.gunma.jp\",\n\"kusatsu.gunma.jp\",\n\"maebashi.gunma.jp\",\n\"meiwa.gunma.jp\",\n\"midori.gunma.jp\",\n\"minakami.gunma.jp\",\n\"naganohara.gunma.jp\",\n\"nakanojo.gunma.jp\",\n\"nanmoku.gunma.jp\",\n\"numata.gunma.jp\",\n\"oizumi.gunma.jp\",\n\"ora.gunma.jp\",\n\"ota.gunma.jp\",\n\"shibukawa.gunma.jp\",\n\"shimonita.gunma.jp\",\n\"shinto.gunma.jp\",\n\"showa.gunma.jp\",\n\"takasaki.gunma.jp\",\n\"takayama.gunma.jp\",\n\"tamamura.gunma.jp\",\n\"tatebayashi.gunma.jp\",\n\"tomioka.gunma.jp\",\n\"tsukiyono.gunma.jp\",\n\"tsumagoi.gunma.jp\",\n\"ueno.gunma.jp\",\n\"yoshioka.gunma.jp\",\n\"asaminami.hiroshima.jp\",\n\"daiwa.hiroshima.jp\",\n\"etajima.hiroshima.jp\",\n\"fuchu.hiroshima.jp\",\n\"fukuyama.hiroshima.jp\",\n\"hatsukaichi.hiroshima.jp\",\n\"higashihiroshima.hiroshima.jp\",\n\"hongo.hiroshima.jp\",\n\"jinsekikogen.hiroshima.jp\",\n\"kaita.hiroshima.jp\",\n\"kui.hiroshima.jp\",\n\"kumano.hiroshima.jp\",\n\"kure.hiroshima.jp\",\n\"mihara.hiroshima.jp\",\n\"miyoshi.hiroshima.jp\",\n\"naka.hiroshima.jp\",\n\"onomichi.hiroshima.jp\",\n\"osakikamijima.hiroshima.jp\",\n\"otake.hiroshima.jp\",\n\"saka.hiroshima.jp\",\n\"sera.hiroshima.jp\",\n\"seranishi.hiroshima.jp\",\n\"shinichi.hiroshima.jp\",\n\"shobara.hiroshima.jp\",\n\"takehara.hiroshima.jp\",\n\"abashiri.hokkaido.jp\",\n\"abira.hokkaido.jp\",\n\"aibetsu.hokkaido.jp\",\n\"akabira.hokkaido.jp\",\n\"akkeshi.hokkaido.jp\",\n\"asahikawa.hokkaido.jp\",\n\"ashibetsu.hokkaido.jp\",\n\"ashoro.hokkaido.jp\",\n\"assabu.hokkaido.jp\",\n\"atsuma.hokkaido.jp\",\n\"bibai.hokkaido.jp\",\n\"biei.hokkaido.jp\",\n\"bifuka.hokkaido.jp\",\n\"bihoro.hokkaido.jp\",\n\"biratori.hokkaido.jp\",\n\"chippubetsu.hokkaido.jp\",\n\"chitose.hokkaido.jp\",\n\"date.hokkaido.jp\",\n\"ebetsu.hokkaido.jp\",\n\"embetsu.hokkaido.jp\",\n\"eniwa.hokkaido.jp\",\n\"erimo.hokkaido.jp\",\n\"esan.hokkaido.jp\",\n\"esashi.hokkaido.jp\",\n\"fukagawa.hokkaido.jp\",\n\"fukushima.hokkaido.jp\",\n\"furano.hokkaido.jp\",\n\"furubira.hokkaido.jp\",\n\"haboro.hokkaido.jp\",\n\"hakodate.hokkaido.jp\",\n\"hamatonbetsu.hokkaido.jp\",\n\"hidaka.hokkaido.jp\",\n\"higashikagura.hokkaido.jp\",\n\"higashikawa.hokkaido.jp\",\n\"hiroo.hokkaido.jp\",\n\"hokuryu.hokkaido.jp\",\n\"hokuto.hokkaido.jp\",\n\"honbetsu.hokkaido.jp\",\n\"horokanai.hokkaido.jp\",\n\"horonobe.hokkaido.jp\",\n\"ikeda.hokkaido.jp\",\n\"imakane.hokkaido.jp\",\n\"ishikari.hokkaido.jp\",\n\"iwamizawa.hokkaido.jp\",\n\"iwanai.hokkaido.jp\",\n\"kamifurano.hokkaido.jp\",\n\"kamikawa.hokkaido.jp\",\n\"kamishihoro.hokkaido.jp\",\n\"kamisunagawa.hokkaido.jp\",\n\"kamoenai.hokkaido.jp\",\n\"kayabe.hokkaido.jp\",\n\"kembuchi.hokkaido.jp\",\n\"kikonai.hokkaido.jp\",\n\"kimobetsu.hokkaido.jp\",\n\"kitahiroshima.hokkaido.jp\",\n\"kitami.hokkaido.jp\",\n\"kiyosato.hokkaido.jp\",\n\"koshimizu.hokkaido.jp\",\n\"kunneppu.hokkaido.jp\",\n\"kuriyama.hokkaido.jp\",\n\"kuromatsunai.hokkaido.jp\",\n\"kushiro.hokkaido.jp\",\n\"kutchan.hokkaido.jp\",\n\"kyowa.hokkaido.jp\",\n\"mashike.hokkaido.jp\",\n\"matsumae.hokkaido.jp\",\n\"mikasa.hokkaido.jp\",\n\"minamifurano.hokkaido.jp\",\n\"mombetsu.hokkaido.jp\",\n\"moseushi.hokkaido.jp\",\n\"mukawa.hokkaido.jp\",\n\"muroran.hokkaido.jp\",\n\"naie.hokkaido.jp\",\n\"nakagawa.hokkaido.jp\",\n\"nakasatsunai.hokkaido.jp\",\n\"nakatombetsu.hokkaido.jp\",\n\"nanae.hokkaido.jp\",\n\"nanporo.hokkaido.jp\",\n\"nayoro.hokkaido.jp\",\n\"nemuro.hokkaido.jp\",\n\"niikappu.hokkaido.jp\",\n\"niki.hokkaido.jp\",\n\"nishiokoppe.hokkaido.jp\",\n\"noboribetsu.hokkaido.jp\",\n\"numata.hokkaido.jp\",\n\"obihiro.hokkaido.jp\",\n\"obira.hokkaido.jp\",\n\"oketo.hokkaido.jp\",\n\"okoppe.hokkaido.jp\",\n\"otaru.hokkaido.jp\",\n\"otobe.hokkaido.jp\",\n\"otofuke.hokkaido.jp\",\n\"otoineppu.hokkaido.jp\",\n\"oumu.hokkaido.jp\",\n\"ozora.hokkaido.jp\",\n\"pippu.hokkaido.jp\",\n\"rankoshi.hokkaido.jp\",\n\"rebun.hokkaido.jp\",\n\"rikubetsu.hokkaido.jp\",\n\"rishiri.hokkaido.jp\",\n\"rishirifuji.hokkaido.jp\",\n\"saroma.hokkaido.jp\",\n\"sarufutsu.hokkaido.jp\",\n\"shakotan.hokkaido.jp\",\n\"shari.hokkaido.jp\",\n\"shibecha.hokkaido.jp\",\n\"shibetsu.hokkaido.jp\",\n\"shikabe.hokkaido.jp\",\n\"shikaoi.hokkaido.jp\",\n\"shimamaki.hokkaido.jp\",\n\"shimizu.hokkaido.jp\",\n\"shimokawa.hokkaido.jp\",\n\"shinshinotsu.hokkaido.jp\",\n\"shintoku.hokkaido.jp\",\n\"shiranuka.hokkaido.jp\",\n\"shiraoi.hokkaido.jp\",\n\"shiriuchi.hokkaido.jp\",\n\"sobetsu.hokkaido.jp\",\n\"sunagawa.hokkaido.jp\",\n\"taiki.hokkaido.jp\",\n\"takasu.hokkaido.jp\",\n\"takikawa.hokkaido.jp\",\n\"takinoue.hokkaido.jp\",\n\"teshikaga.hokkaido.jp\",\n\"tobetsu.hokkaido.jp\",\n\"tohma.hokkaido.jp\",\n\"tomakomai.hokkaido.jp\",\n\"tomari.hokkaido.jp\",\n\"toya.hokkaido.jp\",\n\"toyako.hokkaido.jp\",\n\"toyotomi.hokkaido.jp\",\n\"toyoura.hokkaido.jp\",\n\"tsubetsu.hokkaido.jp\",\n\"tsukigata.hokkaido.jp\",\n\"urakawa.hokkaido.jp\",\n\"urausu.hokkaido.jp\",\n\"uryu.hokkaido.jp\",\n\"utashinai.hokkaido.jp\",\n\"wakkanai.hokkaido.jp\",\n\"wassamu.hokkaido.jp\",\n\"yakumo.hokkaido.jp\",\n\"yoichi.hokkaido.jp\",\n\"aioi.hyogo.jp\",\n\"akashi.hyogo.jp\",\n\"ako.hyogo.jp\",\n\"amagasaki.hyogo.jp\",\n\"aogaki.hyogo.jp\",\n\"asago.hyogo.jp\",\n\"ashiya.hyogo.jp\",\n\"awaji.hyogo.jp\",\n\"fukusaki.hyogo.jp\",\n\"goshiki.hyogo.jp\",\n\"harima.hyogo.jp\",\n\"himeji.hyogo.jp\",\n\"ichikawa.hyogo.jp\",\n\"inagawa.hyogo.jp\",\n\"itami.hyogo.jp\",\n\"kakogawa.hyogo.jp\",\n\"kamigori.hyogo.jp\",\n\"kamikawa.hyogo.jp\",\n\"kasai.hyogo.jp\",\n\"kasuga.hyogo.jp\",\n\"kawanishi.hyogo.jp\",\n\"miki.hyogo.jp\",\n\"minamiawaji.hyogo.jp\",\n\"nishinomiya.hyogo.jp\",\n\"nishiwaki.hyogo.jp\",\n\"ono.hyogo.jp\",\n\"sanda.hyogo.jp\",\n\"sannan.hyogo.jp\",\n\"sasayama.hyogo.jp\",\n\"sayo.hyogo.jp\",\n\"shingu.hyogo.jp\",\n\"shinonsen.hyogo.jp\",\n\"shiso.hyogo.jp\",\n\"sumoto.hyogo.jp\",\n\"taishi.hyogo.jp\",\n\"taka.hyogo.jp\",\n\"takarazuka.hyogo.jp\",\n\"takasago.hyogo.jp\",\n\"takino.hyogo.jp\",\n\"tamba.hyogo.jp\",\n\"tatsuno.hyogo.jp\",\n\"toyooka.hyogo.jp\",\n\"yabu.hyogo.jp\",\n\"yashiro.hyogo.jp\",\n\"yoka.hyogo.jp\",\n\"yokawa.hyogo.jp\",\n\"ami.ibaraki.jp\",\n\"asahi.ibaraki.jp\",\n\"bando.ibaraki.jp\",\n\"chikusei.ibaraki.jp\",\n\"daigo.ibaraki.jp\",\n\"fujishiro.ibaraki.jp\",\n\"hitachi.ibaraki.jp\",\n\"hitachinaka.ibaraki.jp\",\n\"hitachiomiya.ibaraki.jp\",\n\"hitachiota.ibaraki.jp\",\n\"ibaraki.ibaraki.jp\",\n\"ina.ibaraki.jp\",\n\"inashiki.ibaraki.jp\",\n\"itako.ibaraki.jp\",\n\"iwama.ibaraki.jp\",\n\"joso.ibaraki.jp\",\n\"kamisu.ibaraki.jp\",\n\"kasama.ibaraki.jp\",\n\"kashima.ibaraki.jp\",\n\"kasumigaura.ibaraki.jp\",\n\"koga.ibaraki.jp\",\n\"miho.ibaraki.jp\",\n\"mito.ibaraki.jp\",\n\"moriya.ibaraki.jp\",\n\"naka.ibaraki.jp\",\n\"namegata.ibaraki.jp\",\n\"oarai.ibaraki.jp\",\n\"ogawa.ibaraki.jp\",\n\"omitama.ibaraki.jp\",\n\"ryugasaki.ibaraki.jp\",\n\"sakai.ibaraki.jp\",\n\"sakuragawa.ibaraki.jp\",\n\"shimodate.ibaraki.jp\",\n\"shimotsuma.ibaraki.jp\",\n\"shirosato.ibaraki.jp\",\n\"sowa.ibaraki.jp\",\n\"suifu.ibaraki.jp\",\n\"takahagi.ibaraki.jp\",\n\"tamatsukuri.ibaraki.jp\",\n\"tokai.ibaraki.jp\",\n\"tomobe.ibaraki.jp\",\n\"tone.ibaraki.jp\",\n\"toride.ibaraki.jp\",\n\"tsuchiura.ibaraki.jp\",\n\"tsukuba.ibaraki.jp\",\n\"uchihara.ibaraki.jp\",\n\"ushiku.ibaraki.jp\",\n\"yachiyo.ibaraki.jp\",\n\"yamagata.ibaraki.jp\",\n\"yawara.ibaraki.jp\",\n\"yuki.ibaraki.jp\",\n\"anamizu.ishikawa.jp\",\n\"hakui.ishikawa.jp\",\n\"hakusan.ishikawa.jp\",\n\"kaga.ishikawa.jp\",\n\"kahoku.ishikawa.jp\",\n\"kanazawa.ishikawa.jp\",\n\"kawakita.ishikawa.jp\",\n\"komatsu.ishikawa.jp\",\n\"nakanoto.ishikawa.jp\",\n\"nanao.ishikawa.jp\",\n\"nomi.ishikawa.jp\",\n\"nonoichi.ishikawa.jp\",\n\"noto.ishikawa.jp\",\n\"shika.ishikawa.jp\",\n\"suzu.ishikawa.jp\",\n\"tsubata.ishikawa.jp\",\n\"tsurugi.ishikawa.jp\",\n\"uchinada.ishikawa.jp\",\n\"wajima.ishikawa.jp\",\n\"fudai.iwate.jp\",\n\"fujisawa.iwate.jp\",\n\"hanamaki.iwate.jp\",\n\"hiraizumi.iwate.jp\",\n\"hirono.iwate.jp\",\n\"ichinohe.iwate.jp\",\n\"ichinoseki.iwate.jp\",\n\"iwaizumi.iwate.jp\",\n\"iwate.iwate.jp\",\n\"joboji.iwate.jp\",\n\"kamaishi.iwate.jp\",\n\"kanegasaki.iwate.jp\",\n\"karumai.iwate.jp\",\n\"kawai.iwate.jp\",\n\"kitakami.iwate.jp\",\n\"kuji.iwate.jp\",\n\"kunohe.iwate.jp\",\n\"kuzumaki.iwate.jp\",\n\"miyako.iwate.jp\",\n\"mizusawa.iwate.jp\",\n\"morioka.iwate.jp\",\n\"ninohe.iwate.jp\",\n\"noda.iwate.jp\",\n\"ofunato.iwate.jp\",\n\"oshu.iwate.jp\",\n\"otsuchi.iwate.jp\",\n\"rikuzentakata.iwate.jp\",\n\"shiwa.iwate.jp\",\n\"shizukuishi.iwate.jp\",\n\"sumita.iwate.jp\",\n\"tanohata.iwate.jp\",\n\"tono.iwate.jp\",\n\"yahaba.iwate.jp\",\n\"yamada.iwate.jp\",\n\"ayagawa.kagawa.jp\",\n\"higashikagawa.kagawa.jp\",\n\"kanonji.kagawa.jp\",\n\"kotohira.kagawa.jp\",\n\"manno.kagawa.jp\",\n\"marugame.kagawa.jp\",\n\"mitoyo.kagawa.jp\",\n\"naoshima.kagawa.jp\",\n\"sanuki.kagawa.jp\",\n\"tadotsu.kagawa.jp\",\n\"takamatsu.kagawa.jp\",\n\"tonosho.kagawa.jp\",\n\"uchinomi.kagawa.jp\",\n\"utazu.kagawa.jp\",\n\"zentsuji.kagawa.jp\",\n\"akune.kagoshima.jp\",\n\"amami.kagoshima.jp\",\n\"hioki.kagoshima.jp\",\n\"isa.kagoshima.jp\",\n\"isen.kagoshima.jp\",\n\"izumi.kagoshima.jp\",\n\"kagoshima.kagoshima.jp\",\n\"kanoya.kagoshima.jp\",\n\"kawanabe.kagoshima.jp\",\n\"kinko.kagoshima.jp\",\n\"kouyama.kagoshima.jp\",\n\"makurazaki.kagoshima.jp\",\n\"matsumoto.kagoshima.jp\",\n\"minamitane.kagoshima.jp\",\n\"nakatane.kagoshima.jp\",\n\"nishinoomote.kagoshima.jp\",\n\"satsumasendai.kagoshima.jp\",\n\"soo.kagoshima.jp\",\n\"tarumizu.kagoshima.jp\",\n\"yusui.kagoshima.jp\",\n\"aikawa.kanagawa.jp\",\n\"atsugi.kanagawa.jp\",\n\"ayase.kanagawa.jp\",\n\"chigasaki.kanagawa.jp\",\n\"ebina.kanagawa.jp\",\n\"fujisawa.kanagawa.jp\",\n\"hadano.kanagawa.jp\",\n\"hakone.kanagawa.jp\",\n\"hiratsuka.kanagawa.jp\",\n\"isehara.kanagawa.jp\",\n\"kaisei.kanagawa.jp\",\n\"kamakura.kanagawa.jp\",\n\"kiyokawa.kanagawa.jp\",\n\"matsuda.kanagawa.jp\",\n\"minamiashigara.kanagawa.jp\",\n\"miura.kanagawa.jp\",\n\"nakai.kanagawa.jp\",\n\"ninomiya.kanagawa.jp\",\n\"odawara.kanagawa.jp\",\n\"oi.kanagawa.jp\",\n\"oiso.kanagawa.jp\",\n\"sagamihara.kanagawa.jp\",\n\"samukawa.kanagawa.jp\",\n\"tsukui.kanagawa.jp\",\n\"yamakita.kanagawa.jp\",\n\"yamato.kanagawa.jp\",\n\"yokosuka.kanagawa.jp\",\n\"yugawara.kanagawa.jp\",\n\"zama.kanagawa.jp\",\n\"zushi.kanagawa.jp\",\n\"aki.kochi.jp\",\n\"geisei.kochi.jp\",\n\"hidaka.kochi.jp\",\n\"higashitsuno.kochi.jp\",\n\"ino.kochi.jp\",\n\"kagami.kochi.jp\",\n\"kami.kochi.jp\",\n\"kitagawa.kochi.jp\",\n\"kochi.kochi.jp\",\n\"mihara.kochi.jp\",\n\"motoyama.kochi.jp\",\n\"muroto.kochi.jp\",\n\"nahari.kochi.jp\",\n\"nakamura.kochi.jp\",\n\"nankoku.kochi.jp\",\n\"nishitosa.kochi.jp\",\n\"niyodogawa.kochi.jp\",\n\"ochi.kochi.jp\",\n\"okawa.kochi.jp\",\n\"otoyo.kochi.jp\",\n\"otsuki.kochi.jp\",\n\"sakawa.kochi.jp\",\n\"sukumo.kochi.jp\",\n\"susaki.kochi.jp\",\n\"tosa.kochi.jp\",\n\"tosashimizu.kochi.jp\",\n\"toyo.kochi.jp\",\n\"tsuno.kochi.jp\",\n\"umaji.kochi.jp\",\n\"yasuda.kochi.jp\",\n\"yusuhara.kochi.jp\",\n\"amakusa.kumamoto.jp\",\n\"arao.kumamoto.jp\",\n\"aso.kumamoto.jp\",\n\"choyo.kumamoto.jp\",\n\"gyokuto.kumamoto.jp\",\n\"kamiamakusa.kumamoto.jp\",\n\"kikuchi.kumamoto.jp\",\n\"kumamoto.kumamoto.jp\",\n\"mashiki.kumamoto.jp\",\n\"mifune.kumamoto.jp\",\n\"minamata.kumamoto.jp\",\n\"minamioguni.kumamoto.jp\",\n\"nagasu.kumamoto.jp\",\n\"nishihara.kumamoto.jp\",\n\"oguni.kumamoto.jp\",\n\"ozu.kumamoto.jp\",\n\"sumoto.kumamoto.jp\",\n\"takamori.kumamoto.jp\",\n\"uki.kumamoto.jp\",\n\"uto.kumamoto.jp\",\n\"yamaga.kumamoto.jp\",\n\"yamato.kumamoto.jp\",\n\"yatsushiro.kumamoto.jp\",\n\"ayabe.kyoto.jp\",\n\"fukuchiyama.kyoto.jp\",\n\"higashiyama.kyoto.jp\",\n\"ide.kyoto.jp\",\n\"ine.kyoto.jp\",\n\"joyo.kyoto.jp\",\n\"kameoka.kyoto.jp\",\n\"kamo.kyoto.jp\",\n\"kita.kyoto.jp\",\n\"kizu.kyoto.jp\",\n\"kumiyama.kyoto.jp\",\n\"kyotamba.kyoto.jp\",\n\"kyotanabe.kyoto.jp\",\n\"kyotango.kyoto.jp\",\n\"maizuru.kyoto.jp\",\n\"minami.kyoto.jp\",\n\"minamiyamashiro.kyoto.jp\",\n\"miyazu.kyoto.jp\",\n\"muko.kyoto.jp\",\n\"nagaokakyo.kyoto.jp\",\n\"nakagyo.kyoto.jp\",\n\"nantan.kyoto.jp\",\n\"oyamazaki.kyoto.jp\",\n\"sakyo.kyoto.jp\",\n\"seika.kyoto.jp\",\n\"tanabe.kyoto.jp\",\n\"uji.kyoto.jp\",\n\"ujitawara.kyoto.jp\",\n\"wazuka.kyoto.jp\",\n\"yamashina.kyoto.jp\",\n\"yawata.kyoto.jp\",\n\"asahi.mie.jp\",\n\"inabe.mie.jp\",\n\"ise.mie.jp\",\n\"kameyama.mie.jp\",\n\"kawagoe.mie.jp\",\n\"kiho.mie.jp\",\n\"kisosaki.mie.jp\",\n\"kiwa.mie.jp\",\n\"komono.mie.jp\",\n\"kumano.mie.jp\",\n\"kuwana.mie.jp\",\n\"matsusaka.mie.jp\",\n\"meiwa.mie.jp\",\n\"mihama.mie.jp\",\n\"minamiise.mie.jp\",\n\"misugi.mie.jp\",\n\"miyama.mie.jp\",\n\"nabari.mie.jp\",\n\"shima.mie.jp\",\n\"suzuka.mie.jp\",\n\"tado.mie.jp\",\n\"taiki.mie.jp\",\n\"taki.mie.jp\",\n\"tamaki.mie.jp\",\n\"toba.mie.jp\",\n\"tsu.mie.jp\",\n\"udono.mie.jp\",\n\"ureshino.mie.jp\",\n\"watarai.mie.jp\",\n\"yokkaichi.mie.jp\",\n\"furukawa.miyagi.jp\",\n\"higashimatsushima.miyagi.jp\",\n\"ishinomaki.miyagi.jp\",\n\"iwanuma.miyagi.jp\",\n\"kakuda.miyagi.jp\",\n\"kami.miyagi.jp\",\n\"kawasaki.miyagi.jp\",\n\"marumori.miyagi.jp\",\n\"matsushima.miyagi.jp\",\n\"minamisanriku.miyagi.jp\",\n\"misato.miyagi.jp\",\n\"murata.miyagi.jp\",\n\"natori.miyagi.jp\",\n\"ogawara.miyagi.jp\",\n\"ohira.miyagi.jp\",\n\"onagawa.miyagi.jp\",\n\"osaki.miyagi.jp\",\n\"rifu.miyagi.jp\",\n\"semine.miyagi.jp\",\n\"shibata.miyagi.jp\",\n\"shichikashuku.miyagi.jp\",\n\"shikama.miyagi.jp\",\n\"shiogama.miyagi.jp\",\n\"shiroishi.miyagi.jp\",\n\"tagajo.miyagi.jp\",\n\"taiwa.miyagi.jp\",\n\"tome.miyagi.jp\",\n\"tomiya.miyagi.jp\",\n\"wakuya.miyagi.jp\",\n\"watari.miyagi.jp\",\n\"yamamoto.miyagi.jp\",\n\"zao.miyagi.jp\",\n\"aya.miyazaki.jp\",\n\"ebino.miyazaki.jp\",\n\"gokase.miyazaki.jp\",\n\"hyuga.miyazaki.jp\",\n\"kadogawa.miyazaki.jp\",\n\"kawaminami.miyazaki.jp\",\n\"kijo.miyazaki.jp\",\n\"kitagawa.miyazaki.jp\",\n\"kitakata.miyazaki.jp\",\n\"kitaura.miyazaki.jp\",\n\"kobayashi.miyazaki.jp\",\n\"kunitomi.miyazaki.jp\",\n\"kushima.miyazaki.jp\",\n\"mimata.miyazaki.jp\",\n\"miyakonojo.miyazaki.jp\",\n\"miyazaki.miyazaki.jp\",\n\"morotsuka.miyazaki.jp\",\n\"nichinan.miyazaki.jp\",\n\"nishimera.miyazaki.jp\",\n\"nobeoka.miyazaki.jp\",\n\"saito.miyazaki.jp\",\n\"shiiba.miyazaki.jp\",\n\"shintomi.miyazaki.jp\",\n\"takaharu.miyazaki.jp\",\n\"takanabe.miyazaki.jp\",\n\"takazaki.miyazaki.jp\",\n\"tsuno.miyazaki.jp\",\n\"achi.nagano.jp\",\n\"agematsu.nagano.jp\",\n\"anan.nagano.jp\",\n\"aoki.nagano.jp\",\n\"asahi.nagano.jp\",\n\"azumino.nagano.jp\",\n\"chikuhoku.nagano.jp\",\n\"chikuma.nagano.jp\",\n\"chino.nagano.jp\",\n\"fujimi.nagano.jp\",\n\"hakuba.nagano.jp\",\n\"hara.nagano.jp\",\n\"hiraya.nagano.jp\",\n\"iida.nagano.jp\",\n\"iijima.nagano.jp\",\n\"iiyama.nagano.jp\",\n\"iizuna.nagano.jp\",\n\"ikeda.nagano.jp\",\n\"ikusaka.nagano.jp\",\n\"ina.nagano.jp\",\n\"karuizawa.nagano.jp\",\n\"kawakami.nagano.jp\",\n\"kiso.nagano.jp\",\n\"kisofukushima.nagano.jp\",\n\"kitaaiki.nagano.jp\",\n\"komagane.nagano.jp\",\n\"komoro.nagano.jp\",\n\"matsukawa.nagano.jp\",\n\"matsumoto.nagano.jp\",\n\"miasa.nagano.jp\",\n\"minamiaiki.nagano.jp\",\n\"minamimaki.nagano.jp\",\n\"minamiminowa.nagano.jp\",\n\"minowa.nagano.jp\",\n\"miyada.nagano.jp\",\n\"miyota.nagano.jp\",\n\"mochizuki.nagano.jp\",\n\"nagano.nagano.jp\",\n\"nagawa.nagano.jp\",\n\"nagiso.nagano.jp\",\n\"nakagawa.nagano.jp\",\n\"nakano.nagano.jp\",\n\"nozawaonsen.nagano.jp\",\n\"obuse.nagano.jp\",\n\"ogawa.nagano.jp\",\n\"okaya.nagano.jp\",\n\"omachi.nagano.jp\",\n\"omi.nagano.jp\",\n\"ookuwa.nagano.jp\",\n\"ooshika.nagano.jp\",\n\"otaki.nagano.jp\",\n\"otari.nagano.jp\",\n\"sakae.nagano.jp\",\n\"sakaki.nagano.jp\",\n\"saku.nagano.jp\",\n\"sakuho.nagano.jp\",\n\"shimosuwa.nagano.jp\",\n\"shinanomachi.nagano.jp\",\n\"shiojiri.nagano.jp\",\n\"suwa.nagano.jp\",\n\"suzaka.nagano.jp\",\n\"takagi.nagano.jp\",\n\"takamori.nagano.jp\",\n\"takayama.nagano.jp\",\n\"tateshina.nagano.jp\",\n\"tatsuno.nagano.jp\",\n\"togakushi.nagano.jp\",\n\"togura.nagano.jp\",\n\"tomi.nagano.jp\",\n\"ueda.nagano.jp\",\n\"wada.nagano.jp\",\n\"yamagata.nagano.jp\",\n\"yamanouchi.nagano.jp\",\n\"yasaka.nagano.jp\",\n\"yasuoka.nagano.jp\",\n\"chijiwa.nagasaki.jp\",\n\"futsu.nagasaki.jp\",\n\"goto.nagasaki.jp\",\n\"hasami.nagasaki.jp\",\n\"hirado.nagasaki.jp\",\n\"iki.nagasaki.jp\",\n\"isahaya.nagasaki.jp\",\n\"kawatana.nagasaki.jp\",\n\"kuchinotsu.nagasaki.jp\",\n\"matsuura.nagasaki.jp\",\n\"nagasaki.nagasaki.jp\",\n\"obama.nagasaki.jp\",\n\"omura.nagasaki.jp\",\n\"oseto.nagasaki.jp\",\n\"saikai.nagasaki.jp\",\n\"sasebo.nagasaki.jp\",\n\"seihi.nagasaki.jp\",\n\"shimabara.nagasaki.jp\",\n\"shinkamigoto.nagasaki.jp\",\n\"togitsu.nagasaki.jp\",\n\"tsushima.nagasaki.jp\",\n\"unzen.nagasaki.jp\",\n\"ando.nara.jp\",\n\"gose.nara.jp\",\n\"heguri.nara.jp\",\n\"higashiyoshino.nara.jp\",\n\"ikaruga.nara.jp\",\n\"ikoma.nara.jp\",\n\"kamikitayama.nara.jp\",\n\"kanmaki.nara.jp\",\n\"kashiba.nara.jp\",\n\"kashihara.nara.jp\",\n\"katsuragi.nara.jp\",\n\"kawai.nara.jp\",\n\"kawakami.nara.jp\",\n\"kawanishi.nara.jp\",\n\"koryo.nara.jp\",\n\"kurotaki.nara.jp\",\n\"mitsue.nara.jp\",\n\"miyake.nara.jp\",\n\"nara.nara.jp\",\n\"nosegawa.nara.jp\",\n\"oji.nara.jp\",\n\"ouda.nara.jp\",\n\"oyodo.nara.jp\",\n\"sakurai.nara.jp\",\n\"sango.nara.jp\",\n\"shimoichi.nara.jp\",\n\"shimokitayama.nara.jp\",\n\"shinjo.nara.jp\",\n\"soni.nara.jp\",\n\"takatori.nara.jp\",\n\"tawaramoto.nara.jp\",\n\"tenkawa.nara.jp\",\n\"tenri.nara.jp\",\n\"uda.nara.jp\",\n\"yamatokoriyama.nara.jp\",\n\"yamatotakada.nara.jp\",\n\"yamazoe.nara.jp\",\n\"yoshino.nara.jp\",\n\"aga.niigata.jp\",\n\"agano.niigata.jp\",\n\"gosen.niigata.jp\",\n\"itoigawa.niigata.jp\",\n\"izumozaki.niigata.jp\",\n\"joetsu.niigata.jp\",\n\"kamo.niigata.jp\",\n\"kariwa.niigata.jp\",\n\"kashiwazaki.niigata.jp\",\n\"minamiuonuma.niigata.jp\",\n\"mitsuke.niigata.jp\",\n\"muika.niigata.jp\",\n\"murakami.niigata.jp\",\n\"myoko.niigata.jp\",\n\"nagaoka.niigata.jp\",\n\"niigata.niigata.jp\",\n\"ojiya.niigata.jp\",\n\"omi.niigata.jp\",\n\"sado.niigata.jp\",\n\"sanjo.niigata.jp\",\n\"seiro.niigata.jp\",\n\"seirou.niigata.jp\",\n\"sekikawa.niigata.jp\",\n\"shibata.niigata.jp\",\n\"tagami.niigata.jp\",\n\"tainai.niigata.jp\",\n\"tochio.niigata.jp\",\n\"tokamachi.niigata.jp\",\n\"tsubame.niigata.jp\",\n\"tsunan.niigata.jp\",\n\"uonuma.niigata.jp\",\n\"yahiko.niigata.jp\",\n\"yoita.niigata.jp\",\n\"yuzawa.niigata.jp\",\n\"beppu.oita.jp\",\n\"bungoono.oita.jp\",\n\"bungotakada.oita.jp\",\n\"hasama.oita.jp\",\n\"hiji.oita.jp\",\n\"himeshima.oita.jp\",\n\"hita.oita.jp\",\n\"kamitsue.oita.jp\",\n\"kokonoe.oita.jp\",\n\"kuju.oita.jp\",\n\"kunisaki.oita.jp\",\n\"kusu.oita.jp\",\n\"oita.oita.jp\",\n\"saiki.oita.jp\",\n\"taketa.oita.jp\",\n\"tsukumi.oita.jp\",\n\"usa.oita.jp\",\n\"usuki.oita.jp\",\n\"yufu.oita.jp\",\n\"akaiwa.okayama.jp\",\n\"asakuchi.okayama.jp\",\n\"bizen.okayama.jp\",\n\"hayashima.okayama.jp\",\n\"ibara.okayama.jp\",\n\"kagamino.okayama.jp\",\n\"kasaoka.okayama.jp\",\n\"kibichuo.okayama.jp\",\n\"kumenan.okayama.jp\",\n\"kurashiki.okayama.jp\",\n\"maniwa.okayama.jp\",\n\"misaki.okayama.jp\",\n\"nagi.okayama.jp\",\n\"niimi.okayama.jp\",\n\"nishiawakura.okayama.jp\",\n\"okayama.okayama.jp\",\n\"satosho.okayama.jp\",\n\"setouchi.okayama.jp\",\n\"shinjo.okayama.jp\",\n\"shoo.okayama.jp\",\n\"soja.okayama.jp\",\n\"takahashi.okayama.jp\",\n\"tamano.okayama.jp\",\n\"tsuyama.okayama.jp\",\n\"wake.okayama.jp\",\n\"yakage.okayama.jp\",\n\"aguni.okinawa.jp\",\n\"ginowan.okinawa.jp\",\n\"ginoza.okinawa.jp\",\n\"gushikami.okinawa.jp\",\n\"haebaru.okinawa.jp\",\n\"higashi.okinawa.jp\",\n\"hirara.okinawa.jp\",\n\"iheya.okinawa.jp\",\n\"ishigaki.okinawa.jp\",\n\"ishikawa.okinawa.jp\",\n\"itoman.okinawa.jp\",\n\"izena.okinawa.jp\",\n\"kadena.okinawa.jp\",\n\"kin.okinawa.jp\",\n\"kitadaito.okinawa.jp\",\n\"kitanakagusuku.okinawa.jp\",\n\"kumejima.okinawa.jp\",\n\"kunigami.okinawa.jp\",\n\"minamidaito.okinawa.jp\",\n\"motobu.okinawa.jp\",\n\"nago.okinawa.jp\",\n\"naha.okinawa.jp\",\n\"nakagusuku.okinawa.jp\",\n\"nakijin.okinawa.jp\",\n\"nanjo.okinawa.jp\",\n\"nishihara.okinawa.jp\",\n\"ogimi.okinawa.jp\",\n\"okinawa.okinawa.jp\",\n\"onna.okinawa.jp\",\n\"shimoji.okinawa.jp\",\n\"taketomi.okinawa.jp\",\n\"tarama.okinawa.jp\",\n\"tokashiki.okinawa.jp\",\n\"tomigusuku.okinawa.jp\",\n\"tonaki.okinawa.jp\",\n\"urasoe.okinawa.jp\",\n\"uruma.okinawa.jp\",\n\"yaese.okinawa.jp\",\n\"yomitan.okinawa.jp\",\n\"yonabaru.okinawa.jp\",\n\"yonaguni.okinawa.jp\",\n\"zamami.okinawa.jp\",\n\"abeno.osaka.jp\",\n\"chihayaakasaka.osaka.jp\",\n\"chuo.osaka.jp\",\n\"daito.osaka.jp\",\n\"fujiidera.osaka.jp\",\n\"habikino.osaka.jp\",\n\"hannan.osaka.jp\",\n\"higashiosaka.osaka.jp\",\n\"higashisumiyoshi.osaka.jp\",\n\"higashiyodogawa.osaka.jp\",\n\"hirakata.osaka.jp\",\n\"ibaraki.osaka.jp\",\n\"ikeda.osaka.jp\",\n\"izumi.osaka.jp\",\n\"izumiotsu.osaka.jp\",\n\"izumisano.osaka.jp\",\n\"kadoma.osaka.jp\",\n\"kaizuka.osaka.jp\",\n\"kanan.osaka.jp\",\n\"kashiwara.osaka.jp\",\n\"katano.osaka.jp\",\n\"kawachinagano.osaka.jp\",\n\"kishiwada.osaka.jp\",\n\"kita.osaka.jp\",\n\"kumatori.osaka.jp\",\n\"matsubara.osaka.jp\",\n\"minato.osaka.jp\",\n\"minoh.osaka.jp\",\n\"misaki.osaka.jp\",\n\"moriguchi.osaka.jp\",\n\"neyagawa.osaka.jp\",\n\"nishi.osaka.jp\",\n\"nose.osaka.jp\",\n\"osakasayama.osaka.jp\",\n\"sakai.osaka.jp\",\n\"sayama.osaka.jp\",\n\"sennan.osaka.jp\",\n\"settsu.osaka.jp\",\n\"shijonawate.osaka.jp\",\n\"shimamoto.osaka.jp\",\n\"suita.osaka.jp\",\n\"tadaoka.osaka.jp\",\n\"taishi.osaka.jp\",\n\"tajiri.osaka.jp\",\n\"takaishi.osaka.jp\",\n\"takatsuki.osaka.jp\",\n\"tondabayashi.osaka.jp\",\n\"toyonaka.osaka.jp\",\n\"toyono.osaka.jp\",\n\"yao.osaka.jp\",\n\"ariake.saga.jp\",\n\"arita.saga.jp\",\n\"fukudomi.saga.jp\",\n\"genkai.saga.jp\",\n\"hamatama.saga.jp\",\n\"hizen.saga.jp\",\n\"imari.saga.jp\",\n\"kamimine.saga.jp\",\n\"kanzaki.saga.jp\",\n\"karatsu.saga.jp\",\n\"kashima.saga.jp\",\n\"kitagata.saga.jp\",\n\"kitahata.saga.jp\",\n\"kiyama.saga.jp\",\n\"kouhoku.saga.jp\",\n\"kyuragi.saga.jp\",\n\"nishiarita.saga.jp\",\n\"ogi.saga.jp\",\n\"omachi.saga.jp\",\n\"ouchi.saga.jp\",\n\"saga.saga.jp\",\n\"shiroishi.saga.jp\",\n\"taku.saga.jp\",\n\"tara.saga.jp\",\n\"tosu.saga.jp\",\n\"yoshinogari.saga.jp\",\n\"arakawa.saitama.jp\",\n\"asaka.saitama.jp\",\n\"chichibu.saitama.jp\",\n\"fujimi.saitama.jp\",\n\"fujimino.saitama.jp\",\n\"fukaya.saitama.jp\",\n\"hanno.saitama.jp\",\n\"hanyu.saitama.jp\",\n\"hasuda.saitama.jp\",\n\"hatogaya.saitama.jp\",\n\"hatoyama.saitama.jp\",\n\"hidaka.saitama.jp\",\n\"higashichichibu.saitama.jp\",\n\"higashimatsuyama.saitama.jp\",\n\"honjo.saitama.jp\",\n\"ina.saitama.jp\",\n\"iruma.saitama.jp\",\n\"iwatsuki.saitama.jp\",\n\"kamiizumi.saitama.jp\",\n\"kamikawa.saitama.jp\",\n\"kamisato.saitama.jp\",\n\"kasukabe.saitama.jp\",\n\"kawagoe.saitama.jp\",\n\"kawaguchi.saitama.jp\",\n\"kawajima.saitama.jp\",\n\"kazo.saitama.jp\",\n\"kitamoto.saitama.jp\",\n\"koshigaya.saitama.jp\",\n\"kounosu.saitama.jp\",\n\"kuki.saitama.jp\",\n\"kumagaya.saitama.jp\",\n\"matsubushi.saitama.jp\",\n\"minano.saitama.jp\",\n\"misato.saitama.jp\",\n\"miyashiro.saitama.jp\",\n\"miyoshi.saitama.jp\",\n\"moroyama.saitama.jp\",\n\"nagatoro.saitama.jp\",\n\"namegawa.saitama.jp\",\n\"niiza.saitama.jp\",\n\"ogano.saitama.jp\",\n\"ogawa.saitama.jp\",\n\"ogose.saitama.jp\",\n\"okegawa.saitama.jp\",\n\"omiya.saitama.jp\",\n\"otaki.saitama.jp\",\n\"ranzan.saitama.jp\",\n\"ryokami.saitama.jp\",\n\"saitama.saitama.jp\",\n\"sakado.saitama.jp\",\n\"satte.saitama.jp\",\n\"sayama.saitama.jp\",\n\"shiki.saitama.jp\",\n\"shiraoka.saitama.jp\",\n\"soka.saitama.jp\",\n\"sugito.saitama.jp\",\n\"toda.saitama.jp\",\n\"tokigawa.saitama.jp\",\n\"tokorozawa.saitama.jp\",\n\"tsurugashima.saitama.jp\",\n\"urawa.saitama.jp\",\n\"warabi.saitama.jp\",\n\"yashio.saitama.jp\",\n\"yokoze.saitama.jp\",\n\"yono.saitama.jp\",\n\"yorii.saitama.jp\",\n\"yoshida.saitama.jp\",\n\"yoshikawa.saitama.jp\",\n\"yoshimi.saitama.jp\",\n\"aisho.shiga.jp\",\n\"gamo.shiga.jp\",\n\"higashiomi.shiga.jp\",\n\"hikone.shiga.jp\",\n\"koka.shiga.jp\",\n\"konan.shiga.jp\",\n\"kosei.shiga.jp\",\n\"koto.shiga.jp\",\n\"kusatsu.shiga.jp\",\n\"maibara.shiga.jp\",\n\"moriyama.shiga.jp\",\n\"nagahama.shiga.jp\",\n\"nishiazai.shiga.jp\",\n\"notogawa.shiga.jp\",\n\"omihachiman.shiga.jp\",\n\"otsu.shiga.jp\",\n\"ritto.shiga.jp\",\n\"ryuoh.shiga.jp\",\n\"takashima.shiga.jp\",\n\"takatsuki.shiga.jp\",\n\"torahime.shiga.jp\",\n\"toyosato.shiga.jp\",\n\"yasu.shiga.jp\",\n\"akagi.shimane.jp\",\n\"ama.shimane.jp\",\n\"gotsu.shimane.jp\",\n\"hamada.shimane.jp\",\n\"higashiizumo.shimane.jp\",\n\"hikawa.shimane.jp\",\n\"hikimi.shimane.jp\",\n\"izumo.shimane.jp\",\n\"kakinoki.shimane.jp\",\n\"masuda.shimane.jp\",\n\"matsue.shimane.jp\",\n\"misato.shimane.jp\",\n\"nishinoshima.shimane.jp\",\n\"ohda.shimane.jp\",\n\"okinoshima.shimane.jp\",\n\"okuizumo.shimane.jp\",\n\"shimane.shimane.jp\",\n\"tamayu.shimane.jp\",\n\"tsuwano.shimane.jp\",\n\"unnan.shimane.jp\",\n\"yakumo.shimane.jp\",\n\"yasugi.shimane.jp\",\n\"yatsuka.shimane.jp\",\n\"arai.shizuoka.jp\",\n\"atami.shizuoka.jp\",\n\"fuji.shizuoka.jp\",\n\"fujieda.shizuoka.jp\",\n\"fujikawa.shizuoka.jp\",\n\"fujinomiya.shizuoka.jp\",\n\"fukuroi.shizuoka.jp\",\n\"gotemba.shizuoka.jp\",\n\"haibara.shizuoka.jp\",\n\"hamamatsu.shizuoka.jp\",\n\"higashiizu.shizuoka.jp\",\n\"ito.shizuoka.jp\",\n\"iwata.shizuoka.jp\",\n\"izu.shizuoka.jp\",\n\"izunokuni.shizuoka.jp\",\n\"kakegawa.shizuoka.jp\",\n\"kannami.shizuoka.jp\",\n\"kawanehon.shizuoka.jp\",\n\"kawazu.shizuoka.jp\",\n\"kikugawa.shizuoka.jp\",\n\"kosai.shizuoka.jp\",\n\"makinohara.shizuoka.jp\",\n\"matsuzaki.shizuoka.jp\",\n\"minamiizu.shizuoka.jp\",\n\"mishima.shizuoka.jp\",\n\"morimachi.shizuoka.jp\",\n\"nishiizu.shizuoka.jp\",\n\"numazu.shizuoka.jp\",\n\"omaezaki.shizuoka.jp\",\n\"shimada.shizuoka.jp\",\n\"shimizu.shizuoka.jp\",\n\"shimoda.shizuoka.jp\",\n\"shizuoka.shizuoka.jp\",\n\"susono.shizuoka.jp\",\n\"yaizu.shizuoka.jp\",\n\"yoshida.shizuoka.jp\",\n\"ashikaga.tochigi.jp\",\n\"bato.tochigi.jp\",\n\"haga.tochigi.jp\",\n\"ichikai.tochigi.jp\",\n\"iwafune.tochigi.jp\",\n\"kaminokawa.tochigi.jp\",\n\"kanuma.tochigi.jp\",\n\"karasuyama.tochigi.jp\",\n\"kuroiso.tochigi.jp\",\n\"mashiko.tochigi.jp\",\n\"mibu.tochigi.jp\",\n\"moka.tochigi.jp\",\n\"motegi.tochigi.jp\",\n\"nasu.tochigi.jp\",\n\"nasushiobara.tochigi.jp\",\n\"nikko.tochigi.jp\",\n\"nishikata.tochigi.jp\",\n\"nogi.tochigi.jp\",\n\"ohira.tochigi.jp\",\n\"ohtawara.tochigi.jp\",\n\"oyama.tochigi.jp\",\n\"sakura.tochigi.jp\",\n\"sano.tochigi.jp\",\n\"shimotsuke.tochigi.jp\",\n\"shioya.tochigi.jp\",\n\"takanezawa.tochigi.jp\",\n\"tochigi.tochigi.jp\",\n\"tsuga.tochigi.jp\",\n\"ujiie.tochigi.jp\",\n\"utsunomiya.tochigi.jp\",\n\"yaita.tochigi.jp\",\n\"aizumi.tokushima.jp\",\n\"anan.tokushima.jp\",\n\"ichiba.tokushima.jp\",\n\"itano.tokushima.jp\",\n\"kainan.tokushima.jp\",\n\"komatsushima.tokushima.jp\",\n\"matsushige.tokushima.jp\",\n\"mima.tokushima.jp\",\n\"minami.tokushima.jp\",\n\"miyoshi.tokushima.jp\",\n\"mugi.tokushima.jp\",\n\"nakagawa.tokushima.jp\",\n\"naruto.tokushima.jp\",\n\"sanagochi.tokushima.jp\",\n\"shishikui.tokushima.jp\",\n\"tokushima.tokushima.jp\",\n\"wajiki.tokushima.jp\",\n\"adachi.tokyo.jp\",\n\"akiruno.tokyo.jp\",\n\"akishima.tokyo.jp\",\n\"aogashima.tokyo.jp\",\n\"arakawa.tokyo.jp\",\n\"bunkyo.tokyo.jp\",\n\"chiyoda.tokyo.jp\",\n\"chofu.tokyo.jp\",\n\"chuo.tokyo.jp\",\n\"edogawa.tokyo.jp\",\n\"fuchu.tokyo.jp\",\n\"fussa.tokyo.jp\",\n\"hachijo.tokyo.jp\",\n\"hachioji.tokyo.jp\",\n\"hamura.tokyo.jp\",\n\"higashikurume.tokyo.jp\",\n\"higashimurayama.tokyo.jp\",\n\"higashiyamato.tokyo.jp\",\n\"hino.tokyo.jp\",\n\"hinode.tokyo.jp\",\n\"hinohara.tokyo.jp\",\n\"inagi.tokyo.jp\",\n\"itabashi.tokyo.jp\",\n\"katsushika.tokyo.jp\",\n\"kita.tokyo.jp\",\n\"kiyose.tokyo.jp\",\n\"kodaira.tokyo.jp\",\n\"koganei.tokyo.jp\",\n\"kokubunji.tokyo.jp\",\n\"komae.tokyo.jp\",\n\"koto.tokyo.jp\",\n\"kouzushima.tokyo.jp\",\n\"kunitachi.tokyo.jp\",\n\"machida.tokyo.jp\",\n\"meguro.tokyo.jp\",\n\"minato.tokyo.jp\",\n\"mitaka.tokyo.jp\",\n\"mizuho.tokyo.jp\",\n\"musashimurayama.tokyo.jp\",\n\"musashino.tokyo.jp\",\n\"nakano.tokyo.jp\",\n\"nerima.tokyo.jp\",\n\"ogasawara.tokyo.jp\",\n\"okutama.tokyo.jp\",\n\"ome.tokyo.jp\",\n\"oshima.tokyo.jp\",\n\"ota.tokyo.jp\",\n\"setagaya.tokyo.jp\",\n\"shibuya.tokyo.jp\",\n\"shinagawa.tokyo.jp\",\n\"shinjuku.tokyo.jp\",\n\"suginami.tokyo.jp\",\n\"sumida.tokyo.jp\",\n\"tachikawa.tokyo.jp\",\n\"taito.tokyo.jp\",\n\"tama.tokyo.jp\",\n\"toshima.tokyo.jp\",\n\"chizu.tottori.jp\",\n\"hino.tottori.jp\",\n\"kawahara.tottori.jp\",\n\"koge.tottori.jp\",\n\"kotoura.tottori.jp\",\n\"misasa.tottori.jp\",\n\"nanbu.tottori.jp\",\n\"nichinan.tottori.jp\",\n\"sakaiminato.tottori.jp\",\n\"tottori.tottori.jp\",\n\"wakasa.tottori.jp\",\n\"yazu.tottori.jp\",\n\"yonago.tottori.jp\",\n\"asahi.toyama.jp\",\n\"fuchu.toyama.jp\",\n\"fukumitsu.toyama.jp\",\n\"funahashi.toyama.jp\",\n\"himi.toyama.jp\",\n\"imizu.toyama.jp\",\n\"inami.toyama.jp\",\n\"johana.toyama.jp\",\n\"kamiichi.toyama.jp\",\n\"kurobe.toyama.jp\",\n\"nakaniikawa.toyama.jp\",\n\"namerikawa.toyama.jp\",\n\"nanto.toyama.jp\",\n\"nyuzen.toyama.jp\",\n\"oyabe.toyama.jp\",\n\"taira.toyama.jp\",\n\"takaoka.toyama.jp\",\n\"tateyama.toyama.jp\",\n\"toga.toyama.jp\",\n\"tonami.toyama.jp\",\n\"toyama.toyama.jp\",\n\"unazuki.toyama.jp\",\n\"uozu.toyama.jp\",\n\"yamada.toyama.jp\",\n\"arida.wakayama.jp\",\n\"aridagawa.wakayama.jp\",\n\"gobo.wakayama.jp\",\n\"hashimoto.wakayama.jp\",\n\"hidaka.wakayama.jp\",\n\"hirogawa.wakayama.jp\",\n\"inami.wakayama.jp\",\n\"iwade.wakayama.jp\",\n\"kainan.wakayama.jp\",\n\"kamitonda.wakayama.jp\",\n\"katsuragi.wakayama.jp\",\n\"kimino.wakayama.jp\",\n\"kinokawa.wakayama.jp\",\n\"kitayama.wakayama.jp\",\n\"koya.wakayama.jp\",\n\"koza.wakayama.jp\",\n\"kozagawa.wakayama.jp\",\n\"kudoyama.wakayama.jp\",\n\"kushimoto.wakayama.jp\",\n\"mihama.wakayama.jp\",\n\"misato.wakayama.jp\",\n\"nachikatsuura.wakayama.jp\",\n\"shingu.wakayama.jp\",\n\"shirahama.wakayama.jp\",\n\"taiji.wakayama.jp\",\n\"tanabe.wakayama.jp\",\n\"wakayama.wakayama.jp\",\n\"yuasa.wakayama.jp\",\n\"yura.wakayama.jp\",\n\"asahi.yamagata.jp\",\n\"funagata.yamagata.jp\",\n\"higashine.yamagata.jp\",\n\"iide.yamagata.jp\",\n\"kahoku.yamagata.jp\",\n\"kaminoyama.yamagata.jp\",\n\"kaneyama.yamagata.jp\",\n\"kawanishi.yamagata.jp\",\n\"mamurogawa.yamagata.jp\",\n\"mikawa.yamagata.jp\",\n\"murayama.yamagata.jp\",\n\"nagai.yamagata.jp\",\n\"nakayama.yamagata.jp\",\n\"nanyo.yamagata.jp\",\n\"nishikawa.yamagata.jp\",\n\"obanazawa.yamagata.jp\",\n\"oe.yamagata.jp\",\n\"oguni.yamagata.jp\",\n\"ohkura.yamagata.jp\",\n\"oishida.yamagata.jp\",\n\"sagae.yamagata.jp\",\n\"sakata.yamagata.jp\",\n\"sakegawa.yamagata.jp\",\n\"shinjo.yamagata.jp\",\n\"shirataka.yamagata.jp\",\n\"shonai.yamagata.jp\",\n\"takahata.yamagata.jp\",\n\"tendo.yamagata.jp\",\n\"tozawa.yamagata.jp\",\n\"tsuruoka.yamagata.jp\",\n\"yamagata.yamagata.jp\",\n\"yamanobe.yamagata.jp\",\n\"yonezawa.yamagata.jp\",\n\"yuza.yamagata.jp\",\n\"abu.yamaguchi.jp\",\n\"hagi.yamaguchi.jp\",\n\"hikari.yamaguchi.jp\",\n\"hofu.yamaguchi.jp\",\n\"iwakuni.yamaguchi.jp\",\n\"kudamatsu.yamaguchi.jp\",\n\"mitou.yamaguchi.jp\",\n\"nagato.yamaguchi.jp\",\n\"oshima.yamaguchi.jp\",\n\"shimonoseki.yamaguchi.jp\",\n\"shunan.yamaguchi.jp\",\n\"tabuse.yamaguchi.jp\",\n\"tokuyama.yamaguchi.jp\",\n\"toyota.yamaguchi.jp\",\n\"ube.yamaguchi.jp\",\n\"yuu.yamaguchi.jp\",\n\"chuo.yamanashi.jp\",\n\"doshi.yamanashi.jp\",\n\"fuefuki.yamanashi.jp\",\n\"fujikawa.yamanashi.jp\",\n\"fujikawaguchiko.yamanashi.jp\",\n\"fujiyoshida.yamanashi.jp\",\n\"hayakawa.yamanashi.jp\",\n\"hokuto.yamanashi.jp\",\n\"ichikawamisato.yamanashi.jp\",\n\"kai.yamanashi.jp\",\n\"kofu.yamanashi.jp\",\n\"koshu.yamanashi.jp\",\n\"kosuge.yamanashi.jp\",\n\"minami-alps.yamanashi.jp\",\n\"minobu.yamanashi.jp\",\n\"nakamichi.yamanashi.jp\",\n\"nanbu.yamanashi.jp\",\n\"narusawa.yamanashi.jp\",\n\"nirasaki.yamanashi.jp\",\n\"nishikatsura.yamanashi.jp\",\n\"oshino.yamanashi.jp\",\n\"otsuki.yamanashi.jp\",\n\"showa.yamanashi.jp\",\n\"tabayama.yamanashi.jp\",\n\"tsuru.yamanashi.jp\",\n\"uenohara.yamanashi.jp\",\n\"yamanakako.yamanashi.jp\",\n\"yamanashi.yamanashi.jp\",\n\"ke\",\n\"ac.ke\",\n\"co.ke\",\n\"go.ke\",\n\"info.ke\",\n\"me.ke\",\n\"mobi.ke\",\n\"ne.ke\",\n\"or.ke\",\n\"sc.ke\",\n\"kg\",\n\"org.kg\",\n\"net.kg\",\n\"com.kg\",\n\"edu.kg\",\n\"gov.kg\",\n\"mil.kg\",\n\"*.kh\",\n\"ki\",\n\"edu.ki\",\n\"biz.ki\",\n\"net.ki\",\n\"org.ki\",\n\"gov.ki\",\n\"info.ki\",\n\"com.ki\",\n\"km\",\n\"org.km\",\n\"nom.km\",\n\"gov.km\",\n\"prd.km\",\n\"tm.km\",\n\"edu.km\",\n\"mil.km\",\n\"ass.km\",\n\"com.km\",\n\"coop.km\",\n\"asso.km\",\n\"presse.km\",\n\"medecin.km\",\n\"notaires.km\",\n\"pharmaciens.km\",\n\"veterinaire.km\",\n\"gouv.km\",\n\"kn\",\n\"net.kn\",\n\"org.kn\",\n\"edu.kn\",\n\"gov.kn\",\n\"kp\",\n\"com.kp\",\n\"edu.kp\",\n\"gov.kp\",\n\"org.kp\",\n\"rep.kp\",\n\"tra.kp\",\n\"kr\",\n\"ac.kr\",\n\"co.kr\",\n\"es.kr\",\n\"go.kr\",\n\"hs.kr\",\n\"kg.kr\",\n\"mil.kr\",\n\"ms.kr\",\n\"ne.kr\",\n\"or.kr\",\n\"pe.kr\",\n\"re.kr\",\n\"sc.kr\",\n\"busan.kr\",\n\"chungbuk.kr\",\n\"chungnam.kr\",\n\"daegu.kr\",\n\"daejeon.kr\",\n\"gangwon.kr\",\n\"gwangju.kr\",\n\"gyeongbuk.kr\",\n\"gyeonggi.kr\",\n\"gyeongnam.kr\",\n\"incheon.kr\",\n\"jeju.kr\",\n\"jeonbuk.kr\",\n\"jeonnam.kr\",\n\"seoul.kr\",\n\"ulsan.kr\",\n\"kw\",\n\"com.kw\",\n\"edu.kw\",\n\"emb.kw\",\n\"gov.kw\",\n\"ind.kw\",\n\"net.kw\",\n\"org.kw\",\n\"ky\",\n\"edu.ky\",\n\"gov.ky\",\n\"com.ky\",\n\"org.ky\",\n\"net.ky\",\n\"kz\",\n\"org.kz\",\n\"edu.kz\",\n\"net.kz\",\n\"gov.kz\",\n\"mil.kz\",\n\"com.kz\",\n\"la\",\n\"int.la\",\n\"net.la\",\n\"info.la\",\n\"edu.la\",\n\"gov.la\",\n\"per.la\",\n\"com.la\",\n\"org.la\",\n\"lb\",\n\"com.lb\",\n\"edu.lb\",\n\"gov.lb\",\n\"net.lb\",\n\"org.lb\",\n\"lc\",\n\"com.lc\",\n\"net.lc\",\n\"co.lc\",\n\"org.lc\",\n\"edu.lc\",\n\"gov.lc\",\n\"li\",\n\"lk\",\n\"gov.lk\",\n\"sch.lk\",\n\"net.lk\",\n\"int.lk\",\n\"com.lk\",\n\"org.lk\",\n\"edu.lk\",\n\"ngo.lk\",\n\"soc.lk\",\n\"web.lk\",\n\"ltd.lk\",\n\"assn.lk\",\n\"grp.lk\",\n\"hotel.lk\",\n\"ac.lk\",\n\"lr\",\n\"com.lr\",\n\"edu.lr\",\n\"gov.lr\",\n\"org.lr\",\n\"net.lr\",\n\"ls\",\n\"ac.ls\",\n\"biz.ls\",\n\"co.ls\",\n\"edu.ls\",\n\"gov.ls\",\n\"info.ls\",\n\"net.ls\",\n\"org.ls\",\n\"sc.ls\",\n\"lt\",\n\"gov.lt\",\n\"lu\",\n\"lv\",\n\"com.lv\",\n\"edu.lv\",\n\"gov.lv\",\n\"org.lv\",\n\"mil.lv\",\n\"id.lv\",\n\"net.lv\",\n\"asn.lv\",\n\"conf.lv\",\n\"ly\",\n\"com.ly\",\n\"net.ly\",\n\"gov.ly\",\n\"plc.ly\",\n\"edu.ly\",\n\"sch.ly\",\n\"med.ly\",\n\"org.ly\",\n\"id.ly\",\n\"ma\",\n\"co.ma\",\n\"net.ma\",\n\"gov.ma\",\n\"org.ma\",\n\"ac.ma\",\n\"press.ma\",\n\"mc\",\n\"tm.mc\",\n\"asso.mc\",\n\"md\",\n\"me\",\n\"co.me\",\n\"net.me\",\n\"org.me\",\n\"edu.me\",\n\"ac.me\",\n\"gov.me\",\n\"its.me\",\n\"priv.me\",\n\"mg\",\n\"org.mg\",\n\"nom.mg\",\n\"gov.mg\",\n\"prd.mg\",\n\"tm.mg\",\n\"edu.mg\",\n\"mil.mg\",\n\"com.mg\",\n\"co.mg\",\n\"mh\",\n\"mil\",\n\"mk\",\n\"com.mk\",\n\"org.mk\",\n\"net.mk\",\n\"edu.mk\",\n\"gov.mk\",\n\"inf.mk\",\n\"name.mk\",\n\"ml\",\n\"com.ml\",\n\"edu.ml\",\n\"gouv.ml\",\n\"gov.ml\",\n\"net.ml\",\n\"org.ml\",\n\"presse.ml\",\n\"*.mm\",\n\"mn\",\n\"gov.mn\",\n\"edu.mn\",\n\"org.mn\",\n\"mo\",\n\"com.mo\",\n\"net.mo\",\n\"org.mo\",\n\"edu.mo\",\n\"gov.mo\",\n\"mobi\",\n\"mp\",\n\"mq\",\n\"mr\",\n\"gov.mr\",\n\"ms\",\n\"com.ms\",\n\"edu.ms\",\n\"gov.ms\",\n\"net.ms\",\n\"org.ms\",\n\"mt\",\n\"com.mt\",\n\"edu.mt\",\n\"net.mt\",\n\"org.mt\",\n\"mu\",\n\"com.mu\",\n\"net.mu\",\n\"org.mu\",\n\"gov.mu\",\n\"ac.mu\",\n\"co.mu\",\n\"or.mu\",\n\"museum\",\n\"academy.museum\",\n\"agriculture.museum\",\n\"air.museum\",\n\"airguard.museum\",\n\"alabama.museum\",\n\"alaska.museum\",\n\"amber.museum\",\n\"ambulance.museum\",\n\"american.museum\",\n\"americana.museum\",\n\"americanantiques.museum\",\n\"americanart.museum\",\n\"amsterdam.museum\",\n\"and.museum\",\n\"annefrank.museum\",\n\"anthro.museum\",\n\"anthropology.museum\",\n\"antiques.museum\",\n\"aquarium.museum\",\n\"arboretum.museum\",\n\"archaeological.museum\",\n\"archaeology.museum\",\n\"architecture.museum\",\n\"art.museum\",\n\"artanddesign.museum\",\n\"artcenter.museum\",\n\"artdeco.museum\",\n\"arteducation.museum\",\n\"artgallery.museum\",\n\"arts.museum\",\n\"artsandcrafts.museum\",\n\"asmatart.museum\",\n\"assassination.museum\",\n\"assisi.museum\",\n\"association.museum\",\n\"astronomy.museum\",\n\"atlanta.museum\",\n\"austin.museum\",\n\"australia.museum\",\n\"automotive.museum\",\n\"aviation.museum\",\n\"axis.museum\",\n\"badajoz.museum\",\n\"baghdad.museum\",\n\"bahn.museum\",\n\"bale.museum\",\n\"baltimore.museum\",\n\"barcelona.museum\",\n\"baseball.museum\",\n\"basel.museum\",\n\"baths.museum\",\n\"bauern.museum\",\n\"beauxarts.museum\",\n\"beeldengeluid.museum\",\n\"bellevue.museum\",\n\"bergbau.museum\",\n\"berkeley.museum\",\n\"berlin.museum\",\n\"bern.museum\",\n\"bible.museum\",\n\"bilbao.museum\",\n\"bill.museum\",\n\"birdart.museum\",\n\"birthplace.museum\",\n\"bonn.museum\",\n\"boston.museum\",\n\"botanical.museum\",\n\"botanicalgarden.museum\",\n\"botanicgarden.museum\",\n\"botany.museum\",\n\"brandywinevalley.museum\",\n\"brasil.museum\",\n\"bristol.museum\",\n\"british.museum\",\n\"britishcolumbia.museum\",\n\"broadcast.museum\",\n\"brunel.museum\",\n\"brussel.museum\",\n\"brussels.museum\",\n\"bruxelles.museum\",\n\"building.museum\",\n\"burghof.museum\",\n\"bus.museum\",\n\"bushey.museum\",\n\"cadaques.museum\",\n\"california.museum\",\n\"cambridge.museum\",\n\"can.museum\",\n\"canada.museum\",\n\"capebreton.museum\",\n\"carrier.museum\",\n\"cartoonart.museum\",\n\"casadelamoneda.museum\",\n\"castle.museum\",\n\"castres.museum\",\n\"celtic.museum\",\n\"center.museum\",\n\"chattanooga.museum\",\n\"cheltenham.museum\",\n\"chesapeakebay.museum\",\n\"chicago.museum\",\n\"children.museum\",\n\"childrens.museum\",\n\"childrensgarden.museum\",\n\"chiropractic.museum\",\n\"chocolate.museum\",\n\"christiansburg.museum\",\n\"cincinnati.museum\",\n\"cinema.museum\",\n\"circus.museum\",\n\"civilisation.museum\",\n\"civilization.museum\",\n\"civilwar.museum\",\n\"clinton.museum\",\n\"clock.museum\",\n\"coal.museum\",\n\"coastaldefence.museum\",\n\"cody.museum\",\n\"coldwar.museum\",\n\"collection.museum\",\n\"colonialwilliamsburg.museum\",\n\"coloradoplateau.museum\",\n\"columbia.museum\",\n\"columbus.museum\",\n\"communication.museum\",\n\"communications.museum\",\n\"community.museum\",\n\"computer.museum\",\n\"computerhistory.museum\",\n\"comunicações.museum\",\n\"contemporary.museum\",\n\"contemporaryart.museum\",\n\"convent.museum\",\n\"copenhagen.museum\",\n\"corporation.museum\",\n\"correios-e-telecomunicações.museum\",\n\"corvette.museum\",\n\"costume.museum\",\n\"countryestate.museum\",\n\"county.museum\",\n\"crafts.museum\",\n\"cranbrook.museum\",\n\"creation.museum\",\n\"cultural.museum\",\n\"culturalcenter.museum\",\n\"culture.museum\",\n\"cyber.museum\",\n\"cymru.museum\",\n\"dali.museum\",\n\"dallas.museum\",\n\"database.museum\",\n\"ddr.museum\",\n\"decorativearts.museum\",\n\"delaware.museum\",\n\"delmenhorst.museum\",\n\"denmark.museum\",\n\"depot.museum\",\n\"design.museum\",\n\"detroit.museum\",\n\"dinosaur.museum\",\n\"discovery.museum\",\n\"dolls.museum\",\n\"donostia.museum\",\n\"durham.museum\",\n\"eastafrica.museum\",\n\"eastcoast.museum\",\n\"education.museum\",\n\"educational.museum\",\n\"egyptian.museum\",\n\"eisenbahn.museum\",\n\"elburg.museum\",\n\"elvendrell.museum\",\n\"embroidery.museum\",\n\"encyclopedic.museum\",\n\"england.museum\",\n\"entomology.museum\",\n\"environment.museum\",\n\"environmentalconservation.museum\",\n\"epilepsy.museum\",\n\"essex.museum\",\n\"estate.museum\",\n\"ethnology.museum\",\n\"exeter.museum\",\n\"exhibition.museum\",\n\"family.museum\",\n\"farm.museum\",\n\"farmequipment.museum\",\n\"farmers.museum\",\n\"farmstead.museum\",\n\"field.museum\",\n\"figueres.museum\",\n\"filatelia.museum\",\n\"film.museum\",\n\"fineart.museum\",\n\"finearts.museum\",\n\"finland.museum\",\n\"flanders.museum\",\n\"florida.museum\",\n\"force.museum\",\n\"fortmissoula.museum\",\n\"fortworth.museum\",\n\"foundation.museum\",\n\"francaise.museum\",\n\"frankfurt.museum\",\n\"franziskaner.museum\",\n\"freemasonry.museum\",\n\"freiburg.museum\",\n\"fribourg.museum\",\n\"frog.museum\",\n\"fundacio.museum\",\n\"furniture.museum\",\n\"gallery.museum\",\n\"garden.museum\",\n\"gateway.museum\",\n\"geelvinck.museum\",\n\"gemological.museum\",\n\"geology.museum\",\n\"georgia.museum\",\n\"giessen.museum\",\n\"glas.museum\",\n\"glass.museum\",\n\"gorge.museum\",\n\"grandrapids.museum\",\n\"graz.museum\",\n\"guernsey.museum\",\n\"halloffame.museum\",\n\"hamburg.museum\",\n\"handson.museum\",\n\"harvestcelebration.museum\",\n\"hawaii.museum\",\n\"health.museum\",\n\"heimatunduhren.museum\",\n\"hellas.museum\",\n\"helsinki.museum\",\n\"hembygdsforbund.museum\",\n\"heritage.museum\",\n\"histoire.museum\",\n\"historical.museum\",\n\"historicalsociety.museum\",\n\"historichouses.museum\",\n\"historisch.museum\",\n\"historisches.museum\",\n\"history.museum\",\n\"historyofscience.museum\",\n\"horology.museum\",\n\"house.museum\",\n\"humanities.museum\",\n\"illustration.museum\",\n\"imageandsound.museum\",\n\"indian.museum\",\n\"indiana.museum\",\n\"indianapolis.museum\",\n\"indianmarket.museum\",\n\"intelligence.museum\",\n\"interactive.museum\",\n\"iraq.museum\",\n\"iron.museum\",\n\"isleofman.museum\",\n\"jamison.museum\",\n\"jefferson.museum\",\n\"jerusalem.museum\",\n\"jewelry.museum\",\n\"jewish.museum\",\n\"jewishart.museum\",\n\"jfk.museum\",\n\"journalism.museum\",\n\"judaica.museum\",\n\"judygarland.museum\",\n\"juedisches.museum\",\n\"juif.museum\",\n\"karate.museum\",\n\"karikatur.museum\",\n\"kids.museum\",\n\"koebenhavn.museum\",\n\"koeln.museum\",\n\"kunst.museum\",\n\"kunstsammlung.museum\",\n\"kunstunddesign.museum\",\n\"labor.museum\",\n\"labour.museum\",\n\"lajolla.museum\",\n\"lancashire.museum\",\n\"landes.museum\",\n\"lans.museum\",\n\"läns.museum\",\n\"larsson.museum\",\n\"lewismiller.museum\",\n\"lincoln.museum\",\n\"linz.museum\",\n\"living.museum\",\n\"livinghistory.museum\",\n\"localhistory.museum\",\n\"london.museum\",\n\"losangeles.museum\",\n\"louvre.museum\",\n\"loyalist.museum\",\n\"lucerne.museum\",\n\"luxembourg.museum\",\n\"luzern.museum\",\n\"mad.museum\",\n\"madrid.museum\",\n\"mallorca.museum\",\n\"manchester.museum\",\n\"mansion.museum\",\n\"mansions.museum\",\n\"manx.museum\",\n\"marburg.museum\",\n\"maritime.museum\",\n\"maritimo.museum\",\n\"maryland.museum\",\n\"marylhurst.museum\",\n\"media.museum\",\n\"medical.museum\",\n\"medizinhistorisches.museum\",\n\"meeres.museum\",\n\"memorial.museum\",\n\"mesaverde.museum\",\n\"michigan.museum\",\n\"midatlantic.museum\",\n\"military.museum\",\n\"mill.museum\",\n\"miners.museum\",\n\"mining.museum\",\n\"minnesota.museum\",\n\"missile.museum\",\n\"missoula.museum\",\n\"modern.museum\",\n\"moma.museum\",\n\"money.museum\",\n\"monmouth.museum\",\n\"monticello.museum\",\n\"montreal.museum\",\n\"moscow.museum\",\n\"motorcycle.museum\",\n\"muenchen.museum\",\n\"muenster.museum\",\n\"mulhouse.museum\",\n\"muncie.museum\",\n\"museet.museum\",\n\"museumcenter.museum\",\n\"museumvereniging.museum\",\n\"music.museum\",\n\"national.museum\",\n\"nationalfirearms.museum\",\n\"nationalheritage.museum\",\n\"nativeamerican.museum\",\n\"naturalhistory.museum\",\n\"naturalhistorymuseum.museum\",\n\"naturalsciences.museum\",\n\"nature.museum\",\n\"naturhistorisches.museum\",\n\"natuurwetenschappen.museum\",\n\"naumburg.museum\",\n\"naval.museum\",\n\"nebraska.museum\",\n\"neues.museum\",\n\"newhampshire.museum\",\n\"newjersey.museum\",\n\"newmexico.museum\",\n\"newport.museum\",\n\"newspaper.museum\",\n\"newyork.museum\",\n\"niepce.museum\",\n\"norfolk.museum\",\n\"north.museum\",\n\"nrw.museum\",\n\"nyc.museum\",\n\"nyny.museum\",\n\"oceanographic.museum\",\n\"oceanographique.museum\",\n\"omaha.museum\",\n\"online.museum\",\n\"ontario.museum\",\n\"openair.museum\",\n\"oregon.museum\",\n\"oregontrail.museum\",\n\"otago.museum\",\n\"oxford.museum\",\n\"pacific.museum\",\n\"paderborn.museum\",\n\"palace.museum\",\n\"paleo.museum\",\n\"palmsprings.museum\",\n\"panama.museum\",\n\"paris.museum\",\n\"pasadena.museum\",\n\"pharmacy.museum\",\n\"philadelphia.museum\",\n\"philadelphiaarea.museum\",\n\"philately.museum\",\n\"phoenix.museum\",\n\"photography.museum\",\n\"pilots.museum\",\n\"pittsburgh.museum\",\n\"planetarium.museum\",\n\"plantation.museum\",\n\"plants.museum\",\n\"plaza.museum\",\n\"portal.museum\",\n\"portland.museum\",\n\"portlligat.museum\",\n\"posts-and-telecommunications.museum\",\n\"preservation.museum\",\n\"presidio.museum\",\n\"press.museum\",\n\"project.museum\",\n\"public.museum\",\n\"pubol.museum\",\n\"quebec.museum\",\n\"railroad.museum\",\n\"railway.museum\",\n\"research.museum\",\n\"resistance.museum\",\n\"riodejaneiro.museum\",\n\"rochester.museum\",\n\"rockart.museum\",\n\"roma.museum\",\n\"russia.museum\",\n\"saintlouis.museum\",\n\"salem.museum\",\n\"salvadordali.museum\",\n\"salzburg.museum\",\n\"sandiego.museum\",\n\"sanfrancisco.museum\",\n\"santabarbara.museum\",\n\"santacruz.museum\",\n\"santafe.museum\",\n\"saskatchewan.museum\",\n\"satx.museum\",\n\"savannahga.museum\",\n\"schlesisches.museum\",\n\"schoenbrunn.museum\",\n\"schokoladen.museum\",\n\"school.museum\",\n\"schweiz.museum\",\n\"science.museum\",\n\"scienceandhistory.museum\",\n\"scienceandindustry.museum\",\n\"sciencecenter.museum\",\n\"sciencecenters.museum\",\n\"science-fiction.museum\",\n\"sciencehistory.museum\",\n\"sciences.museum\",\n\"sciencesnaturelles.museum\",\n\"scotland.museum\",\n\"seaport.museum\",\n\"settlement.museum\",\n\"settlers.museum\",\n\"shell.museum\",\n\"sherbrooke.museum\",\n\"sibenik.museum\",\n\"silk.museum\",\n\"ski.museum\",\n\"skole.museum\",\n\"society.museum\",\n\"sologne.museum\",\n\"soundandvision.museum\",\n\"southcarolina.museum\",\n\"southwest.museum\",\n\"space.museum\",\n\"spy.museum\",\n\"square.museum\",\n\"stadt.museum\",\n\"stalbans.museum\",\n\"starnberg.museum\",\n\"state.museum\",\n\"stateofdelaware.museum\",\n\"station.museum\",\n\"steam.museum\",\n\"steiermark.museum\",\n\"stjohn.museum\",\n\"stockholm.museum\",\n\"stpetersburg.museum\",\n\"stuttgart.museum\",\n\"suisse.museum\",\n\"surgeonshall.museum\",\n\"surrey.museum\",\n\"svizzera.museum\",\n\"sweden.museum\",\n\"sydney.museum\",\n\"tank.museum\",\n\"tcm.museum\",\n\"technology.museum\",\n\"telekommunikation.museum\",\n\"television.museum\",\n\"texas.museum\",\n\"textile.museum\",\n\"theater.museum\",\n\"time.museum\",\n\"timekeeping.museum\",\n\"topology.museum\",\n\"torino.museum\",\n\"touch.museum\",\n\"town.museum\",\n\"transport.museum\",\n\"tree.museum\",\n\"trolley.museum\",\n\"trust.museum\",\n\"trustee.museum\",\n\"uhren.museum\",\n\"ulm.museum\",\n\"undersea.museum\",\n\"university.museum\",\n\"usa.museum\",\n\"usantiques.museum\",\n\"usarts.museum\",\n\"uscountryestate.museum\",\n\"usculture.museum\",\n\"usdecorativearts.museum\",\n\"usgarden.museum\",\n\"ushistory.museum\",\n\"ushuaia.museum\",\n\"uslivinghistory.museum\",\n\"utah.museum\",\n\"uvic.museum\",\n\"valley.museum\",\n\"vantaa.museum\",\n\"versailles.museum\",\n\"viking.museum\",\n\"village.museum\",\n\"virginia.museum\",\n\"virtual.museum\",\n\"virtuel.museum\",\n\"vlaanderen.museum\",\n\"volkenkunde.museum\",\n\"wales.museum\",\n\"wallonie.museum\",\n\"war.museum\",\n\"washingtondc.museum\",\n\"watchandclock.museum\",\n\"watch-and-clock.museum\",\n\"western.museum\",\n\"westfalen.museum\",\n\"whaling.museum\",\n\"wildlife.museum\",\n\"williamsburg.museum\",\n\"windmill.museum\",\n\"workshop.museum\",\n\"york.museum\",\n\"yorkshire.museum\",\n\"yosemite.museum\",\n\"youth.museum\",\n\"zoological.museum\",\n\"zoology.museum\",\n\"ירושלים.museum\",\n\"иком.museum\",\n\"mv\",\n\"aero.mv\",\n\"biz.mv\",\n\"com.mv\",\n\"coop.mv\",\n\"edu.mv\",\n\"gov.mv\",\n\"info.mv\",\n\"int.mv\",\n\"mil.mv\",\n\"museum.mv\",\n\"name.mv\",\n\"net.mv\",\n\"org.mv\",\n\"pro.mv\",\n\"mw\",\n\"ac.mw\",\n\"biz.mw\",\n\"co.mw\",\n\"com.mw\",\n\"coop.mw\",\n\"edu.mw\",\n\"gov.mw\",\n\"int.mw\",\n\"museum.mw\",\n\"net.mw\",\n\"org.mw\",\n\"mx\",\n\"com.mx\",\n\"org.mx\",\n\"gob.mx\",\n\"edu.mx\",\n\"net.mx\",\n\"my\",\n\"com.my\",\n\"net.my\",\n\"org.my\",\n\"gov.my\",\n\"edu.my\",\n\"mil.my\",\n\"name.my\",\n\"mz\",\n\"ac.mz\",\n\"adv.mz\",\n\"co.mz\",\n\"edu.mz\",\n\"gov.mz\",\n\"mil.mz\",\n\"net.mz\",\n\"org.mz\",\n\"na\",\n\"info.na\",\n\"pro.na\",\n\"name.na\",\n\"school.na\",\n\"or.na\",\n\"dr.na\",\n\"us.na\",\n\"mx.na\",\n\"ca.na\",\n\"in.na\",\n\"cc.na\",\n\"tv.na\",\n\"ws.na\",\n\"mobi.na\",\n\"co.na\",\n\"com.na\",\n\"org.na\",\n\"name\",\n\"nc\",\n\"asso.nc\",\n\"nom.nc\",\n\"ne\",\n\"net\",\n\"nf\",\n\"com.nf\",\n\"net.nf\",\n\"per.nf\",\n\"rec.nf\",\n\"web.nf\",\n\"arts.nf\",\n\"firm.nf\",\n\"info.nf\",\n\"other.nf\",\n\"store.nf\",\n\"ng\",\n\"com.ng\",\n\"edu.ng\",\n\"gov.ng\",\n\"i.ng\",\n\"mil.ng\",\n\"mobi.ng\",\n\"name.ng\",\n\"net.ng\",\n\"org.ng\",\n\"sch.ng\",\n\"ni\",\n\"ac.ni\",\n\"biz.ni\",\n\"co.ni\",\n\"com.ni\",\n\"edu.ni\",\n\"gob.ni\",\n\"in.ni\",\n\"info.ni\",\n\"int.ni\",\n\"mil.ni\",\n\"net.ni\",\n\"nom.ni\",\n\"org.ni\",\n\"web.ni\",\n\"nl\",\n\"no\",\n\"fhs.no\",\n\"vgs.no\",\n\"fylkesbibl.no\",\n\"folkebibl.no\",\n\"museum.no\",\n\"idrett.no\",\n\"priv.no\",\n\"mil.no\",\n\"stat.no\",\n\"dep.no\",\n\"kommune.no\",\n\"herad.no\",\n\"aa.no\",\n\"ah.no\",\n\"bu.no\",\n\"fm.no\",\n\"hl.no\",\n\"hm.no\",\n\"jan-mayen.no\",\n\"mr.no\",\n\"nl.no\",\n\"nt.no\",\n\"of.no\",\n\"ol.no\",\n\"oslo.no\",\n\"rl.no\",\n\"sf.no\",\n\"st.no\",\n\"svalbard.no\",\n\"tm.no\",\n\"tr.no\",\n\"va.no\",\n\"vf.no\",\n\"gs.aa.no\",\n\"gs.ah.no\",\n\"gs.bu.no\",\n\"gs.fm.no\",\n\"gs.hl.no\",\n\"gs.hm.no\",\n\"gs.jan-mayen.no\",\n\"gs.mr.no\",\n\"gs.nl.no\",\n\"gs.nt.no\",\n\"gs.of.no\",\n\"gs.ol.no\",\n\"gs.oslo.no\",\n\"gs.rl.no\",\n\"gs.sf.no\",\n\"gs.st.no\",\n\"gs.svalbard.no\",\n\"gs.tm.no\",\n\"gs.tr.no\",\n\"gs.va.no\",\n\"gs.vf.no\",\n\"akrehamn.no\",\n\"åkrehamn.no\",\n\"algard.no\",\n\"ålgård.no\",\n\"arna.no\",\n\"brumunddal.no\",\n\"bryne.no\",\n\"bronnoysund.no\",\n\"brønnøysund.no\",\n\"drobak.no\",\n\"drøbak.no\",\n\"egersund.no\",\n\"fetsund.no\",\n\"floro.no\",\n\"florø.no\",\n\"fredrikstad.no\",\n\"hokksund.no\",\n\"honefoss.no\",\n\"hønefoss.no\",\n\"jessheim.no\",\n\"jorpeland.no\",\n\"jørpeland.no\",\n\"kirkenes.no\",\n\"kopervik.no\",\n\"krokstadelva.no\",\n\"langevag.no\",\n\"langevåg.no\",\n\"leirvik.no\",\n\"mjondalen.no\",\n\"mjøndalen.no\",\n\"mo-i-rana.no\",\n\"mosjoen.no\",\n\"mosjøen.no\",\n\"nesoddtangen.no\",\n\"orkanger.no\",\n\"osoyro.no\",\n\"osøyro.no\",\n\"raholt.no\",\n\"råholt.no\",\n\"sandnessjoen.no\",\n\"sandnessjøen.no\",\n\"skedsmokorset.no\",\n\"slattum.no\",\n\"spjelkavik.no\",\n\"stathelle.no\",\n\"stavern.no\",\n\"stjordalshalsen.no\",\n\"stjørdalshalsen.no\",\n\"tananger.no\",\n\"tranby.no\",\n\"vossevangen.no\",\n\"afjord.no\",\n\"åfjord.no\",\n\"agdenes.no\",\n\"al.no\",\n\"ål.no\",\n\"alesund.no\",\n\"ålesund.no\",\n\"alstahaug.no\",\n\"alta.no\",\n\"áltá.no\",\n\"alaheadju.no\",\n\"álaheadju.no\",\n\"alvdal.no\",\n\"amli.no\",\n\"åmli.no\",\n\"amot.no\",\n\"åmot.no\",\n\"andebu.no\",\n\"andoy.no\",\n\"andøy.no\",\n\"andasuolo.no\",\n\"ardal.no\",\n\"årdal.no\",\n\"aremark.no\",\n\"arendal.no\",\n\"ås.no\",\n\"aseral.no\",\n\"åseral.no\",\n\"asker.no\",\n\"askim.no\",\n\"askvoll.no\",\n\"askoy.no\",\n\"askøy.no\",\n\"asnes.no\",\n\"åsnes.no\",\n\"audnedaln.no\",\n\"aukra.no\",\n\"aure.no\",\n\"aurland.no\",\n\"aurskog-holand.no\",\n\"aurskog-høland.no\",\n\"austevoll.no\",\n\"austrheim.no\",\n\"averoy.no\",\n\"averøy.no\",\n\"balestrand.no\",\n\"ballangen.no\",\n\"balat.no\",\n\"bálát.no\",\n\"balsfjord.no\",\n\"bahccavuotna.no\",\n\"báhccavuotna.no\",\n\"bamble.no\",\n\"bardu.no\",\n\"beardu.no\",\n\"beiarn.no\",\n\"bajddar.no\",\n\"bájddar.no\",\n\"baidar.no\",\n\"báidár.no\",\n\"berg.no\",\n\"bergen.no\",\n\"berlevag.no\",\n\"berlevåg.no\",\n\"bearalvahki.no\",\n\"bearalváhki.no\",\n\"bindal.no\",\n\"birkenes.no\",\n\"bjarkoy.no\",\n\"bjarkøy.no\",\n\"bjerkreim.no\",\n\"bjugn.no\",\n\"bodo.no\",\n\"bodø.no\",\n\"badaddja.no\",\n\"bådåddjå.no\",\n\"budejju.no\",\n\"bokn.no\",\n\"bremanger.no\",\n\"bronnoy.no\",\n\"brønnøy.no\",\n\"bygland.no\",\n\"bykle.no\",\n\"barum.no\",\n\"bærum.no\",\n\"bo.telemark.no\",\n\"bø.telemark.no\",\n\"bo.nordland.no\",\n\"bø.nordland.no\",\n\"bievat.no\",\n\"bievát.no\",\n\"bomlo.no\",\n\"bømlo.no\",\n\"batsfjord.no\",\n\"båtsfjord.no\",\n\"bahcavuotna.no\",\n\"báhcavuotna.no\",\n\"dovre.no\",\n\"drammen.no\",\n\"drangedal.no\",\n\"dyroy.no\",\n\"dyrøy.no\",\n\"donna.no\",\n\"dønna.no\",\n\"eid.no\",\n\"eidfjord.no\",\n\"eidsberg.no\",\n\"eidskog.no\",\n\"eidsvoll.no\",\n\"eigersund.no\",\n\"elverum.no\",\n\"enebakk.no\",\n\"engerdal.no\",\n\"etne.no\",\n\"etnedal.no\",\n\"evenes.no\",\n\"evenassi.no\",\n\"evenášši.no\",\n\"evje-og-hornnes.no\",\n\"farsund.no\",\n\"fauske.no\",\n\"fuossko.no\",\n\"fuoisku.no\",\n\"fedje.no\",\n\"fet.no\",\n\"finnoy.no\",\n\"finnøy.no\",\n\"fitjar.no\",\n\"fjaler.no\",\n\"fjell.no\",\n\"flakstad.no\",\n\"flatanger.no\",\n\"flekkefjord.no\",\n\"flesberg.no\",\n\"flora.no\",\n\"fla.no\",\n\"flå.no\",\n\"folldal.no\",\n\"forsand.no\",\n\"fosnes.no\",\n\"frei.no\",\n\"frogn.no\",\n\"froland.no\",\n\"frosta.no\",\n\"frana.no\",\n\"fræna.no\",\n\"froya.no\",\n\"frøya.no\",\n\"fusa.no\",\n\"fyresdal.no\",\n\"forde.no\",\n\"førde.no\",\n\"gamvik.no\",\n\"gangaviika.no\",\n\"gáŋgaviika.no\",\n\"gaular.no\",\n\"gausdal.no\",\n\"gildeskal.no\",\n\"gildeskål.no\",\n\"giske.no\",\n\"gjemnes.no\",\n\"gjerdrum.no\",\n\"gjerstad.no\",\n\"gjesdal.no\",\n\"gjovik.no\",\n\"gjøvik.no\",\n\"gloppen.no\",\n\"gol.no\",\n\"gran.no\",\n\"grane.no\",\n\"granvin.no\",\n\"gratangen.no\",\n\"grimstad.no\",\n\"grong.no\",\n\"kraanghke.no\",\n\"kråanghke.no\",\n\"grue.no\",\n\"gulen.no\",\n\"hadsel.no\",\n\"halden.no\",\n\"halsa.no\",\n\"hamar.no\",\n\"hamaroy.no\",\n\"habmer.no\",\n\"hábmer.no\",\n\"hapmir.no\",\n\"hápmir.no\",\n\"hammerfest.no\",\n\"hammarfeasta.no\",\n\"hámmárfeasta.no\",\n\"haram.no\",\n\"hareid.no\",\n\"harstad.no\",\n\"hasvik.no\",\n\"aknoluokta.no\",\n\"ákŋoluokta.no\",\n\"hattfjelldal.no\",\n\"aarborte.no\",\n\"haugesund.no\",\n\"hemne.no\",\n\"hemnes.no\",\n\"hemsedal.no\",\n\"heroy.more-og-romsdal.no\",\n\"herøy.møre-og-romsdal.no\",\n\"heroy.nordland.no\",\n\"herøy.nordland.no\",\n\"hitra.no\",\n\"hjartdal.no\",\n\"hjelmeland.no\",\n\"hobol.no\",\n\"hobøl.no\",\n\"hof.no\",\n\"hol.no\",\n\"hole.no\",\n\"holmestrand.no\",\n\"holtalen.no\",\n\"holtålen.no\",\n\"hornindal.no\",\n\"horten.no\",\n\"hurdal.no\",\n\"hurum.no\",\n\"hvaler.no\",\n\"hyllestad.no\",\n\"hagebostad.no\",\n\"hægebostad.no\",\n\"hoyanger.no\",\n\"høyanger.no\",\n\"hoylandet.no\",\n\"høylandet.no\",\n\"ha.no\",\n\"hå.no\",\n\"ibestad.no\",\n\"inderoy.no\",\n\"inderøy.no\",\n\"iveland.no\",\n\"jevnaker.no\",\n\"jondal.no\",\n\"jolster.no\",\n\"jølster.no\",\n\"karasjok.no\",\n\"karasjohka.no\",\n\"kárášjohka.no\",\n\"karlsoy.no\",\n\"galsa.no\",\n\"gálsá.no\",\n\"karmoy.no\",\n\"karmøy.no\",\n\"kautokeino.no\",\n\"guovdageaidnu.no\",\n\"klepp.no\",\n\"klabu.no\",\n\"klæbu.no\",\n\"kongsberg.no\",\n\"kongsvinger.no\",\n\"kragero.no\",\n\"kragerø.no\",\n\"kristiansand.no\",\n\"kristiansund.no\",\n\"krodsherad.no\",\n\"krødsherad.no\",\n\"kvalsund.no\",\n\"rahkkeravju.no\",\n\"ráhkkerávju.no\",\n\"kvam.no\",\n\"kvinesdal.no\",\n\"kvinnherad.no\",\n\"kviteseid.no\",\n\"kvitsoy.no\",\n\"kvitsøy.no\",\n\"kvafjord.no\",\n\"kvæfjord.no\",\n\"giehtavuoatna.no\",\n\"kvanangen.no\",\n\"kvænangen.no\",\n\"navuotna.no\",\n\"návuotna.no\",\n\"kafjord.no\",\n\"kåfjord.no\",\n\"gaivuotna.no\",\n\"gáivuotna.no\",\n\"larvik.no\",\n\"lavangen.no\",\n\"lavagis.no\",\n\"loabat.no\",\n\"loabát.no\",\n\"lebesby.no\",\n\"davvesiida.no\",\n\"leikanger.no\",\n\"leirfjord.no\",\n\"leka.no\",\n\"leksvik.no\",\n\"lenvik.no\",\n\"leangaviika.no\",\n\"leaŋgaviika.no\",\n\"lesja.no\",\n\"levanger.no\",\n\"lier.no\",\n\"lierne.no\",\n\"lillehammer.no\",\n\"lillesand.no\",\n\"lindesnes.no\",\n\"lindas.no\",\n\"lindås.no\",\n\"lom.no\",\n\"loppa.no\",\n\"lahppi.no\",\n\"láhppi.no\",\n\"lund.no\",\n\"lunner.no\",\n\"luroy.no\",\n\"lurøy.no\",\n\"luster.no\",\n\"lyngdal.no\",\n\"lyngen.no\",\n\"ivgu.no\",\n\"lardal.no\",\n\"lerdal.no\",\n\"lærdal.no\",\n\"lodingen.no\",\n\"lødingen.no\",\n\"lorenskog.no\",\n\"lørenskog.no\",\n\"loten.no\",\n\"løten.no\",\n\"malvik.no\",\n\"masoy.no\",\n\"måsøy.no\",\n\"muosat.no\",\n\"muosát.no\",\n\"mandal.no\",\n\"marker.no\",\n\"marnardal.no\",\n\"masfjorden.no\",\n\"meland.no\",\n\"meldal.no\",\n\"melhus.no\",\n\"meloy.no\",\n\"meløy.no\",\n\"meraker.no\",\n\"meråker.no\",\n\"moareke.no\",\n\"moåreke.no\",\n\"midsund.no\",\n\"midtre-gauldal.no\",\n\"modalen.no\",\n\"modum.no\",\n\"molde.no\",\n\"moskenes.no\",\n\"moss.no\",\n\"mosvik.no\",\n\"malselv.no\",\n\"målselv.no\",\n\"malatvuopmi.no\",\n\"málatvuopmi.no\",\n\"namdalseid.no\",\n\"aejrie.no\",\n\"namsos.no\",\n\"namsskogan.no\",\n\"naamesjevuemie.no\",\n\"nååmesjevuemie.no\",\n\"laakesvuemie.no\",\n\"nannestad.no\",\n\"narvik.no\",\n\"narviika.no\",\n\"naustdal.no\",\n\"nedre-eiker.no\",\n\"nes.akershus.no\",\n\"nes.buskerud.no\",\n\"nesna.no\",\n\"nesodden.no\",\n\"nesseby.no\",\n\"unjarga.no\",\n\"unjárga.no\",\n\"nesset.no\",\n\"nissedal.no\",\n\"nittedal.no\",\n\"nord-aurdal.no\",\n\"nord-fron.no\",\n\"nord-odal.no\",\n\"norddal.no\",\n\"nordkapp.no\",\n\"davvenjarga.no\",\n\"davvenjárga.no\",\n\"nordre-land.no\",\n\"nordreisa.no\",\n\"raisa.no\",\n\"ráisa.no\",\n\"nore-og-uvdal.no\",\n\"notodden.no\",\n\"naroy.no\",\n\"nærøy.no\",\n\"notteroy.no\",\n\"nøtterøy.no\",\n\"odda.no\",\n\"oksnes.no\",\n\"øksnes.no\",\n\"oppdal.no\",\n\"oppegard.no\",\n\"oppegård.no\",\n\"orkdal.no\",\n\"orland.no\",\n\"ørland.no\",\n\"orskog.no\",\n\"ørskog.no\",\n\"orsta.no\",\n\"ørsta.no\",\n\"os.hedmark.no\",\n\"os.hordaland.no\",\n\"osen.no\",\n\"osteroy.no\",\n\"osterøy.no\",\n\"ostre-toten.no\",\n\"østre-toten.no\",\n\"overhalla.no\",\n\"ovre-eiker.no\",\n\"øvre-eiker.no\",\n\"oyer.no\",\n\"øyer.no\",\n\"oygarden.no\",\n\"øygarden.no\",\n\"oystre-slidre.no\",\n\"øystre-slidre.no\",\n\"porsanger.no\",\n\"porsangu.no\",\n\"porsáŋgu.no\",\n\"porsgrunn.no\",\n\"radoy.no\",\n\"radøy.no\",\n\"rakkestad.no\",\n\"rana.no\",\n\"ruovat.no\",\n\"randaberg.no\",\n\"rauma.no\",\n\"rendalen.no\",\n\"rennebu.no\",\n\"rennesoy.no\",\n\"rennesøy.no\",\n\"rindal.no\",\n\"ringebu.no\",\n\"ringerike.no\",\n\"ringsaker.no\",\n\"rissa.no\",\n\"risor.no\",\n\"risør.no\",\n\"roan.no\",\n\"rollag.no\",\n\"rygge.no\",\n\"ralingen.no\",\n\"rælingen.no\",\n\"rodoy.no\",\n\"rødøy.no\",\n\"romskog.no\",\n\"rømskog.no\",\n\"roros.no\",\n\"røros.no\",\n\"rost.no\",\n\"røst.no\",\n\"royken.no\",\n\"røyken.no\",\n\"royrvik.no\",\n\"røyrvik.no\",\n\"rade.no\",\n\"råde.no\",\n\"salangen.no\",\n\"siellak.no\",\n\"saltdal.no\",\n\"salat.no\",\n\"sálát.no\",\n\"sálat.no\",\n\"samnanger.no\",\n\"sande.more-og-romsdal.no\",\n\"sande.møre-og-romsdal.no\",\n\"sande.vestfold.no\",\n\"sandefjord.no\",\n\"sandnes.no\",\n\"sandoy.no\",\n\"sandøy.no\",\n\"sarpsborg.no\",\n\"sauda.no\",\n\"sauherad.no\",\n\"sel.no\",\n\"selbu.no\",\n\"selje.no\",\n\"seljord.no\",\n\"sigdal.no\",\n\"siljan.no\",\n\"sirdal.no\",\n\"skaun.no\",\n\"skedsmo.no\",\n\"ski.no\",\n\"skien.no\",\n\"skiptvet.no\",\n\"skjervoy.no\",\n\"skjervøy.no\",\n\"skierva.no\",\n\"skiervá.no\",\n\"skjak.no\",\n\"skjåk.no\",\n\"skodje.no\",\n\"skanland.no\",\n\"skånland.no\",\n\"skanit.no\",\n\"skánit.no\",\n\"smola.no\",\n\"smøla.no\",\n\"snillfjord.no\",\n\"snasa.no\",\n\"snåsa.no\",\n\"snoasa.no\",\n\"snaase.no\",\n\"snåase.no\",\n\"sogndal.no\",\n\"sokndal.no\",\n\"sola.no\",\n\"solund.no\",\n\"songdalen.no\",\n\"sortland.no\",\n\"spydeberg.no\",\n\"stange.no\",\n\"stavanger.no\",\n\"steigen.no\",\n\"steinkjer.no\",\n\"stjordal.no\",\n\"stjørdal.no\",\n\"stokke.no\",\n\"stor-elvdal.no\",\n\"stord.no\",\n\"stordal.no\",\n\"storfjord.no\",\n\"omasvuotna.no\",\n\"strand.no\",\n\"stranda.no\",\n\"stryn.no\",\n\"sula.no\",\n\"suldal.no\",\n\"sund.no\",\n\"sunndal.no\",\n\"surnadal.no\",\n\"sveio.no\",\n\"svelvik.no\",\n\"sykkylven.no\",\n\"sogne.no\",\n\"søgne.no\",\n\"somna.no\",\n\"sømna.no\",\n\"sondre-land.no\",\n\"søndre-land.no\",\n\"sor-aurdal.no\",\n\"sør-aurdal.no\",\n\"sor-fron.no\",\n\"sør-fron.no\",\n\"sor-odal.no\",\n\"sør-odal.no\",\n\"sor-varanger.no\",\n\"sør-varanger.no\",\n\"matta-varjjat.no\",\n\"mátta-várjjat.no\",\n\"sorfold.no\",\n\"sørfold.no\",\n\"sorreisa.no\",\n\"sørreisa.no\",\n\"sorum.no\",\n\"sørum.no\",\n\"tana.no\",\n\"deatnu.no\",\n\"time.no\",\n\"tingvoll.no\",\n\"tinn.no\",\n\"tjeldsund.no\",\n\"dielddanuorri.no\",\n\"tjome.no\",\n\"tjøme.no\",\n\"tokke.no\",\n\"tolga.no\",\n\"torsken.no\",\n\"tranoy.no\",\n\"tranøy.no\",\n\"tromso.no\",\n\"tromsø.no\",\n\"tromsa.no\",\n\"romsa.no\",\n\"trondheim.no\",\n\"troandin.no\",\n\"trysil.no\",\n\"trana.no\",\n\"træna.no\",\n\"trogstad.no\",\n\"trøgstad.no\",\n\"tvedestrand.no\",\n\"tydal.no\",\n\"tynset.no\",\n\"tysfjord.no\",\n\"divtasvuodna.no\",\n\"divttasvuotna.no\",\n\"tysnes.no\",\n\"tysvar.no\",\n\"tysvær.no\",\n\"tonsberg.no\",\n\"tønsberg.no\",\n\"ullensaker.no\",\n\"ullensvang.no\",\n\"ulvik.no\",\n\"utsira.no\",\n\"vadso.no\",\n\"vadsø.no\",\n\"cahcesuolo.no\",\n\"čáhcesuolo.no\",\n\"vaksdal.no\",\n\"valle.no\",\n\"vang.no\",\n\"vanylven.no\",\n\"vardo.no\",\n\"vardø.no\",\n\"varggat.no\",\n\"várggát.no\",\n\"vefsn.no\",\n\"vaapste.no\",\n\"vega.no\",\n\"vegarshei.no\",\n\"vegårshei.no\",\n\"vennesla.no\",\n\"verdal.no\",\n\"verran.no\",\n\"vestby.no\",\n\"vestnes.no\",\n\"vestre-slidre.no\",\n\"vestre-toten.no\",\n\"vestvagoy.no\",\n\"vestvågøy.no\",\n\"vevelstad.no\",\n\"vik.no\",\n\"vikna.no\",\n\"vindafjord.no\",\n\"volda.no\",\n\"voss.no\",\n\"varoy.no\",\n\"værøy.no\",\n\"vagan.no\",\n\"vågan.no\",\n\"voagat.no\",\n\"vagsoy.no\",\n\"vågsøy.no\",\n\"vaga.no\",\n\"vågå.no\",\n\"valer.ostfold.no\",\n\"våler.østfold.no\",\n\"valer.hedmark.no\",\n\"våler.hedmark.no\",\n\"*.np\",\n\"nr\",\n\"biz.nr\",\n\"info.nr\",\n\"gov.nr\",\n\"edu.nr\",\n\"org.nr\",\n\"net.nr\",\n\"com.nr\",\n\"nu\",\n\"nz\",\n\"ac.nz\",\n\"co.nz\",\n\"cri.nz\",\n\"geek.nz\",\n\"gen.nz\",\n\"govt.nz\",\n\"health.nz\",\n\"iwi.nz\",\n\"kiwi.nz\",\n\"maori.nz\",\n\"mil.nz\",\n\"māori.nz\",\n\"net.nz\",\n\"org.nz\",\n\"parliament.nz\",\n\"school.nz\",\n\"om\",\n\"co.om\",\n\"com.om\",\n\"edu.om\",\n\"gov.om\",\n\"med.om\",\n\"museum.om\",\n\"net.om\",\n\"org.om\",\n\"pro.om\",\n\"onion\",\n\"org\",\n\"pa\",\n\"ac.pa\",\n\"gob.pa\",\n\"com.pa\",\n\"org.pa\",\n\"sld.pa\",\n\"edu.pa\",\n\"net.pa\",\n\"ing.pa\",\n\"abo.pa\",\n\"med.pa\",\n\"nom.pa\",\n\"pe\",\n\"edu.pe\",\n\"gob.pe\",\n\"nom.pe\",\n\"mil.pe\",\n\"org.pe\",\n\"com.pe\",\n\"net.pe\",\n\"pf\",\n\"com.pf\",\n\"org.pf\",\n\"edu.pf\",\n\"*.pg\",\n\"ph\",\n\"com.ph\",\n\"net.ph\",\n\"org.ph\",\n\"gov.ph\",\n\"edu.ph\",\n\"ngo.ph\",\n\"mil.ph\",\n\"i.ph\",\n\"pk\",\n\"com.pk\",\n\"net.pk\",\n\"edu.pk\",\n\"org.pk\",\n\"fam.pk\",\n\"biz.pk\",\n\"web.pk\",\n\"gov.pk\",\n\"gob.pk\",\n\"gok.pk\",\n\"gon.pk\",\n\"gop.pk\",\n\"gos.pk\",\n\"info.pk\",\n\"pl\",\n\"com.pl\",\n\"net.pl\",\n\"org.pl\",\n\"aid.pl\",\n\"agro.pl\",\n\"atm.pl\",\n\"auto.pl\",\n\"biz.pl\",\n\"edu.pl\",\n\"gmina.pl\",\n\"gsm.pl\",\n\"info.pl\",\n\"mail.pl\",\n\"miasta.pl\",\n\"media.pl\",\n\"mil.pl\",\n\"nieruchomosci.pl\",\n\"nom.pl\",\n\"pc.pl\",\n\"powiat.pl\",\n\"priv.pl\",\n\"realestate.pl\",\n\"rel.pl\",\n\"sex.pl\",\n\"shop.pl\",\n\"sklep.pl\",\n\"sos.pl\",\n\"szkola.pl\",\n\"targi.pl\",\n\"tm.pl\",\n\"tourism.pl\",\n\"travel.pl\",\n\"turystyka.pl\",\n\"gov.pl\",\n\"ap.gov.pl\",\n\"ic.gov.pl\",\n\"is.gov.pl\",\n\"us.gov.pl\",\n\"kmpsp.gov.pl\",\n\"kppsp.gov.pl\",\n\"kwpsp.gov.pl\",\n\"psp.gov.pl\",\n\"wskr.gov.pl\",\n\"kwp.gov.pl\",\n\"mw.gov.pl\",\n\"ug.gov.pl\",\n\"um.gov.pl\",\n\"umig.gov.pl\",\n\"ugim.gov.pl\",\n\"upow.gov.pl\",\n\"uw.gov.pl\",\n\"starostwo.gov.pl\",\n\"pa.gov.pl\",\n\"po.gov.pl\",\n\"psse.gov.pl\",\n\"pup.gov.pl\",\n\"rzgw.gov.pl\",\n\"sa.gov.pl\",\n\"so.gov.pl\",\n\"sr.gov.pl\",\n\"wsa.gov.pl\",\n\"sko.gov.pl\",\n\"uzs.gov.pl\",\n\"wiih.gov.pl\",\n\"winb.gov.pl\",\n\"pinb.gov.pl\",\n\"wios.gov.pl\",\n\"witd.gov.pl\",\n\"wzmiuw.gov.pl\",\n\"piw.gov.pl\",\n\"wiw.gov.pl\",\n\"griw.gov.pl\",\n\"wif.gov.pl\",\n\"oum.gov.pl\",\n\"sdn.gov.pl\",\n\"zp.gov.pl\",\n\"uppo.gov.pl\",\n\"mup.gov.pl\",\n\"wuoz.gov.pl\",\n\"konsulat.gov.pl\",\n\"oirm.gov.pl\",\n\"augustow.pl\",\n\"babia-gora.pl\",\n\"bedzin.pl\",\n\"beskidy.pl\",\n\"bialowieza.pl\",\n\"bialystok.pl\",\n\"bielawa.pl\",\n\"bieszczady.pl\",\n\"boleslawiec.pl\",\n\"bydgoszcz.pl\",\n\"bytom.pl\",\n\"cieszyn.pl\",\n\"czeladz.pl\",\n\"czest.pl\",\n\"dlugoleka.pl\",\n\"elblag.pl\",\n\"elk.pl\",\n\"glogow.pl\",\n\"gniezno.pl\",\n\"gorlice.pl\",\n\"grajewo.pl\",\n\"ilawa.pl\",\n\"jaworzno.pl\",\n\"jelenia-gora.pl\",\n\"jgora.pl\",\n\"kalisz.pl\",\n\"kazimierz-dolny.pl\",\n\"karpacz.pl\",\n\"kartuzy.pl\",\n\"kaszuby.pl\",\n\"katowice.pl\",\n\"kepno.pl\",\n\"ketrzyn.pl\",\n\"klodzko.pl\",\n\"kobierzyce.pl\",\n\"kolobrzeg.pl\",\n\"konin.pl\",\n\"konskowola.pl\",\n\"kutno.pl\",\n\"lapy.pl\",\n\"lebork.pl\",\n\"legnica.pl\",\n\"lezajsk.pl\",\n\"limanowa.pl\",\n\"lomza.pl\",\n\"lowicz.pl\",\n\"lubin.pl\",\n\"lukow.pl\",\n\"malbork.pl\",\n\"malopolska.pl\",\n\"mazowsze.pl\",\n\"mazury.pl\",\n\"mielec.pl\",\n\"mielno.pl\",\n\"mragowo.pl\",\n\"naklo.pl\",\n\"nowaruda.pl\",\n\"nysa.pl\",\n\"olawa.pl\",\n\"olecko.pl\",\n\"olkusz.pl\",\n\"olsztyn.pl\",\n\"opoczno.pl\",\n\"opole.pl\",\n\"ostroda.pl\",\n\"ostroleka.pl\",\n\"ostrowiec.pl\",\n\"ostrowwlkp.pl\",\n\"pila.pl\",\n\"pisz.pl\",\n\"podhale.pl\",\n\"podlasie.pl\",\n\"polkowice.pl\",\n\"pomorze.pl\",\n\"pomorskie.pl\",\n\"prochowice.pl\",\n\"pruszkow.pl\",\n\"przeworsk.pl\",\n\"pulawy.pl\",\n\"radom.pl\",\n\"rawa-maz.pl\",\n\"rybnik.pl\",\n\"rzeszow.pl\",\n\"sanok.pl\",\n\"sejny.pl\",\n\"slask.pl\",\n\"slupsk.pl\",\n\"sosnowiec.pl\",\n\"stalowa-wola.pl\",\n\"skoczow.pl\",\n\"starachowice.pl\",\n\"stargard.pl\",\n\"suwalki.pl\",\n\"swidnica.pl\",\n\"swiebodzin.pl\",\n\"swinoujscie.pl\",\n\"szczecin.pl\",\n\"szczytno.pl\",\n\"tarnobrzeg.pl\",\n\"tgory.pl\",\n\"turek.pl\",\n\"tychy.pl\",\n\"ustka.pl\",\n\"walbrzych.pl\",\n\"warmia.pl\",\n\"warszawa.pl\",\n\"waw.pl\",\n\"wegrow.pl\",\n\"wielun.pl\",\n\"wlocl.pl\",\n\"wloclawek.pl\",\n\"wodzislaw.pl\",\n\"wolomin.pl\",\n\"wroclaw.pl\",\n\"zachpomor.pl\",\n\"zagan.pl\",\n\"zarow.pl\",\n\"zgora.pl\",\n\"zgorzelec.pl\",\n\"pm\",\n\"pn\",\n\"gov.pn\",\n\"co.pn\",\n\"org.pn\",\n\"edu.pn\",\n\"net.pn\",\n\"post\",\n\"pr\",\n\"com.pr\",\n\"net.pr\",\n\"org.pr\",\n\"gov.pr\",\n\"edu.pr\",\n\"isla.pr\",\n\"pro.pr\",\n\"biz.pr\",\n\"info.pr\",\n\"name.pr\",\n\"est.pr\",\n\"prof.pr\",\n\"ac.pr\",\n\"pro\",\n\"aaa.pro\",\n\"aca.pro\",\n\"acct.pro\",\n\"avocat.pro\",\n\"bar.pro\",\n\"cpa.pro\",\n\"eng.pro\",\n\"jur.pro\",\n\"law.pro\",\n\"med.pro\",\n\"recht.pro\",\n\"ps\",\n\"edu.ps\",\n\"gov.ps\",\n\"sec.ps\",\n\"plo.ps\",\n\"com.ps\",\n\"org.ps\",\n\"net.ps\",\n\"pt\",\n\"net.pt\",\n\"gov.pt\",\n\"org.pt\",\n\"edu.pt\",\n\"int.pt\",\n\"publ.pt\",\n\"com.pt\",\n\"nome.pt\",\n\"pw\",\n\"co.pw\",\n\"ne.pw\",\n\"or.pw\",\n\"ed.pw\",\n\"go.pw\",\n\"belau.pw\",\n\"py\",\n\"com.py\",\n\"coop.py\",\n\"edu.py\",\n\"gov.py\",\n\"mil.py\",\n\"net.py\",\n\"org.py\",\n\"qa\",\n\"com.qa\",\n\"edu.qa\",\n\"gov.qa\",\n\"mil.qa\",\n\"name.qa\",\n\"net.qa\",\n\"org.qa\",\n\"sch.qa\",\n\"re\",\n\"asso.re\",\n\"com.re\",\n\"nom.re\",\n\"ro\",\n\"arts.ro\",\n\"com.ro\",\n\"firm.ro\",\n\"info.ro\",\n\"nom.ro\",\n\"nt.ro\",\n\"org.ro\",\n\"rec.ro\",\n\"store.ro\",\n\"tm.ro\",\n\"www.ro\",\n\"rs\",\n\"ac.rs\",\n\"co.rs\",\n\"edu.rs\",\n\"gov.rs\",\n\"in.rs\",\n\"org.rs\",\n\"ru\",\n\"rw\",\n\"ac.rw\",\n\"co.rw\",\n\"coop.rw\",\n\"gov.rw\",\n\"mil.rw\",\n\"net.rw\",\n\"org.rw\",\n\"sa\",\n\"com.sa\",\n\"net.sa\",\n\"org.sa\",\n\"gov.sa\",\n\"med.sa\",\n\"pub.sa\",\n\"edu.sa\",\n\"sch.sa\",\n\"sb\",\n\"com.sb\",\n\"edu.sb\",\n\"gov.sb\",\n\"net.sb\",\n\"org.sb\",\n\"sc\",\n\"com.sc\",\n\"gov.sc\",\n\"net.sc\",\n\"org.sc\",\n\"edu.sc\",\n\"sd\",\n\"com.sd\",\n\"net.sd\",\n\"org.sd\",\n\"edu.sd\",\n\"med.sd\",\n\"tv.sd\",\n\"gov.sd\",\n\"info.sd\",\n\"se\",\n\"a.se\",\n\"ac.se\",\n\"b.se\",\n\"bd.se\",\n\"brand.se\",\n\"c.se\",\n\"d.se\",\n\"e.se\",\n\"f.se\",\n\"fh.se\",\n\"fhsk.se\",\n\"fhv.se\",\n\"g.se\",\n\"h.se\",\n\"i.se\",\n\"k.se\",\n\"komforb.se\",\n\"kommunalforbund.se\",\n\"komvux.se\",\n\"l.se\",\n\"lanbib.se\",\n\"m.se\",\n\"n.se\",\n\"naturbruksgymn.se\",\n\"o.se\",\n\"org.se\",\n\"p.se\",\n\"parti.se\",\n\"pp.se\",\n\"press.se\",\n\"r.se\",\n\"s.se\",\n\"t.se\",\n\"tm.se\",\n\"u.se\",\n\"w.se\",\n\"x.se\",\n\"y.se\",\n\"z.se\",\n\"sg\",\n\"com.sg\",\n\"net.sg\",\n\"org.sg\",\n\"gov.sg\",\n\"edu.sg\",\n\"per.sg\",\n\"sh\",\n\"com.sh\",\n\"net.sh\",\n\"gov.sh\",\n\"org.sh\",\n\"mil.sh\",\n\"si\",\n\"sj\",\n\"sk\",\n\"sl\",\n\"com.sl\",\n\"net.sl\",\n\"edu.sl\",\n\"gov.sl\",\n\"org.sl\",\n\"sm\",\n\"sn\",\n\"art.sn\",\n\"com.sn\",\n\"edu.sn\",\n\"gouv.sn\",\n\"org.sn\",\n\"perso.sn\",\n\"univ.sn\",\n\"so\",\n\"com.so\",\n\"edu.so\",\n\"gov.so\",\n\"me.so\",\n\"net.so\",\n\"org.so\",\n\"sr\",\n\"ss\",\n\"biz.ss\",\n\"com.ss\",\n\"edu.ss\",\n\"gov.ss\",\n\"net.ss\",\n\"org.ss\",\n\"st\",\n\"co.st\",\n\"com.st\",\n\"consulado.st\",\n\"edu.st\",\n\"embaixada.st\",\n\"gov.st\",\n\"mil.st\",\n\"net.st\",\n\"org.st\",\n\"principe.st\",\n\"saotome.st\",\n\"store.st\",\n\"su\",\n\"sv\",\n\"com.sv\",\n\"edu.sv\",\n\"gob.sv\",\n\"org.sv\",\n\"red.sv\",\n\"sx\",\n\"gov.sx\",\n\"sy\",\n\"edu.sy\",\n\"gov.sy\",\n\"net.sy\",\n\"mil.sy\",\n\"com.sy\",\n\"org.sy\",\n\"sz\",\n\"co.sz\",\n\"ac.sz\",\n\"org.sz\",\n\"tc\",\n\"td\",\n\"tel\",\n\"tf\",\n\"tg\",\n\"th\",\n\"ac.th\",\n\"co.th\",\n\"go.th\",\n\"in.th\",\n\"mi.th\",\n\"net.th\",\n\"or.th\",\n\"tj\",\n\"ac.tj\",\n\"biz.tj\",\n\"co.tj\",\n\"com.tj\",\n\"edu.tj\",\n\"go.tj\",\n\"gov.tj\",\n\"int.tj\",\n\"mil.tj\",\n\"name.tj\",\n\"net.tj\",\n\"nic.tj\",\n\"org.tj\",\n\"test.tj\",\n\"web.tj\",\n\"tk\",\n\"tl\",\n\"gov.tl\",\n\"tm\",\n\"com.tm\",\n\"co.tm\",\n\"org.tm\",\n\"net.tm\",\n\"nom.tm\",\n\"gov.tm\",\n\"mil.tm\",\n\"edu.tm\",\n\"tn\",\n\"com.tn\",\n\"ens.tn\",\n\"fin.tn\",\n\"gov.tn\",\n\"ind.tn\",\n\"intl.tn\",\n\"nat.tn\",\n\"net.tn\",\n\"org.tn\",\n\"info.tn\",\n\"perso.tn\",\n\"tourism.tn\",\n\"edunet.tn\",\n\"rnrt.tn\",\n\"rns.tn\",\n\"rnu.tn\",\n\"mincom.tn\",\n\"agrinet.tn\",\n\"defense.tn\",\n\"turen.tn\",\n\"to\",\n\"com.to\",\n\"gov.to\",\n\"net.to\",\n\"org.to\",\n\"edu.to\",\n\"mil.to\",\n\"tr\",\n\"av.tr\",\n\"bbs.tr\",\n\"bel.tr\",\n\"biz.tr\",\n\"com.tr\",\n\"dr.tr\",\n\"edu.tr\",\n\"gen.tr\",\n\"gov.tr\",\n\"info.tr\",\n\"mil.tr\",\n\"k12.tr\",\n\"kep.tr\",\n\"name.tr\",\n\"net.tr\",\n\"org.tr\",\n\"pol.tr\",\n\"tel.tr\",\n\"tsk.tr\",\n\"tv.tr\",\n\"web.tr\",\n\"nc.tr\",\n\"gov.nc.tr\",\n\"tt\",\n\"co.tt\",\n\"com.tt\",\n\"org.tt\",\n\"net.tt\",\n\"biz.tt\",\n\"info.tt\",\n\"pro.tt\",\n\"int.tt\",\n\"coop.tt\",\n\"jobs.tt\",\n\"mobi.tt\",\n\"travel.tt\",\n\"museum.tt\",\n\"aero.tt\",\n\"name.tt\",\n\"gov.tt\",\n\"edu.tt\",\n\"tv\",\n\"tw\",\n\"edu.tw\",\n\"gov.tw\",\n\"mil.tw\",\n\"com.tw\",\n\"net.tw\",\n\"org.tw\",\n\"idv.tw\",\n\"game.tw\",\n\"ebiz.tw\",\n\"club.tw\",\n\"網路.tw\",\n\"組織.tw\",\n\"商業.tw\",\n\"tz\",\n\"ac.tz\",\n\"co.tz\",\n\"go.tz\",\n\"hotel.tz\",\n\"info.tz\",\n\"me.tz\",\n\"mil.tz\",\n\"mobi.tz\",\n\"ne.tz\",\n\"or.tz\",\n\"sc.tz\",\n\"tv.tz\",\n\"ua\",\n\"com.ua\",\n\"edu.ua\",\n\"gov.ua\",\n\"in.ua\",\n\"net.ua\",\n\"org.ua\",\n\"cherkassy.ua\",\n\"cherkasy.ua\",\n\"chernigov.ua\",\n\"chernihiv.ua\",\n\"chernivtsi.ua\",\n\"chernovtsy.ua\",\n\"ck.ua\",\n\"cn.ua\",\n\"cr.ua\",\n\"crimea.ua\",\n\"cv.ua\",\n\"dn.ua\",\n\"dnepropetrovsk.ua\",\n\"dnipropetrovsk.ua\",\n\"dominic.ua\",\n\"donetsk.ua\",\n\"dp.ua\",\n\"if.ua\",\n\"ivano-frankivsk.ua\",\n\"kh.ua\",\n\"kharkiv.ua\",\n\"kharkov.ua\",\n\"kherson.ua\",\n\"khmelnitskiy.ua\",\n\"khmelnytskyi.ua\",\n\"kiev.ua\",\n\"kirovograd.ua\",\n\"km.ua\",\n\"kr.ua\",\n\"krym.ua\",\n\"ks.ua\",\n\"kv.ua\",\n\"kyiv.ua\",\n\"lg.ua\",\n\"lt.ua\",\n\"lugansk.ua\",\n\"lutsk.ua\",\n\"lv.ua\",\n\"lviv.ua\",\n\"mk.ua\",\n\"mykolaiv.ua\",\n\"nikolaev.ua\",\n\"od.ua\",\n\"odesa.ua\",\n\"odessa.ua\",\n\"pl.ua\",\n\"poltava.ua\",\n\"rivne.ua\",\n\"rovno.ua\",\n\"rv.ua\",\n\"sb.ua\",\n\"sebastopol.ua\",\n\"sevastopol.ua\",\n\"sm.ua\",\n\"sumy.ua\",\n\"te.ua\",\n\"ternopil.ua\",\n\"uz.ua\",\n\"uzhgorod.ua\",\n\"vinnica.ua\",\n\"vinnytsia.ua\",\n\"vn.ua\",\n\"volyn.ua\",\n\"yalta.ua\",\n\"zaporizhzhe.ua\",\n\"zaporizhzhia.ua\",\n\"zhitomir.ua\",\n\"zhytomyr.ua\",\n\"zp.ua\",\n\"zt.ua\",\n\"ug\",\n\"co.ug\",\n\"or.ug\",\n\"ac.ug\",\n\"sc.ug\",\n\"go.ug\",\n\"ne.ug\",\n\"com.ug\",\n\"org.ug\",\n\"uk\",\n\"ac.uk\",\n\"co.uk\",\n\"gov.uk\",\n\"ltd.uk\",\n\"me.uk\",\n\"net.uk\",\n\"nhs.uk\",\n\"org.uk\",\n\"plc.uk\",\n\"police.uk\",\n\"*.sch.uk\",\n\"us\",\n\"dni.us\",\n\"fed.us\",\n\"isa.us\",\n\"kids.us\",\n\"nsn.us\",\n\"ak.us\",\n\"al.us\",\n\"ar.us\",\n\"as.us\",\n\"az.us\",\n\"ca.us\",\n\"co.us\",\n\"ct.us\",\n\"dc.us\",\n\"de.us\",\n\"fl.us\",\n\"ga.us\",\n\"gu.us\",\n\"hi.us\",\n\"ia.us\",\n\"id.us\",\n\"il.us\",\n\"in.us\",\n\"ks.us\",\n\"ky.us\",\n\"la.us\",\n\"ma.us\",\n\"md.us\",\n\"me.us\",\n\"mi.us\",\n\"mn.us\",\n\"mo.us\",\n\"ms.us\",\n\"mt.us\",\n\"nc.us\",\n\"nd.us\",\n\"ne.us\",\n\"nh.us\",\n\"nj.us\",\n\"nm.us\",\n\"nv.us\",\n\"ny.us\",\n\"oh.us\",\n\"ok.us\",\n\"or.us\",\n\"pa.us\",\n\"pr.us\",\n\"ri.us\",\n\"sc.us\",\n\"sd.us\",\n\"tn.us\",\n\"tx.us\",\n\"ut.us\",\n\"vi.us\",\n\"vt.us\",\n\"va.us\",\n\"wa.us\",\n\"wi.us\",\n\"wv.us\",\n\"wy.us\",\n\"k12.ak.us\",\n\"k12.al.us\",\n\"k12.ar.us\",\n\"k12.as.us\",\n\"k12.az.us\",\n\"k12.ca.us\",\n\"k12.co.us\",\n\"k12.ct.us\",\n\"k12.dc.us\",\n\"k12.de.us\",\n\"k12.fl.us\",\n\"k12.ga.us\",\n\"k12.gu.us\",\n\"k12.ia.us\",\n\"k12.id.us\",\n\"k12.il.us\",\n\"k12.in.us\",\n\"k12.ks.us\",\n\"k12.ky.us\",\n\"k12.la.us\",\n\"k12.ma.us\",\n\"k12.md.us\",\n\"k12.me.us\",\n\"k12.mi.us\",\n\"k12.mn.us\",\n\"k12.mo.us\",\n\"k12.ms.us\",\n\"k12.mt.us\",\n\"k12.nc.us\",\n\"k12.ne.us\",\n\"k12.nh.us\",\n\"k12.nj.us\",\n\"k12.nm.us\",\n\"k12.nv.us\",\n\"k12.ny.us\",\n\"k12.oh.us\",\n\"k12.ok.us\",\n\"k12.or.us\",\n\"k12.pa.us\",\n\"k12.pr.us\",\n\"k12.ri.us\",\n\"k12.sc.us\",\n\"k12.tn.us\",\n\"k12.tx.us\",\n\"k12.ut.us\",\n\"k12.vi.us\",\n\"k12.vt.us\",\n\"k12.va.us\",\n\"k12.wa.us\",\n\"k12.wi.us\",\n\"k12.wy.us\",\n\"cc.ak.us\",\n\"cc.al.us\",\n\"cc.ar.us\",\n\"cc.as.us\",\n\"cc.az.us\",\n\"cc.ca.us\",\n\"cc.co.us\",\n\"cc.ct.us\",\n\"cc.dc.us\",\n\"cc.de.us\",\n\"cc.fl.us\",\n\"cc.ga.us\",\n\"cc.gu.us\",\n\"cc.hi.us\",\n\"cc.ia.us\",\n\"cc.id.us\",\n\"cc.il.us\",\n\"cc.in.us\",\n\"cc.ks.us\",\n\"cc.ky.us\",\n\"cc.la.us\",\n\"cc.ma.us\",\n\"cc.md.us\",\n\"cc.me.us\",\n\"cc.mi.us\",\n\"cc.mn.us\",\n\"cc.mo.us\",\n\"cc.ms.us\",\n\"cc.mt.us\",\n\"cc.nc.us\",\n\"cc.nd.us\",\n\"cc.ne.us\",\n\"cc.nh.us\",\n\"cc.nj.us\",\n\"cc.nm.us\",\n\"cc.nv.us\",\n\"cc.ny.us\",\n\"cc.oh.us\",\n\"cc.ok.us\",\n\"cc.or.us\",\n\"cc.pa.us\",\n\"cc.pr.us\",\n\"cc.ri.us\",\n\"cc.sc.us\",\n\"cc.sd.us\",\n\"cc.tn.us\",\n\"cc.tx.us\",\n\"cc.ut.us\",\n\"cc.vi.us\",\n\"cc.vt.us\",\n\"cc.va.us\",\n\"cc.wa.us\",\n\"cc.wi.us\",\n\"cc.wv.us\",\n\"cc.wy.us\",\n\"lib.ak.us\",\n\"lib.al.us\",\n\"lib.ar.us\",\n\"lib.as.us\",\n\"lib.az.us\",\n\"lib.ca.us\",\n\"lib.co.us\",\n\"lib.ct.us\",\n\"lib.dc.us\",\n\"lib.fl.us\",\n\"lib.ga.us\",\n\"lib.gu.us\",\n\"lib.hi.us\",\n\"lib.ia.us\",\n\"lib.id.us\",\n\"lib.il.us\",\n\"lib.in.us\",\n\"lib.ks.us\",\n\"lib.ky.us\",\n\"lib.la.us\",\n\"lib.ma.us\",\n\"lib.md.us\",\n\"lib.me.us\",\n\"lib.mi.us\",\n\"lib.mn.us\",\n\"lib.mo.us\",\n\"lib.ms.us\",\n\"lib.mt.us\",\n\"lib.nc.us\",\n\"lib.nd.us\",\n\"lib.ne.us\",\n\"lib.nh.us\",\n\"lib.nj.us\",\n\"lib.nm.us\",\n\"lib.nv.us\",\n\"lib.ny.us\",\n\"lib.oh.us\",\n\"lib.ok.us\",\n\"lib.or.us\",\n\"lib.pa.us\",\n\"lib.pr.us\",\n\"lib.ri.us\",\n\"lib.sc.us\",\n\"lib.sd.us\",\n\"lib.tn.us\",\n\"lib.tx.us\",\n\"lib.ut.us\",\n\"lib.vi.us\",\n\"lib.vt.us\",\n\"lib.va.us\",\n\"lib.wa.us\",\n\"lib.wi.us\",\n\"lib.wy.us\",\n\"pvt.k12.ma.us\",\n\"chtr.k12.ma.us\",\n\"paroch.k12.ma.us\",\n\"ann-arbor.mi.us\",\n\"cog.mi.us\",\n\"dst.mi.us\",\n\"eaton.mi.us\",\n\"gen.mi.us\",\n\"mus.mi.us\",\n\"tec.mi.us\",\n\"washtenaw.mi.us\",\n\"uy\",\n\"com.uy\",\n\"edu.uy\",\n\"gub.uy\",\n\"mil.uy\",\n\"net.uy\",\n\"org.uy\",\n\"uz\",\n\"co.uz\",\n\"com.uz\",\n\"net.uz\",\n\"org.uz\",\n\"va\",\n\"vc\",\n\"com.vc\",\n\"net.vc\",\n\"org.vc\",\n\"gov.vc\",\n\"mil.vc\",\n\"edu.vc\",\n\"ve\",\n\"arts.ve\",\n\"co.ve\",\n\"com.ve\",\n\"e12.ve\",\n\"edu.ve\",\n\"firm.ve\",\n\"gob.ve\",\n\"gov.ve\",\n\"info.ve\",\n\"int.ve\",\n\"mil.ve\",\n\"net.ve\",\n\"org.ve\",\n\"rec.ve\",\n\"store.ve\",\n\"tec.ve\",\n\"web.ve\",\n\"vg\",\n\"vi\",\n\"co.vi\",\n\"com.vi\",\n\"k12.vi\",\n\"net.vi\",\n\"org.vi\",\n\"vn\",\n\"com.vn\",\n\"net.vn\",\n\"org.vn\",\n\"edu.vn\",\n\"gov.vn\",\n\"int.vn\",\n\"ac.vn\",\n\"biz.vn\",\n\"info.vn\",\n\"name.vn\",\n\"pro.vn\",\n\"health.vn\",\n\"vu\",\n\"com.vu\",\n\"edu.vu\",\n\"net.vu\",\n\"org.vu\",\n\"wf\",\n\"ws\",\n\"com.ws\",\n\"net.ws\",\n\"org.ws\",\n\"gov.ws\",\n\"edu.ws\",\n\"yt\",\n\"امارات\",\n\"հայ\",\n\"বাংলা\",\n\"бг\",\n\"бел\",\n\"中国\",\n\"中國\",\n\"الجزائر\",\n\"مصر\",\n\"ею\",\n\"ευ\",\n\"موريتانيا\",\n\"გე\",\n\"ελ\",\n\"香港\",\n\"公司.香港\",\n\"教育.香港\",\n\"政府.香港\",\n\"個人.香港\",\n\"網絡.香港\",\n\"組織.香港\",\n\"ಭಾರತ\",\n\"ଭାରତ\",\n\"ভাৰত\",\n\"भारतम्\",\n\"भारोत\",\n\"ڀارت\",\n\"ഭാരതം\",\n\"भारत\",\n\"بارت\",\n\"بھارت\",\n\"భారత్\",\n\"ભારત\",\n\"ਭਾਰਤ\",\n\"ভারত\",\n\"இந்தியா\",\n\"ایران\",\n\"ايران\",\n\"عراق\",\n\"الاردن\",\n\"한국\",\n\"қаз\",\n\"ලංකා\",\n\"இலங்கை\",\n\"المغرب\",\n\"мкд\",\n\"мон\",\n\"澳門\",\n\"澳门\",\n\"مليسيا\",\n\"عمان\",\n\"پاکستان\",\n\"پاكستان\",\n\"فلسطين\",\n\"срб\",\n\"пр.срб\",\n\"орг.срб\",\n\"обр.срб\",\n\"од.срб\",\n\"упр.срб\",\n\"ак.срб\",\n\"рф\",\n\"قطر\",\n\"السعودية\",\n\"السعودیة\",\n\"السعودیۃ\",\n\"السعوديه\",\n\"سودان\",\n\"新加坡\",\n\"சிங்கப்பூர்\",\n\"سورية\",\n\"سوريا\",\n\"ไทย\",\n\"ศึกษา.ไทย\",\n\"ธุรกิจ.ไทย\",\n\"รัฐบาล.ไทย\",\n\"ทหาร.ไทย\",\n\"เน็ต.ไทย\",\n\"องค์กร.ไทย\",\n\"تونس\",\n\"台灣\",\n\"台湾\",\n\"臺灣\",\n\"укр\",\n\"اليمن\",\n\"xxx\",\n\"*.ye\",\n\"ac.za\",\n\"agric.za\",\n\"alt.za\",\n\"co.za\",\n\"edu.za\",\n\"gov.za\",\n\"grondar.za\",\n\"law.za\",\n\"mil.za\",\n\"net.za\",\n\"ngo.za\",\n\"nic.za\",\n\"nis.za\",\n\"nom.za\",\n\"org.za\",\n\"school.za\",\n\"tm.za\",\n\"web.za\",\n\"zm\",\n\"ac.zm\",\n\"biz.zm\",\n\"co.zm\",\n\"com.zm\",\n\"edu.zm\",\n\"gov.zm\",\n\"info.zm\",\n\"mil.zm\",\n\"net.zm\",\n\"org.zm\",\n\"sch.zm\",\n\"zw\",\n\"ac.zw\",\n\"co.zw\",\n\"gov.zw\",\n\"mil.zw\",\n\"org.zw\",\n\"aaa\",\n\"aarp\",\n\"abarth\",\n\"abb\",\n\"abbott\",\n\"abbvie\",\n\"abc\",\n\"able\",\n\"abogado\",\n\"abudhabi\",\n\"academy\",\n\"accenture\",\n\"accountant\",\n\"accountants\",\n\"aco\",\n\"actor\",\n\"adac\",\n\"ads\",\n\"adult\",\n\"aeg\",\n\"aetna\",\n\"afamilycompany\",\n\"afl\",\n\"africa\",\n\"agakhan\",\n\"agency\",\n\"aig\",\n\"aigo\",\n\"airbus\",\n\"airforce\",\n\"airtel\",\n\"akdn\",\n\"alfaromeo\",\n\"alibaba\",\n\"alipay\",\n\"allfinanz\",\n\"allstate\",\n\"ally\",\n\"alsace\",\n\"alstom\",\n\"amazon\",\n\"americanexpress\",\n\"americanfamily\",\n\"amex\",\n\"amfam\",\n\"amica\",\n\"amsterdam\",\n\"analytics\",\n\"android\",\n\"anquan\",\n\"anz\",\n\"aol\",\n\"apartments\",\n\"app\",\n\"apple\",\n\"aquarelle\",\n\"arab\",\n\"aramco\",\n\"archi\",\n\"army\",\n\"art\",\n\"arte\",\n\"asda\",\n\"associates\",\n\"athleta\",\n\"attorney\",\n\"auction\",\n\"audi\",\n\"audible\",\n\"audio\",\n\"auspost\",\n\"author\",\n\"auto\",\n\"autos\",\n\"avianca\",\n\"aws\",\n\"axa\",\n\"azure\",\n\"baby\",\n\"baidu\",\n\"banamex\",\n\"bananarepublic\",\n\"band\",\n\"bank\",\n\"bar\",\n\"barcelona\",\n\"barclaycard\",\n\"barclays\",\n\"barefoot\",\n\"bargains\",\n\"baseball\",\n\"basketball\",\n\"bauhaus\",\n\"bayern\",\n\"bbc\",\n\"bbt\",\n\"bbva\",\n\"bcg\",\n\"bcn\",\n\"beats\",\n\"beauty\",\n\"beer\",\n\"bentley\",\n\"berlin\",\n\"best\",\n\"bestbuy\",\n\"bet\",\n\"bharti\",\n\"bible\",\n\"bid\",\n\"bike\",\n\"bing\",\n\"bingo\",\n\"bio\",\n\"black\",\n\"blackfriday\",\n\"blockbuster\",\n\"blog\",\n\"bloomberg\",\n\"blue\",\n\"bms\",\n\"bmw\",\n\"bnpparibas\",\n\"boats\",\n\"boehringer\",\n\"bofa\",\n\"bom\",\n\"bond\",\n\"boo\",\n\"book\",\n\"booking\",\n\"bosch\",\n\"bostik\",\n\"boston\",\n\"bot\",\n\"boutique\",\n\"box\",\n\"bradesco\",\n\"bridgestone\",\n\"broadway\",\n\"broker\",\n\"brother\",\n\"brussels\",\n\"budapest\",\n\"bugatti\",\n\"build\",\n\"builders\",\n\"business\",\n\"buy\",\n\"buzz\",\n\"bzh\",\n\"cab\",\n\"cafe\",\n\"cal\",\n\"call\",\n\"calvinklein\",\n\"cam\",\n\"camera\",\n\"camp\",\n\"cancerresearch\",\n\"canon\",\n\"capetown\",\n\"capital\",\n\"capitalone\",\n\"car\",\n\"caravan\",\n\"cards\",\n\"care\",\n\"career\",\n\"careers\",\n\"cars\",\n\"casa\",\n\"case\",\n\"caseih\",\n\"cash\",\n\"casino\",\n\"catering\",\n\"catholic\",\n\"cba\",\n\"cbn\",\n\"cbre\",\n\"cbs\",\n\"ceb\",\n\"center\",\n\"ceo\",\n\"cern\",\n\"cfa\",\n\"cfd\",\n\"chanel\",\n\"channel\",\n\"charity\",\n\"chase\",\n\"chat\",\n\"cheap\",\n\"chintai\",\n\"christmas\",\n\"chrome\",\n\"church\",\n\"cipriani\",\n\"circle\",\n\"cisco\",\n\"citadel\",\n\"citi\",\n\"citic\",\n\"city\",\n\"cityeats\",\n\"claims\",\n\"cleaning\",\n\"click\",\n\"clinic\",\n\"clinique\",\n\"clothing\",\n\"cloud\",\n\"club\",\n\"clubmed\",\n\"coach\",\n\"codes\",\n\"coffee\",\n\"college\",\n\"cologne\",\n\"comcast\",\n\"commbank\",\n\"community\",\n\"company\",\n\"compare\",\n\"computer\",\n\"comsec\",\n\"condos\",\n\"construction\",\n\"consulting\",\n\"contact\",\n\"contractors\",\n\"cooking\",\n\"cookingchannel\",\n\"cool\",\n\"corsica\",\n\"country\",\n\"coupon\",\n\"coupons\",\n\"courses\",\n\"cpa\",\n\"credit\",\n\"creditcard\",\n\"creditunion\",\n\"cricket\",\n\"crown\",\n\"crs\",\n\"cruise\",\n\"cruises\",\n\"csc\",\n\"cuisinella\",\n\"cymru\",\n\"cyou\",\n\"dabur\",\n\"dad\",\n\"dance\",\n\"data\",\n\"date\",\n\"dating\",\n\"datsun\",\n\"day\",\n\"dclk\",\n\"dds\",\n\"deal\",\n\"dealer\",\n\"deals\",\n\"degree\",\n\"delivery\",\n\"dell\",\n\"deloitte\",\n\"delta\",\n\"democrat\",\n\"dental\",\n\"dentist\",\n\"desi\",\n\"design\",\n\"dev\",\n\"dhl\",\n\"diamonds\",\n\"diet\",\n\"digital\",\n\"direct\",\n\"directory\",\n\"discount\",\n\"discover\",\n\"dish\",\n\"diy\",\n\"dnp\",\n\"docs\",\n\"doctor\",\n\"dog\",\n\"domains\",\n\"dot\",\n\"download\",\n\"drive\",\n\"dtv\",\n\"dubai\",\n\"duck\",\n\"dunlop\",\n\"dupont\",\n\"durban\",\n\"dvag\",\n\"dvr\",\n\"earth\",\n\"eat\",\n\"eco\",\n\"edeka\",\n\"education\",\n\"email\",\n\"emerck\",\n\"energy\",\n\"engineer\",\n\"engineering\",\n\"enterprises\",\n\"epson\",\n\"equipment\",\n\"ericsson\",\n\"erni\",\n\"esq\",\n\"estate\",\n\"esurance\",\n\"etisalat\",\n\"eurovision\",\n\"eus\",\n\"events\",\n\"exchange\",\n\"expert\",\n\"exposed\",\n\"express\",\n\"extraspace\",\n\"fage\",\n\"fail\",\n\"fairwinds\",\n\"faith\",\n\"family\",\n\"fan\",\n\"fans\",\n\"farm\",\n\"farmers\",\n\"fashion\",\n\"fast\",\n\"fedex\",\n\"feedback\",\n\"ferrari\",\n\"ferrero\",\n\"fiat\",\n\"fidelity\",\n\"fido\",\n\"film\",\n\"final\",\n\"finance\",\n\"financial\",\n\"fire\",\n\"firestone\",\n\"firmdale\",\n\"fish\",\n\"fishing\",\n\"fit\",\n\"fitness\",\n\"flickr\",\n\"flights\",\n\"flir\",\n\"florist\",\n\"flowers\",\n\"fly\",\n\"foo\",\n\"food\",\n\"foodnetwork\",\n\"football\",\n\"ford\",\n\"forex\",\n\"forsale\",\n\"forum\",\n\"foundation\",\n\"fox\",\n\"free\",\n\"fresenius\",\n\"frl\",\n\"frogans\",\n\"frontdoor\",\n\"frontier\",\n\"ftr\",\n\"fujitsu\",\n\"fujixerox\",\n\"fun\",\n\"fund\",\n\"furniture\",\n\"futbol\",\n\"fyi\",\n\"gal\",\n\"gallery\",\n\"gallo\",\n\"gallup\",\n\"game\",\n\"games\",\n\"gap\",\n\"garden\",\n\"gay\",\n\"gbiz\",\n\"gdn\",\n\"gea\",\n\"gent\",\n\"genting\",\n\"george\",\n\"ggee\",\n\"gift\",\n\"gifts\",\n\"gives\",\n\"giving\",\n\"glade\",\n\"glass\",\n\"gle\",\n\"global\",\n\"globo\",\n\"gmail\",\n\"gmbh\",\n\"gmo\",\n\"gmx\",\n\"godaddy\",\n\"gold\",\n\"goldpoint\",\n\"golf\",\n\"goo\",\n\"goodyear\",\n\"goog\",\n\"google\",\n\"gop\",\n\"got\",\n\"grainger\",\n\"graphics\",\n\"gratis\",\n\"green\",\n\"gripe\",\n\"grocery\",\n\"group\",\n\"guardian\",\n\"gucci\",\n\"guge\",\n\"guide\",\n\"guitars\",\n\"guru\",\n\"hair\",\n\"hamburg\",\n\"hangout\",\n\"haus\",\n\"hbo\",\n\"hdfc\",\n\"hdfcbank\",\n\"health\",\n\"healthcare\",\n\"help\",\n\"helsinki\",\n\"here\",\n\"hermes\",\n\"hgtv\",\n\"hiphop\",\n\"hisamitsu\",\n\"hitachi\",\n\"hiv\",\n\"hkt\",\n\"hockey\",\n\"holdings\",\n\"holiday\",\n\"homedepot\",\n\"homegoods\",\n\"homes\",\n\"homesense\",\n\"honda\",\n\"horse\",\n\"hospital\",\n\"host\",\n\"hosting\",\n\"hot\",\n\"hoteles\",\n\"hotels\",\n\"hotmail\",\n\"house\",\n\"how\",\n\"hsbc\",\n\"hughes\",\n\"hyatt\",\n\"hyundai\",\n\"ibm\",\n\"icbc\",\n\"ice\",\n\"icu\",\n\"ieee\",\n\"ifm\",\n\"ikano\",\n\"imamat\",\n\"imdb\",\n\"immo\",\n\"immobilien\",\n\"inc\",\n\"industries\",\n\"infiniti\",\n\"ing\",\n\"ink\",\n\"institute\",\n\"insurance\",\n\"insure\",\n\"intel\",\n\"international\",\n\"intuit\",\n\"investments\",\n\"ipiranga\",\n\"irish\",\n\"ismaili\",\n\"ist\",\n\"istanbul\",\n\"itau\",\n\"itv\",\n\"iveco\",\n\"jaguar\",\n\"java\",\n\"jcb\",\n\"jcp\",\n\"jeep\",\n\"jetzt\",\n\"jewelry\",\n\"jio\",\n\"jll\",\n\"jmp\",\n\"jnj\",\n\"joburg\",\n\"jot\",\n\"joy\",\n\"jpmorgan\",\n\"jprs\",\n\"juegos\",\n\"juniper\",\n\"kaufen\",\n\"kddi\",\n\"kerryhotels\",\n\"kerrylogistics\",\n\"kerryproperties\",\n\"kfh\",\n\"kia\",\n\"kim\",\n\"kinder\",\n\"kindle\",\n\"kitchen\",\n\"kiwi\",\n\"koeln\",\n\"komatsu\",\n\"kosher\",\n\"kpmg\",\n\"kpn\",\n\"krd\",\n\"kred\",\n\"kuokgroup\",\n\"kyoto\",\n\"lacaixa\",\n\"lamborghini\",\n\"lamer\",\n\"lancaster\",\n\"lancia\",\n\"land\",\n\"landrover\",\n\"lanxess\",\n\"lasalle\",\n\"lat\",\n\"latino\",\n\"latrobe\",\n\"law\",\n\"lawyer\",\n\"lds\",\n\"lease\",\n\"leclerc\",\n\"lefrak\",\n\"legal\",\n\"lego\",\n\"lexus\",\n\"lgbt\",\n\"lidl\",\n\"life\",\n\"lifeinsurance\",\n\"lifestyle\",\n\"lighting\",\n\"like\",\n\"lilly\",\n\"limited\",\n\"limo\",\n\"lincoln\",\n\"linde\",\n\"link\",\n\"lipsy\",\n\"live\",\n\"living\",\n\"lixil\",\n\"llc\",\n\"llp\",\n\"loan\",\n\"loans\",\n\"locker\",\n\"locus\",\n\"loft\",\n\"lol\",\n\"london\",\n\"lotte\",\n\"lotto\",\n\"love\",\n\"lpl\",\n\"lplfinancial\",\n\"ltd\",\n\"ltda\",\n\"lundbeck\",\n\"lupin\",\n\"luxe\",\n\"luxury\",\n\"macys\",\n\"madrid\",\n\"maif\",\n\"maison\",\n\"makeup\",\n\"man\",\n\"management\",\n\"mango\",\n\"map\",\n\"market\",\n\"marketing\",\n\"markets\",\n\"marriott\",\n\"marshalls\",\n\"maserati\",\n\"mattel\",\n\"mba\",\n\"mckinsey\",\n\"med\",\n\"media\",\n\"meet\",\n\"melbourne\",\n\"meme\",\n\"memorial\",\n\"men\",\n\"menu\",\n\"merckmsd\",\n\"metlife\",\n\"miami\",\n\"microsoft\",\n\"mini\",\n\"mint\",\n\"mit\",\n\"mitsubishi\",\n\"mlb\",\n\"mls\",\n\"mma\",\n\"mobile\",\n\"moda\",\n\"moe\",\n\"moi\",\n\"mom\",\n\"monash\",\n\"money\",\n\"monster\",\n\"mormon\",\n\"mortgage\",\n\"moscow\",\n\"moto\",\n\"motorcycles\",\n\"mov\",\n\"movie\",\n\"msd\",\n\"mtn\",\n\"mtr\",\n\"mutual\",\n\"nab\",\n\"nadex\",\n\"nagoya\",\n\"nationwide\",\n\"natura\",\n\"navy\",\n\"nba\",\n\"nec\",\n\"netbank\",\n\"netflix\",\n\"network\",\n\"neustar\",\n\"new\",\n\"newholland\",\n\"news\",\n\"next\",\n\"nextdirect\",\n\"nexus\",\n\"nfl\",\n\"ngo\",\n\"nhk\",\n\"nico\",\n\"nike\",\n\"nikon\",\n\"ninja\",\n\"nissan\",\n\"nissay\",\n\"nokia\",\n\"northwesternmutual\",\n\"norton\",\n\"now\",\n\"nowruz\",\n\"nowtv\",\n\"nra\",\n\"nrw\",\n\"ntt\",\n\"nyc\",\n\"obi\",\n\"observer\",\n\"off\",\n\"office\",\n\"okinawa\",\n\"olayan\",\n\"olayangroup\",\n\"oldnavy\",\n\"ollo\",\n\"omega\",\n\"one\",\n\"ong\",\n\"onl\",\n\"online\",\n\"onyourside\",\n\"ooo\",\n\"open\",\n\"oracle\",\n\"orange\",\n\"organic\",\n\"origins\",\n\"osaka\",\n\"otsuka\",\n\"ott\",\n\"ovh\",\n\"page\",\n\"panasonic\",\n\"paris\",\n\"pars\",\n\"partners\",\n\"parts\",\n\"party\",\n\"passagens\",\n\"pay\",\n\"pccw\",\n\"pet\",\n\"pfizer\",\n\"pharmacy\",\n\"phd\",\n\"philips\",\n\"phone\",\n\"photo\",\n\"photography\",\n\"photos\",\n\"physio\",\n\"pics\",\n\"pictet\",\n\"pictures\",\n\"pid\",\n\"pin\",\n\"ping\",\n\"pink\",\n\"pioneer\",\n\"pizza\",\n\"place\",\n\"play\",\n\"playstation\",\n\"plumbing\",\n\"plus\",\n\"pnc\",\n\"pohl\",\n\"poker\",\n\"politie\",\n\"porn\",\n\"pramerica\",\n\"praxi\",\n\"press\",\n\"prime\",\n\"prod\",\n\"productions\",\n\"prof\",\n\"progressive\",\n\"promo\",\n\"properties\",\n\"property\",\n\"protection\",\n\"pru\",\n\"prudential\",\n\"pub\",\n\"pwc\",\n\"qpon\",\n\"quebec\",\n\"quest\",\n\"qvc\",\n\"racing\",\n\"radio\",\n\"raid\",\n\"read\",\n\"realestate\",\n\"realtor\",\n\"realty\",\n\"recipes\",\n\"red\",\n\"redstone\",\n\"redumbrella\",\n\"rehab\",\n\"reise\",\n\"reisen\",\n\"reit\",\n\"reliance\",\n\"ren\",\n\"rent\",\n\"rentals\",\n\"repair\",\n\"report\",\n\"republican\",\n\"rest\",\n\"restaurant\",\n\"review\",\n\"reviews\",\n\"rexroth\",\n\"rich\",\n\"richardli\",\n\"ricoh\",\n\"rightathome\",\n\"ril\",\n\"rio\",\n\"rip\",\n\"rmit\",\n\"rocher\",\n\"rocks\",\n\"rodeo\",\n\"rogers\",\n\"room\",\n\"rsvp\",\n\"rugby\",\n\"ruhr\",\n\"run\",\n\"rwe\",\n\"ryukyu\",\n\"saarland\",\n\"safe\",\n\"safety\",\n\"sakura\",\n\"sale\",\n\"salon\",\n\"samsclub\",\n\"samsung\",\n\"sandvik\",\n\"sandvikcoromant\",\n\"sanofi\",\n\"sap\",\n\"sarl\",\n\"sas\",\n\"save\",\n\"saxo\",\n\"sbi\",\n\"sbs\",\n\"sca\",\n\"scb\",\n\"schaeffler\",\n\"schmidt\",\n\"scholarships\",\n\"school\",\n\"schule\",\n\"schwarz\",\n\"science\",\n\"scjohnson\",\n\"scor\",\n\"scot\",\n\"search\",\n\"seat\",\n\"secure\",\n\"security\",\n\"seek\",\n\"select\",\n\"sener\",\n\"services\",\n\"ses\",\n\"seven\",\n\"sew\",\n\"sex\",\n\"sexy\",\n\"sfr\",\n\"shangrila\",\n\"sharp\",\n\"shaw\",\n\"shell\",\n\"shia\",\n\"shiksha\",\n\"shoes\",\n\"shop\",\n\"shopping\",\n\"shouji\",\n\"show\",\n\"showtime\",\n\"shriram\",\n\"silk\",\n\"sina\",\n\"singles\",\n\"site\",\n\"ski\",\n\"skin\",\n\"sky\",\n\"skype\",\n\"sling\",\n\"smart\",\n\"smile\",\n\"sncf\",\n\"soccer\",\n\"social\",\n\"softbank\",\n\"software\",\n\"sohu\",\n\"solar\",\n\"solutions\",\n\"song\",\n\"sony\",\n\"soy\",\n\"spa\",\n\"space\",\n\"sport\",\n\"spot\",\n\"spreadbetting\",\n\"srl\",\n\"stada\",\n\"staples\",\n\"star\",\n\"statebank\",\n\"statefarm\",\n\"stc\",\n\"stcgroup\",\n\"stockholm\",\n\"storage\",\n\"store\",\n\"stream\",\n\"studio\",\n\"study\",\n\"style\",\n\"sucks\",\n\"supplies\",\n\"supply\",\n\"support\",\n\"surf\",\n\"surgery\",\n\"suzuki\",\n\"swatch\",\n\"swiftcover\",\n\"swiss\",\n\"sydney\",\n\"symantec\",\n\"systems\",\n\"tab\",\n\"taipei\",\n\"talk\",\n\"taobao\",\n\"target\",\n\"tatamotors\",\n\"tatar\",\n\"tattoo\",\n\"tax\",\n\"taxi\",\n\"tci\",\n\"tdk\",\n\"team\",\n\"tech\",\n\"technology\",\n\"temasek\",\n\"tennis\",\n\"teva\",\n\"thd\",\n\"theater\",\n\"theatre\",\n\"tiaa\",\n\"tickets\",\n\"tienda\",\n\"tiffany\",\n\"tips\",\n\"tires\",\n\"tirol\",\n\"tjmaxx\",\n\"tjx\",\n\"tkmaxx\",\n\"tmall\",\n\"today\",\n\"tokyo\",\n\"tools\",\n\"top\",\n\"toray\",\n\"toshiba\",\n\"total\",\n\"tours\",\n\"town\",\n\"toyota\",\n\"toys\",\n\"trade\",\n\"trading\",\n\"training\",\n\"travel\",\n\"travelchannel\",\n\"travelers\",\n\"travelersinsurance\",\n\"trust\",\n\"trv\",\n\"tube\",\n\"tui\",\n\"tunes\",\n\"tushu\",\n\"tvs\",\n\"ubank\",\n\"ubs\",\n\"unicom\",\n\"university\",\n\"uno\",\n\"uol\",\n\"ups\",\n\"vacations\",\n\"vana\",\n\"vanguard\",\n\"vegas\",\n\"ventures\",\n\"verisign\",\n\"versicherung\",\n\"vet\",\n\"viajes\",\n\"video\",\n\"vig\",\n\"viking\",\n\"villas\",\n\"vin\",\n\"vip\",\n\"virgin\",\n\"visa\",\n\"vision\",\n\"viva\",\n\"vivo\",\n\"vlaanderen\",\n\"vodka\",\n\"volkswagen\",\n\"volvo\",\n\"vote\",\n\"voting\",\n\"voto\",\n\"voyage\",\n\"vuelos\",\n\"wales\",\n\"walmart\",\n\"walter\",\n\"wang\",\n\"wanggou\",\n\"watch\",\n\"watches\",\n\"weather\",\n\"weatherchannel\",\n\"webcam\",\n\"weber\",\n\"website\",\n\"wed\",\n\"wedding\",\n\"weibo\",\n\"weir\",\n\"whoswho\",\n\"wien\",\n\"wiki\",\n\"williamhill\",\n\"win\",\n\"windows\",\n\"wine\",\n\"winners\",\n\"wme\",\n\"wolterskluwer\",\n\"woodside\",\n\"work\",\n\"works\",\n\"world\",\n\"wow\",\n\"wtc\",\n\"wtf\",\n\"xbox\",\n\"xerox\",\n\"xfinity\",\n\"xihuan\",\n\"xin\",\n\"कॉम\",\n\"セール\",\n\"佛山\",\n\"慈善\",\n\"集团\",\n\"在线\",\n\"大众汽车\",\n\"点看\",\n\"คอม\",\n\"八卦\",\n\"موقع\",\n\"公益\",\n\"公司\",\n\"香格里拉\",\n\"网站\",\n\"移动\",\n\"我爱你\",\n\"москва\",\n\"католик\",\n\"онлайн\",\n\"сайт\",\n\"联通\",\n\"קום\",\n\"时尚\",\n\"微博\",\n\"淡马锡\",\n\"ファッション\",\n\"орг\",\n\"नेट\",\n\"ストア\",\n\"アマゾン\",\n\"삼성\",\n\"商标\",\n\"商店\",\n\"商城\",\n\"дети\",\n\"ポイント\",\n\"新闻\",\n\"工行\",\n\"家電\",\n\"كوم\",\n\"中文网\",\n\"中信\",\n\"娱乐\",\n\"谷歌\",\n\"電訊盈科\",\n\"购物\",\n\"クラウド\",\n\"通販\",\n\"网店\",\n\"संगठन\",\n\"餐厅\",\n\"网络\",\n\"ком\",\n\"亚马逊\",\n\"诺基亚\",\n\"食品\",\n\"飞利浦\",\n\"手表\",\n\"手机\",\n\"ارامكو\",\n\"العليان\",\n\"اتصالات\",\n\"بازار\",\n\"ابوظبي\",\n\"كاثوليك\",\n\"همراه\",\n\"닷컴\",\n\"政府\",\n\"شبكة\",\n\"بيتك\",\n\"عرب\",\n\"机构\",\n\"组织机构\",\n\"健康\",\n\"招聘\",\n\"рус\",\n\"珠宝\",\n\"大拿\",\n\"みんな\",\n\"グーグル\",\n\"世界\",\n\"書籍\",\n\"网址\",\n\"닷넷\",\n\"コム\",\n\"天主教\",\n\"游戏\",\n\"vermögensberater\",\n\"vermögensberatung\",\n\"企业\",\n\"信息\",\n\"嘉里大酒店\",\n\"嘉里\",\n\"广东\",\n\"政务\",\n\"xyz\",\n\"yachts\",\n\"yahoo\",\n\"yamaxun\",\n\"yandex\",\n\"yodobashi\",\n\"yoga\",\n\"yokohama\",\n\"you\",\n\"youtube\",\n\"yun\",\n\"zappos\",\n\"zara\",\n\"zero\",\n\"zip\",\n\"zone\",\n\"zuerich\",\n\"cc.ua\",\n\"inf.ua\",\n\"ltd.ua\",\n\"adobeaemcloud.com\",\n\"adobeaemcloud.net\",\n\"*.dev.adobeaemcloud.com\",\n\"beep.pl\",\n\"barsy.ca\",\n\"*.compute.estate\",\n\"*.alces.network\",\n\"altervista.org\",\n\"alwaysdata.net\",\n\"cloudfront.net\",\n\"*.compute.amazonaws.com\",\n\"*.compute-1.amazonaws.com\",\n\"*.compute.amazonaws.com.cn\",\n\"us-east-1.amazonaws.com\",\n\"cn-north-1.eb.amazonaws.com.cn\",\n\"cn-northwest-1.eb.amazonaws.com.cn\",\n\"elasticbeanstalk.com\",\n\"ap-northeast-1.elasticbeanstalk.com\",\n\"ap-northeast-2.elasticbeanstalk.com\",\n\"ap-northeast-3.elasticbeanstalk.com\",\n\"ap-south-1.elasticbeanstalk.com\",\n\"ap-southeast-1.elasticbeanstalk.com\",\n\"ap-southeast-2.elasticbeanstalk.com\",\n\"ca-central-1.elasticbeanstalk.com\",\n\"eu-central-1.elasticbeanstalk.com\",\n\"eu-west-1.elasticbeanstalk.com\",\n\"eu-west-2.elasticbeanstalk.com\",\n\"eu-west-3.elasticbeanstalk.com\",\n\"sa-east-1.elasticbeanstalk.com\",\n\"us-east-1.elasticbeanstalk.com\",\n\"us-east-2.elasticbeanstalk.com\",\n\"us-gov-west-1.elasticbeanstalk.com\",\n\"us-west-1.elasticbeanstalk.com\",\n\"us-west-2.elasticbeanstalk.com\",\n\"*.elb.amazonaws.com\",\n\"*.elb.amazonaws.com.cn\",\n\"s3.amazonaws.com\",\n\"s3-ap-northeast-1.amazonaws.com\",\n\"s3-ap-northeast-2.amazonaws.com\",\n\"s3-ap-south-1.amazonaws.com\",\n\"s3-ap-southeast-1.amazonaws.com\",\n\"s3-ap-southeast-2.amazonaws.com\",\n\"s3-ca-central-1.amazonaws.com\",\n\"s3-eu-central-1.amazonaws.com\",\n\"s3-eu-west-1.amazonaws.com\",\n\"s3-eu-west-2.amazonaws.com\",\n\"s3-eu-west-3.amazonaws.com\",\n\"s3-external-1.amazonaws.com\",\n\"s3-fips-us-gov-west-1.amazonaws.com\",\n\"s3-sa-east-1.amazonaws.com\",\n\"s3-us-gov-west-1.amazonaws.com\",\n\"s3-us-east-2.amazonaws.com\",\n\"s3-us-west-1.amazonaws.com\",\n\"s3-us-west-2.amazonaws.com\",\n\"s3.ap-northeast-2.amazonaws.com\",\n\"s3.ap-south-1.amazonaws.com\",\n\"s3.cn-north-1.amazonaws.com.cn\",\n\"s3.ca-central-1.amazonaws.com\",\n\"s3.eu-central-1.amazonaws.com\",\n\"s3.eu-west-2.amazonaws.com\",\n\"s3.eu-west-3.amazonaws.com\",\n\"s3.us-east-2.amazonaws.com\",\n\"s3.dualstack.ap-northeast-1.amazonaws.com\",\n\"s3.dualstack.ap-northeast-2.amazonaws.com\",\n\"s3.dualstack.ap-south-1.amazonaws.com\",\n\"s3.dualstack.ap-southeast-1.amazonaws.com\",\n\"s3.dualstack.ap-southeast-2.amazonaws.com\",\n\"s3.dualstack.ca-central-1.amazonaws.com\",\n\"s3.dualstack.eu-central-1.amazonaws.com\",\n\"s3.dualstack.eu-west-1.amazonaws.com\",\n\"s3.dualstack.eu-west-2.amazonaws.com\",\n\"s3.dualstack.eu-west-3.amazonaws.com\",\n\"s3.dualstack.sa-east-1.amazonaws.com\",\n\"s3.dualstack.us-east-1.amazonaws.com\",\n\"s3.dualstack.us-east-2.amazonaws.com\",\n\"s3-website-us-east-1.amazonaws.com\",\n\"s3-website-us-west-1.amazonaws.com\",\n\"s3-website-us-west-2.amazonaws.com\",\n\"s3-website-ap-northeast-1.amazonaws.com\",\n\"s3-website-ap-southeast-1.amazonaws.com\",\n\"s3-website-ap-southeast-2.amazonaws.com\",\n\"s3-website-eu-west-1.amazonaws.com\",\n\"s3-website-sa-east-1.amazonaws.com\",\n\"s3-website.ap-northeast-2.amazonaws.com\",\n\"s3-website.ap-south-1.amazonaws.com\",\n\"s3-website.ca-central-1.amazonaws.com\",\n\"s3-website.eu-central-1.amazonaws.com\",\n\"s3-website.eu-west-2.amazonaws.com\",\n\"s3-website.eu-west-3.amazonaws.com\",\n\"s3-website.us-east-2.amazonaws.com\",\n\"amsw.nl\",\n\"t3l3p0rt.net\",\n\"tele.amune.org\",\n\"apigee.io\",\n\"on-aptible.com\",\n\"user.aseinet.ne.jp\",\n\"gv.vc\",\n\"d.gv.vc\",\n\"user.party.eus\",\n\"pimienta.org\",\n\"poivron.org\",\n\"potager.org\",\n\"sweetpepper.org\",\n\"myasustor.com\",\n\"myfritz.net\",\n\"*.awdev.ca\",\n\"*.advisor.ws\",\n\"b-data.io\",\n\"backplaneapp.io\",\n\"balena-devices.com\",\n\"app.banzaicloud.io\",\n\"betainabox.com\",\n\"bnr.la\",\n\"blackbaudcdn.net\",\n\"boomla.net\",\n\"boxfuse.io\",\n\"square7.ch\",\n\"bplaced.com\",\n\"bplaced.de\",\n\"square7.de\",\n\"bplaced.net\",\n\"square7.net\",\n\"browsersafetymark.io\",\n\"uk0.bigv.io\",\n\"dh.bytemark.co.uk\",\n\"vm.bytemark.co.uk\",\n\"mycd.eu\",\n\"carrd.co\",\n\"crd.co\",\n\"uwu.ai\",\n\"ae.org\",\n\"ar.com\",\n\"br.com\",\n\"cn.com\",\n\"com.de\",\n\"com.se\",\n\"de.com\",\n\"eu.com\",\n\"gb.com\",\n\"gb.net\",\n\"hu.com\",\n\"hu.net\",\n\"jp.net\",\n\"jpn.com\",\n\"kr.com\",\n\"mex.com\",\n\"no.com\",\n\"qc.com\",\n\"ru.com\",\n\"sa.com\",\n\"se.net\",\n\"uk.com\",\n\"uk.net\",\n\"us.com\",\n\"uy.com\",\n\"za.bz\",\n\"za.com\",\n\"africa.com\",\n\"gr.com\",\n\"in.net\",\n\"us.org\",\n\"co.com\",\n\"c.la\",\n\"certmgr.org\",\n\"xenapponazure.com\",\n\"discourse.group\",\n\"discourse.team\",\n\"virtueeldomein.nl\",\n\"cleverapps.io\",\n\"*.lcl.dev\",\n\"*.stg.dev\",\n\"c66.me\",\n\"cloud66.ws\",\n\"cloud66.zone\",\n\"jdevcloud.com\",\n\"wpdevcloud.com\",\n\"cloudaccess.host\",\n\"freesite.host\",\n\"cloudaccess.net\",\n\"cloudcontrolled.com\",\n\"cloudcontrolapp.com\",\n\"cloudera.site\",\n\"trycloudflare.com\",\n\"workers.dev\",\n\"wnext.app\",\n\"co.ca\",\n\"*.otap.co\",\n\"co.cz\",\n\"c.cdn77.org\",\n\"cdn77-ssl.net\",\n\"r.cdn77.net\",\n\"rsc.cdn77.org\",\n\"ssl.origin.cdn77-secure.org\",\n\"cloudns.asia\",\n\"cloudns.biz\",\n\"cloudns.club\",\n\"cloudns.cc\",\n\"cloudns.eu\",\n\"cloudns.in\",\n\"cloudns.info\",\n\"cloudns.org\",\n\"cloudns.pro\",\n\"cloudns.pw\",\n\"cloudns.us\",\n\"cloudeity.net\",\n\"cnpy.gdn\",\n\"co.nl\",\n\"co.no\",\n\"webhosting.be\",\n\"hosting-cluster.nl\",\n\"ac.ru\",\n\"edu.ru\",\n\"gov.ru\",\n\"int.ru\",\n\"mil.ru\",\n\"test.ru\",\n\"dyn.cosidns.de\",\n\"dynamisches-dns.de\",\n\"dnsupdater.de\",\n\"internet-dns.de\",\n\"l-o-g-i-n.de\",\n\"dynamic-dns.info\",\n\"feste-ip.net\",\n\"knx-server.net\",\n\"static-access.net\",\n\"realm.cz\",\n\"*.cryptonomic.net\",\n\"cupcake.is\",\n\"*.customer-oci.com\",\n\"*.oci.customer-oci.com\",\n\"*.ocp.customer-oci.com\",\n\"*.ocs.customer-oci.com\",\n\"cyon.link\",\n\"cyon.site\",\n\"daplie.me\",\n\"localhost.daplie.me\",\n\"dattolocal.com\",\n\"dattorelay.com\",\n\"dattoweb.com\",\n\"mydatto.com\",\n\"dattolocal.net\",\n\"mydatto.net\",\n\"biz.dk\",\n\"co.dk\",\n\"firm.dk\",\n\"reg.dk\",\n\"store.dk\",\n\"*.dapps.earth\",\n\"*.bzz.dapps.earth\",\n\"builtwithdark.com\",\n\"edgestack.me\",\n\"debian.net\",\n\"dedyn.io\",\n\"dnshome.de\",\n\"online.th\",\n\"shop.th\",\n\"drayddns.com\",\n\"dreamhosters.com\",\n\"mydrobo.com\",\n\"drud.io\",\n\"drud.us\",\n\"duckdns.org\",\n\"dy.fi\",\n\"tunk.org\",\n\"dyndns-at-home.com\",\n\"dyndns-at-work.com\",\n\"dyndns-blog.com\",\n\"dyndns-free.com\",\n\"dyndns-home.com\",\n\"dyndns-ip.com\",\n\"dyndns-mail.com\",\n\"dyndns-office.com\",\n\"dyndns-pics.com\",\n\"dyndns-remote.com\",\n\"dyndns-server.com\",\n\"dyndns-web.com\",\n\"dyndns-wiki.com\",\n\"dyndns-work.com\",\n\"dyndns.biz\",\n\"dyndns.info\",\n\"dyndns.org\",\n\"dyndns.tv\",\n\"at-band-camp.net\",\n\"ath.cx\",\n\"barrel-of-knowledge.info\",\n\"barrell-of-knowledge.info\",\n\"better-than.tv\",\n\"blogdns.com\",\n\"blogdns.net\",\n\"blogdns.org\",\n\"blogsite.org\",\n\"boldlygoingnowhere.org\",\n\"broke-it.net\",\n\"buyshouses.net\",\n\"cechire.com\",\n\"dnsalias.com\",\n\"dnsalias.net\",\n\"dnsalias.org\",\n\"dnsdojo.com\",\n\"dnsdojo.net\",\n\"dnsdojo.org\",\n\"does-it.net\",\n\"doesntexist.com\",\n\"doesntexist.org\",\n\"dontexist.com\",\n\"dontexist.net\",\n\"dontexist.org\",\n\"doomdns.com\",\n\"doomdns.org\",\n\"dvrdns.org\",\n\"dyn-o-saur.com\",\n\"dynalias.com\",\n\"dynalias.net\",\n\"dynalias.org\",\n\"dynathome.net\",\n\"dyndns.ws\",\n\"endofinternet.net\",\n\"endofinternet.org\",\n\"endoftheinternet.org\",\n\"est-a-la-maison.com\",\n\"est-a-la-masion.com\",\n\"est-le-patron.com\",\n\"est-mon-blogueur.com\",\n\"for-better.biz\",\n\"for-more.biz\",\n\"for-our.info\",\n\"for-some.biz\",\n\"for-the.biz\",\n\"forgot.her.name\",\n\"forgot.his.name\",\n\"from-ak.com\",\n\"from-al.com\",\n\"from-ar.com\",\n\"from-az.net\",\n\"from-ca.com\",\n\"from-co.net\",\n\"from-ct.com\",\n\"from-dc.com\",\n\"from-de.com\",\n\"from-fl.com\",\n\"from-ga.com\",\n\"from-hi.com\",\n\"from-ia.com\",\n\"from-id.com\",\n\"from-il.com\",\n\"from-in.com\",\n\"from-ks.com\",\n\"from-ky.com\",\n\"from-la.net\",\n\"from-ma.com\",\n\"from-md.com\",\n\"from-me.org\",\n\"from-mi.com\",\n\"from-mn.com\",\n\"from-mo.com\",\n\"from-ms.com\",\n\"from-mt.com\",\n\"from-nc.com\",\n\"from-nd.com\",\n\"from-ne.com\",\n\"from-nh.com\",\n\"from-nj.com\",\n\"from-nm.com\",\n\"from-nv.com\",\n\"from-ny.net\",\n\"from-oh.com\",\n\"from-ok.com\",\n\"from-or.com\",\n\"from-pa.com\",\n\"from-pr.com\",\n\"from-ri.com\",\n\"from-sc.com\",\n\"from-sd.com\",\n\"from-tn.com\",\n\"from-tx.com\",\n\"from-ut.com\",\n\"from-va.com\",\n\"from-vt.com\",\n\"from-wa.com\",\n\"from-wi.com\",\n\"from-wv.com\",\n\"from-wy.com\",\n\"ftpaccess.cc\",\n\"fuettertdasnetz.de\",\n\"game-host.org\",\n\"game-server.cc\",\n\"getmyip.com\",\n\"gets-it.net\",\n\"go.dyndns.org\",\n\"gotdns.com\",\n\"gotdns.org\",\n\"groks-the.info\",\n\"groks-this.info\",\n\"ham-radio-op.net\",\n\"here-for-more.info\",\n\"hobby-site.com\",\n\"hobby-site.org\",\n\"home.dyndns.org\",\n\"homedns.org\",\n\"homeftp.net\",\n\"homeftp.org\",\n\"homeip.net\",\n\"homelinux.com\",\n\"homelinux.net\",\n\"homelinux.org\",\n\"homeunix.com\",\n\"homeunix.net\",\n\"homeunix.org\",\n\"iamallama.com\",\n\"in-the-band.net\",\n\"is-a-anarchist.com\",\n\"is-a-blogger.com\",\n\"is-a-bookkeeper.com\",\n\"is-a-bruinsfan.org\",\n\"is-a-bulls-fan.com\",\n\"is-a-candidate.org\",\n\"is-a-caterer.com\",\n\"is-a-celticsfan.org\",\n\"is-a-chef.com\",\n\"is-a-chef.net\",\n\"is-a-chef.org\",\n\"is-a-conservative.com\",\n\"is-a-cpa.com\",\n\"is-a-cubicle-slave.com\",\n\"is-a-democrat.com\",\n\"is-a-designer.com\",\n\"is-a-doctor.com\",\n\"is-a-financialadvisor.com\",\n\"is-a-geek.com\",\n\"is-a-geek.net\",\n\"is-a-geek.org\",\n\"is-a-green.com\",\n\"is-a-guru.com\",\n\"is-a-hard-worker.com\",\n\"is-a-hunter.com\",\n\"is-a-knight.org\",\n\"is-a-landscaper.com\",\n\"is-a-lawyer.com\",\n\"is-a-liberal.com\",\n\"is-a-libertarian.com\",\n\"is-a-linux-user.org\",\n\"is-a-llama.com\",\n\"is-a-musician.com\",\n\"is-a-nascarfan.com\",\n\"is-a-nurse.com\",\n\"is-a-painter.com\",\n\"is-a-patsfan.org\",\n\"is-a-personaltrainer.com\",\n\"is-a-photographer.com\",\n\"is-a-player.com\",\n\"is-a-republican.com\",\n\"is-a-rockstar.com\",\n\"is-a-socialist.com\",\n\"is-a-soxfan.org\",\n\"is-a-student.com\",\n\"is-a-teacher.com\",\n\"is-a-techie.com\",\n\"is-a-therapist.com\",\n\"is-an-accountant.com\",\n\"is-an-actor.com\",\n\"is-an-actress.com\",\n\"is-an-anarchist.com\",\n\"is-an-artist.com\",\n\"is-an-engineer.com\",\n\"is-an-entertainer.com\",\n\"is-by.us\",\n\"is-certified.com\",\n\"is-found.org\",\n\"is-gone.com\",\n\"is-into-anime.com\",\n\"is-into-cars.com\",\n\"is-into-cartoons.com\",\n\"is-into-games.com\",\n\"is-leet.com\",\n\"is-lost.org\",\n\"is-not-certified.com\",\n\"is-saved.org\",\n\"is-slick.com\",\n\"is-uberleet.com\",\n\"is-very-bad.org\",\n\"is-very-evil.org\",\n\"is-very-good.org\",\n\"is-very-nice.org\",\n\"is-very-sweet.org\",\n\"is-with-theband.com\",\n\"isa-geek.com\",\n\"isa-geek.net\",\n\"isa-geek.org\",\n\"isa-hockeynut.com\",\n\"issmarterthanyou.com\",\n\"isteingeek.de\",\n\"istmein.de\",\n\"kicks-ass.net\",\n\"kicks-ass.org\",\n\"knowsitall.info\",\n\"land-4-sale.us\",\n\"lebtimnetz.de\",\n\"leitungsen.de\",\n\"likes-pie.com\",\n\"likescandy.com\",\n\"merseine.nu\",\n\"mine.nu\",\n\"misconfused.org\",\n\"mypets.ws\",\n\"myphotos.cc\",\n\"neat-url.com\",\n\"office-on-the.net\",\n\"on-the-web.tv\",\n\"podzone.net\",\n\"podzone.org\",\n\"readmyblog.org\",\n\"saves-the-whales.com\",\n\"scrapper-site.net\",\n\"scrapping.cc\",\n\"selfip.biz\",\n\"selfip.com\",\n\"selfip.info\",\n\"selfip.net\",\n\"selfip.org\",\n\"sells-for-less.com\",\n\"sells-for-u.com\",\n\"sells-it.net\",\n\"sellsyourhome.org\",\n\"servebbs.com\",\n\"servebbs.net\",\n\"servebbs.org\",\n\"serveftp.net\",\n\"serveftp.org\",\n\"servegame.org\",\n\"shacknet.nu\",\n\"simple-url.com\",\n\"space-to-rent.com\",\n\"stuff-4-sale.org\",\n\"stuff-4-sale.us\",\n\"teaches-yoga.com\",\n\"thruhere.net\",\n\"traeumtgerade.de\",\n\"webhop.biz\",\n\"webhop.info\",\n\"webhop.net\",\n\"webhop.org\",\n\"worse-than.tv\",\n\"writesthisblog.com\",\n\"ddnss.de\",\n\"dyn.ddnss.de\",\n\"dyndns.ddnss.de\",\n\"dyndns1.de\",\n\"dyn-ip24.de\",\n\"home-webserver.de\",\n\"dyn.home-webserver.de\",\n\"myhome-server.de\",\n\"ddnss.org\",\n\"definima.net\",\n\"definima.io\",\n\"bci.dnstrace.pro\",\n\"ddnsfree.com\",\n\"ddnsgeek.com\",\n\"giize.com\",\n\"gleeze.com\",\n\"kozow.com\",\n\"loseyourip.com\",\n\"ooguy.com\",\n\"theworkpc.com\",\n\"casacam.net\",\n\"dynu.net\",\n\"accesscam.org\",\n\"camdvr.org\",\n\"freeddns.org\",\n\"mywire.org\",\n\"webredirect.org\",\n\"myddns.rocks\",\n\"blogsite.xyz\",\n\"dynv6.net\",\n\"e4.cz\",\n\"en-root.fr\",\n\"mytuleap.com\",\n\"onred.one\",\n\"staging.onred.one\",\n\"enonic.io\",\n\"customer.enonic.io\",\n\"eu.org\",\n\"al.eu.org\",\n\"asso.eu.org\",\n\"at.eu.org\",\n\"au.eu.org\",\n\"be.eu.org\",\n\"bg.eu.org\",\n\"ca.eu.org\",\n\"cd.eu.org\",\n\"ch.eu.org\",\n\"cn.eu.org\",\n\"cy.eu.org\",\n\"cz.eu.org\",\n\"de.eu.org\",\n\"dk.eu.org\",\n\"edu.eu.org\",\n\"ee.eu.org\",\n\"es.eu.org\",\n\"fi.eu.org\",\n\"fr.eu.org\",\n\"gr.eu.org\",\n\"hr.eu.org\",\n\"hu.eu.org\",\n\"ie.eu.org\",\n\"il.eu.org\",\n\"in.eu.org\",\n\"int.eu.org\",\n\"is.eu.org\",\n\"it.eu.org\",\n\"jp.eu.org\",\n\"kr.eu.org\",\n\"lt.eu.org\",\n\"lu.eu.org\",\n\"lv.eu.org\",\n\"mc.eu.org\",\n\"me.eu.org\",\n\"mk.eu.org\",\n\"mt.eu.org\",\n\"my.eu.org\",\n\"net.eu.org\",\n\"ng.eu.org\",\n\"nl.eu.org\",\n\"no.eu.org\",\n\"nz.eu.org\",\n\"paris.eu.org\",\n\"pl.eu.org\",\n\"pt.eu.org\",\n\"q-a.eu.org\",\n\"ro.eu.org\",\n\"ru.eu.org\",\n\"se.eu.org\",\n\"si.eu.org\",\n\"sk.eu.org\",\n\"tr.eu.org\",\n\"uk.eu.org\",\n\"us.eu.org\",\n\"eu-1.evennode.com\",\n\"eu-2.evennode.com\",\n\"eu-3.evennode.com\",\n\"eu-4.evennode.com\",\n\"us-1.evennode.com\",\n\"us-2.evennode.com\",\n\"us-3.evennode.com\",\n\"us-4.evennode.com\",\n\"twmail.cc\",\n\"twmail.net\",\n\"twmail.org\",\n\"mymailer.com.tw\",\n\"url.tw\",\n\"apps.fbsbx.com\",\n\"ru.net\",\n\"adygeya.ru\",\n\"bashkiria.ru\",\n\"bir.ru\",\n\"cbg.ru\",\n\"com.ru\",\n\"dagestan.ru\",\n\"grozny.ru\",\n\"kalmykia.ru\",\n\"kustanai.ru\",\n\"marine.ru\",\n\"mordovia.ru\",\n\"msk.ru\",\n\"mytis.ru\",\n\"nalchik.ru\",\n\"nov.ru\",\n\"pyatigorsk.ru\",\n\"spb.ru\",\n\"vladikavkaz.ru\",\n\"vladimir.ru\",\n\"abkhazia.su\",\n\"adygeya.su\",\n\"aktyubinsk.su\",\n\"arkhangelsk.su\",\n\"armenia.su\",\n\"ashgabad.su\",\n\"azerbaijan.su\",\n\"balashov.su\",\n\"bashkiria.su\",\n\"bryansk.su\",\n\"bukhara.su\",\n\"chimkent.su\",\n\"dagestan.su\",\n\"east-kazakhstan.su\",\n\"exnet.su\",\n\"georgia.su\",\n\"grozny.su\",\n\"ivanovo.su\",\n\"jambyl.su\",\n\"kalmykia.su\",\n\"kaluga.su\",\n\"karacol.su\",\n\"karaganda.su\",\n\"karelia.su\",\n\"khakassia.su\",\n\"krasnodar.su\",\n\"kurgan.su\",\n\"kustanai.su\",\n\"lenug.su\",\n\"mangyshlak.su\",\n\"mordovia.su\",\n\"msk.su\",\n\"murmansk.su\",\n\"nalchik.su\",\n\"navoi.su\",\n\"north-kazakhstan.su\",\n\"nov.su\",\n\"obninsk.su\",\n\"penza.su\",\n\"pokrovsk.su\",\n\"sochi.su\",\n\"spb.su\",\n\"tashkent.su\",\n\"termez.su\",\n\"togliatti.su\",\n\"troitsk.su\",\n\"tselinograd.su\",\n\"tula.su\",\n\"tuva.su\",\n\"vladikavkaz.su\",\n\"vladimir.su\",\n\"vologda.su\",\n\"channelsdvr.net\",\n\"u.channelsdvr.net\",\n\"fastly-terrarium.com\",\n\"fastlylb.net\",\n\"map.fastlylb.net\",\n\"freetls.fastly.net\",\n\"map.fastly.net\",\n\"a.prod.fastly.net\",\n\"global.prod.fastly.net\",\n\"a.ssl.fastly.net\",\n\"b.ssl.fastly.net\",\n\"global.ssl.fastly.net\",\n\"fastpanel.direct\",\n\"fastvps-server.com\",\n\"fhapp.xyz\",\n\"fedorainfracloud.org\",\n\"fedorapeople.org\",\n\"cloud.fedoraproject.org\",\n\"app.os.fedoraproject.org\",\n\"app.os.stg.fedoraproject.org\",\n\"mydobiss.com\",\n\"filegear.me\",\n\"filegear-au.me\",\n\"filegear-de.me\",\n\"filegear-gb.me\",\n\"filegear-ie.me\",\n\"filegear-jp.me\",\n\"filegear-sg.me\",\n\"firebaseapp.com\",\n\"flynnhub.com\",\n\"flynnhosting.net\",\n\"0e.vc\",\n\"freebox-os.com\",\n\"freeboxos.com\",\n\"fbx-os.fr\",\n\"fbxos.fr\",\n\"freebox-os.fr\",\n\"freeboxos.fr\",\n\"freedesktop.org\",\n\"*.futurecms.at\",\n\"*.ex.futurecms.at\",\n\"*.in.futurecms.at\",\n\"futurehosting.at\",\n\"futuremailing.at\",\n\"*.ex.ortsinfo.at\",\n\"*.kunden.ortsinfo.at\",\n\"*.statics.cloud\",\n\"service.gov.uk\",\n\"gehirn.ne.jp\",\n\"usercontent.jp\",\n\"gentapps.com\",\n\"lab.ms\",\n\"github.io\",\n\"githubusercontent.com\",\n\"gitlab.io\",\n\"glitch.me\",\n\"lolipop.io\",\n\"cloudapps.digital\",\n\"london.cloudapps.digital\",\n\"homeoffice.gov.uk\",\n\"ro.im\",\n\"shop.ro\",\n\"goip.de\",\n\"run.app\",\n\"a.run.app\",\n\"web.app\",\n\"*.0emm.com\",\n\"appspot.com\",\n\"*.r.appspot.com\",\n\"blogspot.ae\",\n\"blogspot.al\",\n\"blogspot.am\",\n\"blogspot.ba\",\n\"blogspot.be\",\n\"blogspot.bg\",\n\"blogspot.bj\",\n\"blogspot.ca\",\n\"blogspot.cf\",\n\"blogspot.ch\",\n\"blogspot.cl\",\n\"blogspot.co.at\",\n\"blogspot.co.id\",\n\"blogspot.co.il\",\n\"blogspot.co.ke\",\n\"blogspot.co.nz\",\n\"blogspot.co.uk\",\n\"blogspot.co.za\",\n\"blogspot.com\",\n\"blogspot.com.ar\",\n\"blogspot.com.au\",\n\"blogspot.com.br\",\n\"blogspot.com.by\",\n\"blogspot.com.co\",\n\"blogspot.com.cy\",\n\"blogspot.com.ee\",\n\"blogspot.com.eg\",\n\"blogspot.com.es\",\n\"blogspot.com.mt\",\n\"blogspot.com.ng\",\n\"blogspot.com.tr\",\n\"blogspot.com.uy\",\n\"blogspot.cv\",\n\"blogspot.cz\",\n\"blogspot.de\",\n\"blogspot.dk\",\n\"blogspot.fi\",\n\"blogspot.fr\",\n\"blogspot.gr\",\n\"blogspot.hk\",\n\"blogspot.hr\",\n\"blogspot.hu\",\n\"blogspot.ie\",\n\"blogspot.in\",\n\"blogspot.is\",\n\"blogspot.it\",\n\"blogspot.jp\",\n\"blogspot.kr\",\n\"blogspot.li\",\n\"blogspot.lt\",\n\"blogspot.lu\",\n\"blogspot.md\",\n\"blogspot.mk\",\n\"blogspot.mr\",\n\"blogspot.mx\",\n\"blogspot.my\",\n\"blogspot.nl\",\n\"blogspot.no\",\n\"blogspot.pe\",\n\"blogspot.pt\",\n\"blogspot.qa\",\n\"blogspot.re\",\n\"blogspot.ro\",\n\"blogspot.rs\",\n\"blogspot.ru\",\n\"blogspot.se\",\n\"blogspot.sg\",\n\"blogspot.si\",\n\"blogspot.sk\",\n\"blogspot.sn\",\n\"blogspot.td\",\n\"blogspot.tw\",\n\"blogspot.ug\",\n\"blogspot.vn\",\n\"cloudfunctions.net\",\n\"cloud.goog\",\n\"codespot.com\",\n\"googleapis.com\",\n\"googlecode.com\",\n\"pagespeedmobilizer.com\",\n\"publishproxy.com\",\n\"withgoogle.com\",\n\"withyoutube.com\",\n\"awsmppl.com\",\n\"fin.ci\",\n\"free.hr\",\n\"caa.li\",\n\"ua.rs\",\n\"conf.se\",\n\"hs.zone\",\n\"hs.run\",\n\"hashbang.sh\",\n\"hasura.app\",\n\"hasura-app.io\",\n\"hepforge.org\",\n\"herokuapp.com\",\n\"herokussl.com\",\n\"myravendb.com\",\n\"ravendb.community\",\n\"ravendb.me\",\n\"development.run\",\n\"ravendb.run\",\n\"bpl.biz\",\n\"orx.biz\",\n\"ng.city\",\n\"biz.gl\",\n\"ng.ink\",\n\"col.ng\",\n\"firm.ng\",\n\"gen.ng\",\n\"ltd.ng\",\n\"ngo.ng\",\n\"ng.school\",\n\"sch.so\",\n\"häkkinen.fi\",\n\"*.moonscale.io\",\n\"moonscale.net\",\n\"iki.fi\",\n\"dyn-berlin.de\",\n\"in-berlin.de\",\n\"in-brb.de\",\n\"in-butter.de\",\n\"in-dsl.de\",\n\"in-dsl.net\",\n\"in-dsl.org\",\n\"in-vpn.de\",\n\"in-vpn.net\",\n\"in-vpn.org\",\n\"biz.at\",\n\"info.at\",\n\"info.cx\",\n\"ac.leg.br\",\n\"al.leg.br\",\n\"am.leg.br\",\n\"ap.leg.br\",\n\"ba.leg.br\",\n\"ce.leg.br\",\n\"df.leg.br\",\n\"es.leg.br\",\n\"go.leg.br\",\n\"ma.leg.br\",\n\"mg.leg.br\",\n\"ms.leg.br\",\n\"mt.leg.br\",\n\"pa.leg.br\",\n\"pb.leg.br\",\n\"pe.leg.br\",\n\"pi.leg.br\",\n\"pr.leg.br\",\n\"rj.leg.br\",\n\"rn.leg.br\",\n\"ro.leg.br\",\n\"rr.leg.br\",\n\"rs.leg.br\",\n\"sc.leg.br\",\n\"se.leg.br\",\n\"sp.leg.br\",\n\"to.leg.br\",\n\"pixolino.com\",\n\"ipifony.net\",\n\"mein-iserv.de\",\n\"test-iserv.de\",\n\"iserv.dev\",\n\"iobb.net\",\n\"myjino.ru\",\n\"*.hosting.myjino.ru\",\n\"*.landing.myjino.ru\",\n\"*.spectrum.myjino.ru\",\n\"*.vps.myjino.ru\",\n\"*.triton.zone\",\n\"*.cns.joyent.com\",\n\"js.org\",\n\"kaas.gg\",\n\"khplay.nl\",\n\"keymachine.de\",\n\"kinghost.net\",\n\"uni5.net\",\n\"knightpoint.systems\",\n\"oya.to\",\n\"co.krd\",\n\"edu.krd\",\n\"git-repos.de\",\n\"lcube-server.de\",\n\"svn-repos.de\",\n\"leadpages.co\",\n\"lpages.co\",\n\"lpusercontent.com\",\n\"lelux.site\",\n\"co.business\",\n\"co.education\",\n\"co.events\",\n\"co.financial\",\n\"co.network\",\n\"co.place\",\n\"co.technology\",\n\"app.lmpm.com\",\n\"linkitools.space\",\n\"linkyard.cloud\",\n\"linkyard-cloud.ch\",\n\"members.linode.com\",\n\"nodebalancer.linode.com\",\n\"we.bs\",\n\"loginline.app\",\n\"loginline.dev\",\n\"loginline.io\",\n\"loginline.services\",\n\"loginline.site\",\n\"krasnik.pl\",\n\"leczna.pl\",\n\"lubartow.pl\",\n\"lublin.pl\",\n\"poniatowa.pl\",\n\"swidnik.pl\",\n\"uklugs.org\",\n\"glug.org.uk\",\n\"lug.org.uk\",\n\"lugs.org.uk\",\n\"barsy.bg\",\n\"barsy.co.uk\",\n\"barsyonline.co.uk\",\n\"barsycenter.com\",\n\"barsyonline.com\",\n\"barsy.club\",\n\"barsy.de\",\n\"barsy.eu\",\n\"barsy.in\",\n\"barsy.info\",\n\"barsy.io\",\n\"barsy.me\",\n\"barsy.menu\",\n\"barsy.mobi\",\n\"barsy.net\",\n\"barsy.online\",\n\"barsy.org\",\n\"barsy.pro\",\n\"barsy.pub\",\n\"barsy.shop\",\n\"barsy.site\",\n\"barsy.support\",\n\"barsy.uk\",\n\"*.magentosite.cloud\",\n\"mayfirst.info\",\n\"mayfirst.org\",\n\"hb.cldmail.ru\",\n\"miniserver.com\",\n\"memset.net\",\n\"cloud.metacentrum.cz\",\n\"custom.metacentrum.cz\",\n\"flt.cloud.muni.cz\",\n\"usr.cloud.muni.cz\",\n\"meteorapp.com\",\n\"eu.meteorapp.com\",\n\"co.pl\",\n\"azurecontainer.io\",\n\"azurewebsites.net\",\n\"azure-mobile.net\",\n\"cloudapp.net\",\n\"mozilla-iot.org\",\n\"bmoattachments.org\",\n\"net.ru\",\n\"org.ru\",\n\"pp.ru\",\n\"ui.nabu.casa\",\n\"pony.club\",\n\"of.fashion\",\n\"on.fashion\",\n\"of.football\",\n\"in.london\",\n\"of.london\",\n\"for.men\",\n\"and.mom\",\n\"for.mom\",\n\"for.one\",\n\"for.sale\",\n\"of.work\",\n\"to.work\",\n\"nctu.me\",\n\"bitballoon.com\",\n\"netlify.com\",\n\"4u.com\",\n\"ngrok.io\",\n\"nh-serv.co.uk\",\n\"nfshost.com\",\n\"dnsking.ch\",\n\"mypi.co\",\n\"n4t.co\",\n\"001www.com\",\n\"ddnslive.com\",\n\"myiphost.com\",\n\"forumz.info\",\n\"16-b.it\",\n\"32-b.it\",\n\"64-b.it\",\n\"soundcast.me\",\n\"tcp4.me\",\n\"dnsup.net\",\n\"hicam.net\",\n\"now-dns.net\",\n\"ownip.net\",\n\"vpndns.net\",\n\"dynserv.org\",\n\"now-dns.org\",\n\"x443.pw\",\n\"now-dns.top\",\n\"ntdll.top\",\n\"freeddns.us\",\n\"crafting.xyz\",\n\"zapto.xyz\",\n\"nsupdate.info\",\n\"nerdpol.ovh\",\n\"blogsyte.com\",\n\"brasilia.me\",\n\"cable-modem.org\",\n\"ciscofreak.com\",\n\"collegefan.org\",\n\"couchpotatofries.org\",\n\"damnserver.com\",\n\"ddns.me\",\n\"ditchyourip.com\",\n\"dnsfor.me\",\n\"dnsiskinky.com\",\n\"dvrcam.info\",\n\"dynns.com\",\n\"eating-organic.net\",\n\"fantasyleague.cc\",\n\"geekgalaxy.com\",\n\"golffan.us\",\n\"health-carereform.com\",\n\"homesecuritymac.com\",\n\"homesecuritypc.com\",\n\"hopto.me\",\n\"ilovecollege.info\",\n\"loginto.me\",\n\"mlbfan.org\",\n\"mmafan.biz\",\n\"myactivedirectory.com\",\n\"mydissent.net\",\n\"myeffect.net\",\n\"mymediapc.net\",\n\"mypsx.net\",\n\"mysecuritycamera.com\",\n\"mysecuritycamera.net\",\n\"mysecuritycamera.org\",\n\"net-freaks.com\",\n\"nflfan.org\",\n\"nhlfan.net\",\n\"no-ip.ca\",\n\"no-ip.co.uk\",\n\"no-ip.net\",\n\"noip.us\",\n\"onthewifi.com\",\n\"pgafan.net\",\n\"point2this.com\",\n\"pointto.us\",\n\"privatizehealthinsurance.net\",\n\"quicksytes.com\",\n\"read-books.org\",\n\"securitytactics.com\",\n\"serveexchange.com\",\n\"servehumour.com\",\n\"servep2p.com\",\n\"servesarcasm.com\",\n\"stufftoread.com\",\n\"ufcfan.org\",\n\"unusualperson.com\",\n\"workisboring.com\",\n\"3utilities.com\",\n\"bounceme.net\",\n\"ddns.net\",\n\"ddnsking.com\",\n\"gotdns.ch\",\n\"hopto.org\",\n\"myftp.biz\",\n\"myftp.org\",\n\"myvnc.com\",\n\"no-ip.biz\",\n\"no-ip.info\",\n\"no-ip.org\",\n\"noip.me\",\n\"redirectme.net\",\n\"servebeer.com\",\n\"serveblog.net\",\n\"servecounterstrike.com\",\n\"serveftp.com\",\n\"servegame.com\",\n\"servehalflife.com\",\n\"servehttp.com\",\n\"serveirc.com\",\n\"serveminecraft.net\",\n\"servemp3.com\",\n\"servepics.com\",\n\"servequake.com\",\n\"sytes.net\",\n\"webhop.me\",\n\"zapto.org\",\n\"stage.nodeart.io\",\n\"nodum.co\",\n\"nodum.io\",\n\"pcloud.host\",\n\"nyc.mn\",\n\"nom.ae\",\n\"nom.af\",\n\"nom.ai\",\n\"nom.al\",\n\"nym.by\",\n\"nom.bz\",\n\"nym.bz\",\n\"nom.cl\",\n\"nym.ec\",\n\"nom.gd\",\n\"nom.ge\",\n\"nom.gl\",\n\"nym.gr\",\n\"nom.gt\",\n\"nym.gy\",\n\"nym.hk\",\n\"nom.hn\",\n\"nym.ie\",\n\"nom.im\",\n\"nom.ke\",\n\"nym.kz\",\n\"nym.la\",\n\"nym.lc\",\n\"nom.li\",\n\"nym.li\",\n\"nym.lt\",\n\"nym.lu\",\n\"nom.lv\",\n\"nym.me\",\n\"nom.mk\",\n\"nym.mn\",\n\"nym.mx\",\n\"nom.nu\",\n\"nym.nz\",\n\"nym.pe\",\n\"nym.pt\",\n\"nom.pw\",\n\"nom.qa\",\n\"nym.ro\",\n\"nom.rs\",\n\"nom.si\",\n\"nym.sk\",\n\"nom.st\",\n\"nym.su\",\n\"nym.sx\",\n\"nom.tj\",\n\"nym.tw\",\n\"nom.ug\",\n\"nom.uy\",\n\"nom.vc\",\n\"nom.vg\",\n\"static.observableusercontent.com\",\n\"cya.gg\",\n\"cloudycluster.net\",\n\"nid.io\",\n\"opencraft.hosting\",\n\"operaunite.com\",\n\"skygearapp.com\",\n\"outsystemscloud.com\",\n\"ownprovider.com\",\n\"own.pm\",\n\"ox.rs\",\n\"oy.lc\",\n\"pgfog.com\",\n\"pagefrontapp.com\",\n\"art.pl\",\n\"gliwice.pl\",\n\"krakow.pl\",\n\"poznan.pl\",\n\"wroc.pl\",\n\"zakopane.pl\",\n\"pantheonsite.io\",\n\"gotpantheon.com\",\n\"mypep.link\",\n\"perspecta.cloud\",\n\"on-web.fr\",\n\"*.platform.sh\",\n\"*.platformsh.site\",\n\"dyn53.io\",\n\"co.bn\",\n\"xen.prgmr.com\",\n\"priv.at\",\n\"prvcy.page\",\n\"*.dweb.link\",\n\"protonet.io\",\n\"chirurgiens-dentistes-en-france.fr\",\n\"byen.site\",\n\"pubtls.org\",\n\"qualifioapp.com\",\n\"qbuser.com\",\n\"instantcloud.cn\",\n\"ras.ru\",\n\"qa2.com\",\n\"qcx.io\",\n\"*.sys.qcx.io\",\n\"dev-myqnapcloud.com\",\n\"alpha-myqnapcloud.com\",\n\"myqnapcloud.com\",\n\"*.quipelements.com\",\n\"vapor.cloud\",\n\"vaporcloud.io\",\n\"rackmaze.com\",\n\"rackmaze.net\",\n\"*.on-k3s.io\",\n\"*.on-rancher.cloud\",\n\"*.on-rio.io\",\n\"readthedocs.io\",\n\"rhcloud.com\",\n\"app.render.com\",\n\"onrender.com\",\n\"repl.co\",\n\"repl.run\",\n\"resindevice.io\",\n\"devices.resinstaging.io\",\n\"hzc.io\",\n\"wellbeingzone.eu\",\n\"ptplus.fit\",\n\"wellbeingzone.co.uk\",\n\"git-pages.rit.edu\",\n\"sandcats.io\",\n\"logoip.de\",\n\"logoip.com\",\n\"schokokeks.net\",\n\"gov.scot\",\n\"scrysec.com\",\n\"firewall-gateway.com\",\n\"firewall-gateway.de\",\n\"my-gateway.de\",\n\"my-router.de\",\n\"spdns.de\",\n\"spdns.eu\",\n\"firewall-gateway.net\",\n\"my-firewall.org\",\n\"myfirewall.org\",\n\"spdns.org\",\n\"senseering.net\",\n\"biz.ua\",\n\"co.ua\",\n\"pp.ua\",\n\"shiftedit.io\",\n\"myshopblocks.com\",\n\"shopitsite.com\",\n\"mo-siemens.io\",\n\"1kapp.com\",\n\"appchizi.com\",\n\"applinzi.com\",\n\"sinaapp.com\",\n\"vipsinaapp.com\",\n\"siteleaf.net\",\n\"bounty-full.com\",\n\"alpha.bounty-full.com\",\n\"beta.bounty-full.com\",\n\"stackhero-network.com\",\n\"static.land\",\n\"dev.static.land\",\n\"sites.static.land\",\n\"apps.lair.io\",\n\"*.stolos.io\",\n\"spacekit.io\",\n\"customer.speedpartner.de\",\n\"api.stdlib.com\",\n\"storj.farm\",\n\"utwente.io\",\n\"soc.srcf.net\",\n\"user.srcf.net\",\n\"temp-dns.com\",\n\"applicationcloud.io\",\n\"scapp.io\",\n\"*.s5y.io\",\n\"*.sensiosite.cloud\",\n\"syncloud.it\",\n\"diskstation.me\",\n\"dscloud.biz\",\n\"dscloud.me\",\n\"dscloud.mobi\",\n\"dsmynas.com\",\n\"dsmynas.net\",\n\"dsmynas.org\",\n\"familyds.com\",\n\"familyds.net\",\n\"familyds.org\",\n\"i234.me\",\n\"myds.me\",\n\"synology.me\",\n\"vpnplus.to\",\n\"direct.quickconnect.to\",\n\"taifun-dns.de\",\n\"gda.pl\",\n\"gdansk.pl\",\n\"gdynia.pl\",\n\"med.pl\",\n\"sopot.pl\",\n\"edugit.org\",\n\"telebit.app\",\n\"telebit.io\",\n\"*.telebit.xyz\",\n\"gwiddle.co.uk\",\n\"thingdustdata.com\",\n\"cust.dev.thingdust.io\",\n\"cust.disrec.thingdust.io\",\n\"cust.prod.thingdust.io\",\n\"cust.testing.thingdust.io\",\n\"arvo.network\",\n\"azimuth.network\",\n\"bloxcms.com\",\n\"townnews-staging.com\",\n\"12hp.at\",\n\"2ix.at\",\n\"4lima.at\",\n\"lima-city.at\",\n\"12hp.ch\",\n\"2ix.ch\",\n\"4lima.ch\",\n\"lima-city.ch\",\n\"trafficplex.cloud\",\n\"de.cool\",\n\"12hp.de\",\n\"2ix.de\",\n\"4lima.de\",\n\"lima-city.de\",\n\"1337.pictures\",\n\"clan.rip\",\n\"lima-city.rocks\",\n\"webspace.rocks\",\n\"lima.zone\",\n\"*.transurl.be\",\n\"*.transurl.eu\",\n\"*.transurl.nl\",\n\"tuxfamily.org\",\n\"dd-dns.de\",\n\"diskstation.eu\",\n\"diskstation.org\",\n\"dray-dns.de\",\n\"draydns.de\",\n\"dyn-vpn.de\",\n\"dynvpn.de\",\n\"mein-vigor.de\",\n\"my-vigor.de\",\n\"my-wan.de\",\n\"syno-ds.de\",\n\"synology-diskstation.de\",\n\"synology-ds.de\",\n\"uber.space\",\n\"*.uberspace.de\",\n\"hk.com\",\n\"hk.org\",\n\"ltd.hk\",\n\"inc.hk\",\n\"virtualuser.de\",\n\"virtual-user.de\",\n\"urown.cloud\",\n\"dnsupdate.info\",\n\"lib.de.us\",\n\"2038.io\",\n\"router.management\",\n\"v-info.info\",\n\"voorloper.cloud\",\n\"v.ua\",\n\"wafflecell.com\",\n\"*.webhare.dev\",\n\"wedeploy.io\",\n\"wedeploy.me\",\n\"wedeploy.sh\",\n\"remotewd.com\",\n\"wmflabs.org\",\n\"myforum.community\",\n\"community-pro.de\",\n\"diskussionsbereich.de\",\n\"community-pro.net\",\n\"meinforum.net\",\n\"half.host\",\n\"xnbay.com\",\n\"u2.xnbay.com\",\n\"u2-local.xnbay.com\",\n\"cistron.nl\",\n\"demon.nl\",\n\"xs4all.space\",\n\"yandexcloud.net\",\n\"storage.yandexcloud.net\",\n\"website.yandexcloud.net\",\n\"official.academy\",\n\"yolasite.com\",\n\"ybo.faith\",\n\"yombo.me\",\n\"homelink.one\",\n\"ybo.party\",\n\"ybo.review\",\n\"ybo.science\",\n\"ybo.trade\",\n\"nohost.me\",\n\"noho.st\",\n\"za.net\",\n\"za.org\",\n\"now.sh\",\n\"bss.design\",\n\"basicserver.io\",\n\"virtualserver.io\",\n\"enterprisecloud.nu\"\n]","/*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\"use strict\";\n/*jshint unused:false */\n\nclass Store {\n constructor() {\n this.synchronous = false;\n }\n\n findCookie(domain, path, key, cb) {\n throw new Error(\"findCookie is not implemented\");\n }\n\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n throw new Error(\"findCookies is not implemented\");\n }\n\n putCookie(cookie, cb) {\n throw new Error(\"putCookie is not implemented\");\n }\n\n updateCookie(oldCookie, newCookie, cb) {\n // recommended default implementation:\n // return this.putCookie(newCookie, cb);\n throw new Error(\"updateCookie is not implemented\");\n }\n\n removeCookie(domain, path, key, cb) {\n throw new Error(\"removeCookie is not implemented\");\n }\n\n removeCookies(domain, path, cb) {\n throw new Error(\"removeCookies is not implemented\");\n }\n\n removeAllCookies(cb) {\n throw new Error(\"removeAllCookies is not implemented\");\n }\n\n getAllCookies(cb) {\n throw new Error(\n \"getAllCookies is not implemented (therefore jar cannot be serialized)\"\n );\n }\n}\n\nexports.Store = Store;\n","/*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\"use strict\";\nconst { fromCallback } = require(\"universalify\");\nconst Store = require(\"./store\").Store;\nconst permuteDomain = require(\"./permuteDomain\").permuteDomain;\nconst pathMatch = require(\"./pathMatch\").pathMatch;\nconst util = require(\"util\");\n\nclass MemoryCookieStore extends Store {\n constructor() {\n super();\n this.synchronous = true;\n this.idx = {};\n if (util.inspect.custom) {\n this[util.inspect.custom] = this.inspect;\n }\n }\n\n inspect() {\n return `{ idx: ${util.inspect(this.idx, false, 2)} }`;\n }\n\n findCookie(domain, path, key, cb) {\n if (!this.idx[domain]) {\n return cb(null, undefined);\n }\n if (!this.idx[domain][path]) {\n return cb(null, undefined);\n }\n return cb(null, this.idx[domain][path][key] || null);\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n const results = [];\n if (typeof allowSpecialUseDomain === \"function\") {\n cb = allowSpecialUseDomain;\n allowSpecialUseDomain = false;\n }\n if (!domain) {\n return cb(null, []);\n }\n\n let pathMatcher;\n if (!path) {\n // null means \"all paths\"\n pathMatcher = function matchAll(domainIndex) {\n for (const curPath in domainIndex) {\n const pathIndex = domainIndex[curPath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n };\n } else {\n pathMatcher = function matchRFC(domainIndex) {\n //NOTE: we should use path-match algorithm from S5.1.4 here\n //(see : https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/canonical_cookie.cc#L299)\n Object.keys(domainIndex).forEach(cookiePath => {\n if (pathMatch(path, cookiePath)) {\n const pathIndex = domainIndex[cookiePath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n });\n };\n }\n\n const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];\n const idx = this.idx;\n domains.forEach(curDomain => {\n const domainIndex = idx[curDomain];\n if (!domainIndex) {\n return;\n }\n pathMatcher(domainIndex);\n });\n\n cb(null, results);\n }\n\n putCookie(cookie, cb) {\n if (!this.idx[cookie.domain]) {\n this.idx[cookie.domain] = {};\n }\n if (!this.idx[cookie.domain][cookie.path]) {\n this.idx[cookie.domain][cookie.path] = {};\n }\n this.idx[cookie.domain][cookie.path][cookie.key] = cookie;\n cb(null);\n }\n updateCookie(oldCookie, newCookie, cb) {\n // updateCookie() may avoid updating cookies that are identical. For example,\n // lastAccessed may not be important to some stores and an equality\n // comparison could exclude that field.\n this.putCookie(newCookie, cb);\n }\n removeCookie(domain, path, key, cb) {\n if (\n this.idx[domain] &&\n this.idx[domain][path] &&\n this.idx[domain][path][key]\n ) {\n delete this.idx[domain][path][key];\n }\n cb(null);\n }\n removeCookies(domain, path, cb) {\n if (this.idx[domain]) {\n if (path) {\n delete this.idx[domain][path];\n } else {\n delete this.idx[domain];\n }\n }\n return cb(null);\n }\n removeAllCookies(cb) {\n this.idx = {};\n return cb(null);\n }\n getAllCookies(cb) {\n const cookies = [];\n const idx = this.idx;\n\n const domains = Object.keys(idx);\n domains.forEach(domain => {\n const paths = Object.keys(idx[domain]);\n paths.forEach(path => {\n const keys = Object.keys(idx[domain][path]);\n keys.forEach(key => {\n if (key !== null) {\n cookies.push(idx[domain][path][key]);\n }\n });\n });\n });\n\n // Sort by creationIndex so deserializing retains the creation order.\n // When implementing your own store, this SHOULD retain the order too\n cookies.sort((a, b) => {\n return (a.creationIndex || 0) - (b.creationIndex || 0);\n });\n\n cb(null, cookies);\n }\n}\n\n[\n \"findCookie\",\n \"findCookies\",\n \"putCookie\",\n \"updateCookie\",\n \"removeCookie\",\n \"removeCookies\",\n \"removeAllCookies\",\n \"getAllCookies\"\n].forEach(name => {\n MemoryCookieStore[name] = fromCallback(MemoryCookieStore.prototype[name]);\n});\n\nexports.MemoryCookieStore = MemoryCookieStore;\n","'use strict'\n\nexports.fromCallback = function (fn) {\n return Object.defineProperty(function () {\n if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)\n else {\n return new Promise((resolve, reject) => {\n arguments[arguments.length] = (err, res) => {\n if (err) return reject(err)\n resolve(res)\n }\n arguments.length++\n fn.apply(this, arguments)\n })\n }\n }, 'name', { value: fn.name })\n}\n\nexports.fromPromise = function (fn) {\n return Object.defineProperty(function () {\n const cb = arguments[arguments.length - 1]\n if (typeof cb !== 'function') return fn.apply(this, arguments)\n else fn.apply(this, arguments).then(r => cb(null, r), cb)\n }, 'name', { value: fn.name })\n}\n","/*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\"use strict\";\nconst pubsuffix = require(\"./pubsuffix-psl\");\n\n// Gives the permutation of all possible domainMatch()es of a given domain. The\n// array is in shortest-to-longest order. Handy for indexing.\nconst SPECIAL_USE_DOMAINS = [\"local\"]; // RFC 6761\nfunction permuteDomain(domain, allowSpecialUseDomain) {\n let pubSuf = null;\n if (allowSpecialUseDomain) {\n const domainParts = domain.split(\".\");\n if (SPECIAL_USE_DOMAINS.includes(domainParts[domainParts.length - 1])) {\n pubSuf = `${domainParts[domainParts.length - 2]}.${\n domainParts[domainParts.length - 1]\n }`;\n } else {\n pubSuf = pubsuffix.getPublicSuffix(domain);\n }\n } else {\n pubSuf = pubsuffix.getPublicSuffix(domain);\n }\n\n if (!pubSuf) {\n return null;\n }\n if (pubSuf == domain) {\n return [domain];\n }\n\n const prefix = domain.slice(0, -(pubSuf.length + 1)); // \".example.com\"\n const parts = prefix.split(\".\").reverse();\n let cur = pubSuf;\n const permutations = [cur];\n while (parts.length) {\n cur = `${parts.shift()}.${cur}`;\n permutations.push(cur);\n }\n return permutations;\n}\n\nexports.permuteDomain = permuteDomain;\n","/*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\"use strict\";\n/*\n * \"A request-path path-matches a given cookie-path if at least one of the\n * following conditions holds:\"\n */\nfunction pathMatch(reqPath, cookiePath) {\n // \"o The cookie-path and the request-path are identical.\"\n if (cookiePath === reqPath) {\n return true;\n }\n\n const idx = reqPath.indexOf(cookiePath);\n if (idx === 0) {\n // \"o The cookie-path is a prefix of the request-path, and the last\n // character of the cookie-path is %x2F (\"/\").\"\n if (cookiePath.substr(-1) === \"/\") {\n return true;\n }\n\n // \" o The cookie-path is a prefix of the request-path, and the first\n // character of the request-path that is not included in the cookie- path\n // is a %x2F (\"/\") character.\"\n if (reqPath.substr(cookiePath.length, 1) === \"/\") {\n return true;\n }\n }\n\n return false;\n}\n\nexports.pathMatch = pathMatch;\n","// generated by genversion\nmodule.exports = '4.0.0'\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignal, AbortSignalLike, abortSignal } from \"./AbortSignal\";\n\n/**\n * This error is thrown when an asynchronous operation has been aborted.\n * Check for this error by testing the `name` that the name property of the\n * error matches `\"AbortError\"`.\n *\n * @example\n * ```ts\n * const controller = new AbortController();\n * controller.abort();\n * try {\n * doAsyncWork(controller.signal)\n * } catch (e) {\n * if (e.name === 'AbortError') {\n * // handle abort error here.\n * }\n * }\n * ```\n */\nexport class AbortError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"AbortError\";\n }\n}\n\n/**\n * An AbortController provides an AbortSignal and the associated controls to signal\n * that an asynchronous operation should be aborted.\n *\n * @example\n * Abort an operation when another event fires\n * ```ts\n * const controller = new AbortController();\n * const signal = controller.signal;\n * doAsyncWork(signal);\n * button.addEventListener('click', () => controller.abort());\n * ```\n *\n * @example\n * Share aborter cross multiple operations in 30s\n * ```ts\n * // Upload the same data to 2 different data centers at the same time,\n * // abort another when any of them is finished\n * const controller = AbortController.withTimeout(30 * 1000);\n * doAsyncWork(controller.signal).then(controller.abort);\n * doAsyncWork(controller.signal).then(controller.abort);\n *```\n *\n * @example\n * Cascaded aborting\n * ```ts\n * // All operations can't take more than 30 seconds\n * const aborter = Aborter.timeout(30 * 1000);\n *\n * // Following 2 operations can't take more than 25 seconds\n * await doAsyncWork(aborter.withTimeout(25 * 1000));\n * await doAsyncWork(aborter.withTimeout(25 * 1000));\n * ```\n */\nexport class AbortController {\n private _signal: AbortSignal;\n\n /**\n * @param parentSignals - The AbortSignals that will signal aborted on the AbortSignal associated with this controller.\n */\n constructor(parentSignals?: AbortSignalLike[]);\n /**\n * @param parentSignals - The AbortSignals that will signal aborted on the AbortSignal associated with this controller.\n */\n constructor(...parentSignals: AbortSignalLike[]);\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n constructor(parentSignals?: any) {\n this._signal = new AbortSignal();\n\n if (!parentSignals) {\n return;\n }\n // coerce parentSignals into an array\n if (!Array.isArray(parentSignals)) {\n // eslint-disable-next-line prefer-rest-params\n parentSignals = arguments;\n }\n for (const parentSignal of parentSignals) {\n // if the parent signal has already had abort() called,\n // then call abort on this signal as well.\n if (parentSignal.aborted) {\n this.abort();\n } else {\n // when the parent signal aborts, this signal should as well.\n parentSignal.addEventListener(\"abort\", () => {\n this.abort();\n });\n }\n }\n }\n\n /**\n * The AbortSignal associated with this controller that will signal aborted\n * when the abort method is called on this controller.\n *\n * @readonly\n */\n public get signal(): AbortSignal {\n return this._signal;\n }\n\n /**\n * Signal that any operations passed this controller's associated abort signal\n * to cancel any remaining work and throw an `AbortError`.\n */\n abort(): void {\n abortSignal(this._signal);\n }\n\n /**\n * Creates a new AbortSignal instance that will abort after the provided ms.\n * @param ms - Elapsed time in milliseconds to trigger an abort.\n */\n public static timeout(ms: number): AbortSignal {\n const signal = new AbortSignal();\n const timer = setTimeout(abortSignal, ms, signal);\n // Prevent the active Timer from keeping the Node.js event loop active.\n if (typeof timer.unref === \"function\") {\n timer.unref();\n }\n return signal;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\ntype AbortEventListener = (this: AbortSignalLike, ev?: any) => any;\n\nconst listenersMap = new WeakMap();\nconst abortedMap = new WeakMap();\n\n/**\n * Allows the request to be aborted upon firing of the \"abort\" event.\n * Compatible with the browser built-in AbortSignal and common polyfills.\n */\nexport interface AbortSignalLike {\n /**\n * Indicates if the signal has already been aborted.\n */\n readonly aborted: boolean;\n /**\n * Add new \"abort\" event listener, only support \"abort\" event.\n */\n addEventListener(\n type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any,\n options?: any\n ): void;\n /**\n * Remove \"abort\" event listener, only support \"abort\" event.\n */\n removeEventListener(\n type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any,\n options?: any\n ): void;\n}\n\n/**\n * An aborter instance implements AbortSignal interface, can abort HTTP requests.\n *\n * - Call AbortSignal.none to create a new AbortSignal instance that cannot be cancelled.\n * Use `AbortSignal.none` when you are required to pass a cancellation token but the operation\n * cannot or will not ever be cancelled.\n *\n * @example\n * Abort without timeout\n * ```ts\n * await doAsyncWork(AbortSignal.none);\n * ```\n */\nexport class AbortSignal implements AbortSignalLike {\n constructor() {\n listenersMap.set(this, []);\n abortedMap.set(this, false);\n }\n\n /**\n * Status of whether aborted or not.\n *\n * @readonly\n */\n public get aborted(): boolean {\n if (!abortedMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n\n return abortedMap.get(this)!;\n }\n\n /**\n * Creates a new AbortSignal instance that will never be aborted.\n *\n * @readonly\n */\n public static get none(): AbortSignal {\n return new AbortSignal();\n }\n\n /**\n * onabort event listener.\n */\n public onabort: ((ev?: Event) => any) | null = null;\n\n /**\n * Added new \"abort\" event listener, only support \"abort\" event.\n *\n * @param _type - Only support \"abort\" event\n * @param listener - The listener to be added\n */\n public addEventListener(\n // tslint:disable-next-line:variable-name\n _type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any\n ): void {\n if (!listenersMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n\n const listeners = listenersMap.get(this)!;\n listeners.push(listener);\n }\n\n /**\n * Remove \"abort\" event listener, only support \"abort\" event.\n *\n * @param _type - Only support \"abort\" event\n * @param listener - The listener to be removed\n */\n public removeEventListener(\n // tslint:disable-next-line:variable-name\n _type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any\n ): void {\n if (!listenersMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n\n const listeners = listenersMap.get(this)!;\n\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n\n /**\n * Dispatches a synthetic event to the AbortSignal.\n */\n dispatchEvent(_event: Event): boolean {\n throw new Error(\n \"This is a stub dispatchEvent implementation that should not be used. It only exists for type-checking purposes.\"\n );\n }\n}\n\n/**\n * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.\n * Will try to trigger abort event for all linked AbortSignal nodes.\n *\n * - If there is a timeout, the timer will be cancelled.\n * - If aborted is true, nothing will happen.\n *\n * @internal\n */\n// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\nexport function abortSignal(signal: AbortSignal): void {\n if (signal.aborted) {\n return;\n }\n\n if (signal.onabort) {\n signal.onabort.call(signal);\n }\n\n const listeners = listenersMap.get(signal)!;\n if (listeners) {\n // Create a copy of listeners so mutations to the array\n // (e.g. via removeListener calls) don't affect the listeners\n // we invoke.\n listeners.slice().forEach((listener) => {\n listener.call(signal, { type: \"abort\" });\n });\n }\n\n abortedMap.set(signal, true);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * A collection of HttpHeaders that can be sent with a HTTP request.\n */\nfunction getHeaderKey(headerName: string): string {\n return headerName.toLowerCase();\n}\n\n/**\n * An individual header within a HttpHeaders collection.\n */\nexport interface HttpHeader {\n /**\n * The name of the header.\n */\n name: string;\n\n /**\n * The value of the header.\n */\n value: string;\n}\n\n/**\n * A HttpHeaders collection represented as a simple JSON object.\n */\nexport type RawHttpHeaders = { [headerName: string]: string };\n\n/**\n * A collection of HTTP header key/value pairs.\n */\nexport interface HttpHeadersLike {\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName - The name of the header to set. This value is case-insensitive.\n * @param headerValue - The value of the header to set.\n */\n set(headerName: string, headerValue: string | number): void;\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName - The name of the header.\n */\n get(headerName: string): string | undefined;\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n contains(headerName: string): boolean;\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName - The name of the header to remove.\n */\n remove(headerName: string): boolean;\n /**\n * Get the headers that are contained this collection as an object.\n */\n rawHeaders(): RawHttpHeaders;\n /**\n * Get the headers that are contained in this collection as an array.\n */\n headersArray(): HttpHeader[];\n /**\n * Get the header names that are contained in this collection.\n */\n headerNames(): string[];\n /**\n * Get the header values that are contained in this collection.\n */\n headerValues(): string[];\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n clone(): HttpHeadersLike;\n /**\n * Get the JSON object representation of this HTTP header collection.\n * The result is the same as `rawHeaders()`.\n */\n toJson(options?: { preserveCase?: boolean }): RawHttpHeaders;\n}\n\nexport function isHttpHeadersLike(object?: unknown): object is HttpHeadersLike {\n if (object && typeof object === \"object\") {\n const castObject = object as {\n rawHeaders: unknown;\n clone: unknown;\n get: unknown;\n set: unknown;\n contains: unknown;\n remove: unknown;\n headersArray: unknown;\n headerValues: unknown;\n headerNames: unknown;\n toJson: unknown;\n };\n if (\n typeof castObject.rawHeaders === \"function\" &&\n typeof castObject.clone === \"function\" &&\n typeof castObject.get === \"function\" &&\n typeof castObject.set === \"function\" &&\n typeof castObject.contains === \"function\" &&\n typeof castObject.remove === \"function\" &&\n typeof castObject.headersArray === \"function\" &&\n typeof castObject.headerValues === \"function\" &&\n typeof castObject.headerNames === \"function\" &&\n typeof castObject.toJson === \"function\"\n ) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * A collection of HTTP header key/value pairs.\n */\nexport class HttpHeaders implements HttpHeadersLike {\n private readonly _headersMap: { [headerKey: string]: HttpHeader };\n\n constructor(rawHeaders?: RawHttpHeaders) {\n this._headersMap = {};\n if (rawHeaders) {\n for (const headerName in rawHeaders) {\n this.set(headerName, rawHeaders[headerName]);\n }\n }\n }\n\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName - The name of the header to set. This value is case-insensitive.\n * @param headerValue - The value of the header to set.\n */\n public set(headerName: string, headerValue: string | number): void {\n this._headersMap[getHeaderKey(headerName)] = {\n name: headerName,\n value: headerValue.toString(),\n };\n }\n\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName - The name of the header.\n */\n public get(headerName: string): string | undefined {\n const header: HttpHeader = this._headersMap[getHeaderKey(headerName)];\n return !header ? undefined : header.value;\n }\n\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n public contains(headerName: string): boolean {\n return !!this._headersMap[getHeaderKey(headerName)];\n }\n\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName - The name of the header to remove.\n */\n public remove(headerName: string): boolean {\n const result: boolean = this.contains(headerName);\n delete this._headersMap[getHeaderKey(headerName)];\n return result;\n }\n\n /**\n * Get the headers that are contained this collection as an object.\n */\n public rawHeaders(): RawHttpHeaders {\n return this.toJson({ preserveCase: true });\n }\n\n /**\n * Get the headers that are contained in this collection as an array.\n */\n public headersArray(): HttpHeader[] {\n const headers: HttpHeader[] = [];\n for (const headerKey in this._headersMap) {\n headers.push(this._headersMap[headerKey]);\n }\n return headers;\n }\n\n /**\n * Get the header names that are contained in this collection.\n */\n public headerNames(): string[] {\n const headerNames: string[] = [];\n const headers: HttpHeader[] = this.headersArray();\n for (let i = 0; i < headers.length; ++i) {\n headerNames.push(headers[i].name);\n }\n return headerNames;\n }\n\n /**\n * Get the header values that are contained in this collection.\n */\n public headerValues(): string[] {\n const headerValues: string[] = [];\n const headers: HttpHeader[] = this.headersArray();\n for (let i = 0; i < headers.length; ++i) {\n headerValues.push(headers[i].value);\n }\n return headerValues;\n }\n\n /**\n * Get the JSON object representation of this HTTP header collection.\n */\n public toJson(options: { preserveCase?: boolean } = {}): RawHttpHeaders {\n const result: RawHttpHeaders = {};\n if (options.preserveCase) {\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n result[header.name] = header.value;\n }\n } else {\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n result[getHeaderKey(header.name)] = header.value;\n }\n }\n return result;\n }\n\n /**\n * Get the string representation of this HTTP header collection.\n */\n public toString(): string {\n return JSON.stringify(this.toJson({ preserveCase: true }));\n }\n\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n public clone(): HttpHeaders {\n const resultPreservingCasing: RawHttpHeaders = {};\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n resultPreservingCasing[header.name] = header.value;\n }\n return new HttpHeaders(resultPreservingCasing);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as http from \"http\";\nimport * as https from \"https\";\nimport * as tunnel from \"tunnel\";\nimport { HttpHeadersLike } from \"./httpHeaders\";\nimport { ProxySettings } from \"./serviceClient\";\nimport { URLBuilder } from \"./url\";\n\nexport type ProxyAgent = { isHttps: boolean; agent: http.Agent | https.Agent };\nexport function createProxyAgent(\n requestUrl: string,\n proxySettings: ProxySettings,\n headers?: HttpHeadersLike\n): ProxyAgent {\n const host = URLBuilder.parse(proxySettings.host).getHost() as string;\n if (!host) {\n throw new Error(\"Expecting a non-empty host in proxy settings.\");\n }\n if (!isValidPort(proxySettings.port)) {\n throw new Error(\"Expecting a valid port number in the range of [0, 65535] in proxy settings.\");\n }\n const tunnelOptions: tunnel.HttpsOverHttpsOptions = {\n proxy: {\n host: host,\n port: proxySettings.port,\n headers: (headers && headers.rawHeaders()) || {},\n },\n };\n\n if (proxySettings.username && proxySettings.password) {\n tunnelOptions.proxy!.proxyAuth = `${proxySettings.username}:${proxySettings.password}`;\n } else if (proxySettings.username) {\n tunnelOptions.proxy!.proxyAuth = `${proxySettings.username}`;\n }\n\n const isRequestHttps = isUrlHttps(requestUrl);\n const isProxyHttps = isUrlHttps(proxySettings.host);\n\n const proxyAgent = {\n isHttps: isRequestHttps,\n agent: createTunnel(isRequestHttps, isProxyHttps, tunnelOptions),\n };\n\n return proxyAgent;\n}\n\nexport function isUrlHttps(url: string): boolean {\n const urlScheme = URLBuilder.parse(url).getScheme() || \"\";\n return urlScheme.toLowerCase() === \"https\";\n}\n\nexport function createTunnel(\n isRequestHttps: boolean,\n isProxyHttps: boolean,\n tunnelOptions: tunnel.HttpsOverHttpsOptions\n): http.Agent | https.Agent {\n if (isRequestHttps && isProxyHttps) {\n return tunnel.httpsOverHttps(tunnelOptions);\n } else if (isRequestHttps && !isProxyHttps) {\n return tunnel.httpsOverHttp(tunnelOptions);\n } else if (!isRequestHttps && isProxyHttps) {\n return tunnel.httpOverHttps(tunnelOptions);\n } else {\n return tunnel.httpOverHttp(tunnelOptions);\n }\n}\n\nfunction isValidPort(port: number): boolean {\n // any port in 0-65535 range is valid (RFC 793) even though almost all implementations\n // will reserve 0 for a specific purpose, and a range of numbers for ephemeral ports\n return 0 <= port && port <= 65535;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { replaceAll } from \"./util/utils\";\n\ntype URLQueryParseState = \"ParameterName\" | \"ParameterValue\";\n\n/**\n * A class that handles the query portion of a URLBuilder.\n */\nexport class URLQuery {\n private readonly _rawQuery: { [queryParameterName: string]: string | string[] } = {};\n\n /**\n * Get whether or not there any query parameters in this URLQuery.\n */\n public any(): boolean {\n return Object.keys(this._rawQuery).length > 0;\n }\n\n /**\n * Get the keys of the query string.\n */\n public keys(): string[] {\n return Object.keys(this._rawQuery);\n }\n\n /**\n * Set a query parameter with the provided name and value. If the parameterValue is undefined or\n * empty, then this will attempt to remove an existing query parameter with the provided\n * parameterName.\n */\n public set(parameterName: string, parameterValue: unknown): void {\n const caseParameterValue = parameterValue as {\n toString: () => string;\n };\n if (parameterName) {\n if (caseParameterValue !== undefined && caseParameterValue !== null) {\n const newValue = Array.isArray(caseParameterValue)\n ? caseParameterValue\n : caseParameterValue.toString();\n this._rawQuery[parameterName] = newValue;\n } else {\n delete this._rawQuery[parameterName];\n }\n }\n }\n\n /**\n * Get the value of the query parameter with the provided name. If no parameter exists with the\n * provided parameter name, then undefined will be returned.\n */\n public get(parameterName: string): string | string[] | undefined {\n return parameterName ? this._rawQuery[parameterName] : undefined;\n }\n\n /**\n * Get the string representation of this query. The return value will not start with a \"?\".\n */\n public toString(): string {\n let result = \"\";\n for (const parameterName in this._rawQuery) {\n if (result) {\n result += \"&\";\n }\n const parameterValue = this._rawQuery[parameterName];\n if (Array.isArray(parameterValue)) {\n const parameterStrings = [];\n for (const parameterValueElement of parameterValue) {\n parameterStrings.push(`${parameterName}=${parameterValueElement}`);\n }\n result += parameterStrings.join(\"&\");\n } else {\n result += `${parameterName}=${parameterValue}`;\n }\n }\n return result;\n }\n\n /**\n * Parse a URLQuery from the provided text.\n */\n public static parse(text: string): URLQuery {\n const result = new URLQuery();\n\n if (text) {\n if (text.startsWith(\"?\")) {\n text = text.substring(1);\n }\n\n let currentState: URLQueryParseState = \"ParameterName\";\n\n let parameterName = \"\";\n let parameterValue = \"\";\n for (let i = 0; i < text.length; ++i) {\n const currentCharacter: string = text[i];\n switch (currentState) {\n case \"ParameterName\":\n switch (currentCharacter) {\n case \"=\":\n currentState = \"ParameterValue\";\n break;\n\n case \"&\":\n parameterName = \"\";\n parameterValue = \"\";\n break;\n\n default:\n parameterName += currentCharacter;\n break;\n }\n break;\n\n case \"ParameterValue\":\n switch (currentCharacter) {\n case \"&\":\n result.set(parameterName, parameterValue);\n parameterName = \"\";\n parameterValue = \"\";\n currentState = \"ParameterName\";\n break;\n\n default:\n parameterValue += currentCharacter;\n break;\n }\n break;\n\n default:\n throw new Error(\"Unrecognized URLQuery parse state: \" + currentState);\n }\n }\n if (currentState === \"ParameterValue\") {\n result.set(parameterName, parameterValue);\n }\n }\n\n return result;\n }\n}\n\n/**\n * A class that handles creating, modifying, and parsing URLs.\n */\nexport class URLBuilder {\n private _scheme: string | undefined;\n private _host: string | undefined;\n private _port: string | undefined;\n private _path: string | undefined;\n private _query: URLQuery | undefined;\n\n /**\n * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL\n * (such as a host, port, path, or query), those parts will be added to this URL as well.\n */\n public setScheme(scheme: string | undefined): void {\n if (!scheme) {\n this._scheme = undefined;\n } else {\n this.set(scheme, \"SCHEME\");\n }\n }\n\n /**\n * Get the scheme that has been set in this URL.\n */\n public getScheme(): string | undefined {\n return this._scheme;\n }\n\n /**\n * Set the host for this URL. If the provided host contains other parts of a URL (such as a\n * port, path, or query), those parts will be added to this URL as well.\n */\n public setHost(host: string | undefined): void {\n if (!host) {\n this._host = undefined;\n } else {\n this.set(host, \"SCHEME_OR_HOST\");\n }\n }\n\n /**\n * Get the host that has been set in this URL.\n */\n public getHost(): string | undefined {\n return this._host;\n }\n\n /**\n * Set the port for this URL. If the provided port contains other parts of a URL (such as a\n * path or query), those parts will be added to this URL as well.\n */\n public setPort(port: number | string | undefined): void {\n if (port === undefined || port === null || port === \"\") {\n this._port = undefined;\n } else {\n this.set(port.toString(), \"PORT\");\n }\n }\n\n /**\n * Get the port that has been set in this URL.\n */\n public getPort(): string | undefined {\n return this._port;\n }\n\n /**\n * Set the path for this URL. If the provided path contains a query, then it will be added to\n * this URL as well.\n */\n public setPath(path: string | undefined): void {\n if (!path) {\n this._path = undefined;\n } else {\n const schemeIndex = path.indexOf(\"://\");\n if (schemeIndex !== -1) {\n const schemeStart = path.lastIndexOf(\"/\", schemeIndex);\n // Make sure to only grab the URL part of the path before setting the state back to SCHEME\n // this will handle cases such as \"/a/b/c/https://microsoft.com\" => \"https://microsoft.com\"\n this.set(schemeStart === -1 ? path : path.substr(schemeStart + 1), \"SCHEME\");\n } else {\n this.set(path, \"PATH\");\n }\n }\n }\n\n /**\n * Append the provided path to this URL's existing path. If the provided path contains a query,\n * then it will be added to this URL as well.\n */\n public appendPath(path: string | undefined): void {\n if (path) {\n let currentPath: string | undefined = this.getPath();\n if (currentPath) {\n if (!currentPath.endsWith(\"/\")) {\n currentPath += \"/\";\n }\n\n if (path.startsWith(\"/\")) {\n path = path.substring(1);\n }\n\n path = currentPath + path;\n }\n this.set(path, \"PATH\");\n }\n }\n\n /**\n * Get the path that has been set in this URL.\n */\n public getPath(): string | undefined {\n return this._path;\n }\n\n /**\n * Set the query in this URL.\n */\n public setQuery(query: string | undefined): void {\n if (!query) {\n this._query = undefined;\n } else {\n this._query = URLQuery.parse(query);\n }\n }\n\n /**\n * Set a query parameter with the provided name and value in this URL's query. If the provided\n * query parameter value is undefined or empty, then the query parameter will be removed if it\n * existed.\n */\n public setQueryParameter(queryParameterName: string, queryParameterValue: unknown): void {\n if (queryParameterName) {\n if (!this._query) {\n this._query = new URLQuery();\n }\n this._query.set(queryParameterName, queryParameterValue);\n }\n }\n\n /**\n * Get the value of the query parameter with the provided query parameter name. If no query\n * parameter exists with the provided name, then undefined will be returned.\n */\n public getQueryParameterValue(queryParameterName: string): string | string[] | undefined {\n return this._query ? this._query.get(queryParameterName) : undefined;\n }\n\n /**\n * Get the query in this URL.\n */\n public getQuery(): string | undefined {\n return this._query ? this._query.toString() : undefined;\n }\n\n /**\n * Set the parts of this URL by parsing the provided text using the provided startState.\n */\n private set(text: string, startState: URLTokenizerState): void {\n const tokenizer = new URLTokenizer(text, startState);\n\n while (tokenizer.next()) {\n const token: URLToken | undefined = tokenizer.current();\n let tokenPath: string | undefined;\n if (token) {\n switch (token.type) {\n case \"SCHEME\":\n this._scheme = token.text || undefined;\n break;\n\n case \"HOST\":\n this._host = token.text || undefined;\n break;\n\n case \"PORT\":\n this._port = token.text || undefined;\n break;\n\n case \"PATH\":\n tokenPath = token.text || undefined;\n if (!this._path || this._path === \"/\" || tokenPath !== \"/\") {\n this._path = tokenPath;\n }\n break;\n\n case \"QUERY\":\n this._query = URLQuery.parse(token.text);\n break;\n\n default:\n throw new Error(`Unrecognized URLTokenType: ${token.type}`);\n }\n }\n }\n }\n\n /**\n * Serializes the URL as a string.\n * @returns the URL as a string.\n */\n public toString(): string {\n let result = \"\";\n\n if (this._scheme) {\n result += `${this._scheme}://`;\n }\n\n if (this._host) {\n result += this._host;\n }\n\n if (this._port) {\n result += `:${this._port}`;\n }\n\n if (this._path) {\n if (!this._path.startsWith(\"/\")) {\n result += \"/\";\n }\n result += this._path;\n }\n\n if (this._query && this._query.any()) {\n result += `?${this._query.toString()}`;\n }\n\n return result;\n }\n\n /**\n * If the provided searchValue is found in this URLBuilder, then replace it with the provided\n * replaceValue.\n */\n public replaceAll(searchValue: string, replaceValue: string): void {\n if (searchValue) {\n this.setScheme(replaceAll(this.getScheme(), searchValue, replaceValue));\n this.setHost(replaceAll(this.getHost(), searchValue, replaceValue));\n this.setPort(replaceAll(this.getPort(), searchValue, replaceValue));\n this.setPath(replaceAll(this.getPath(), searchValue, replaceValue));\n this.setQuery(replaceAll(this.getQuery(), searchValue, replaceValue));\n }\n }\n\n /**\n * Parses a given string URL into a new {@link URLBuilder}.\n */\n public static parse(text: string): URLBuilder {\n const result = new URLBuilder();\n result.set(text, \"SCHEME_OR_HOST\");\n return result;\n }\n}\n\ntype URLTokenizerState = \"SCHEME\" | \"SCHEME_OR_HOST\" | \"HOST\" | \"PORT\" | \"PATH\" | \"QUERY\" | \"DONE\";\n\ntype URLTokenType = \"SCHEME\" | \"HOST\" | \"PORT\" | \"PATH\" | \"QUERY\";\n\nexport class URLToken {\n public constructor(public readonly text: string, public readonly type: URLTokenType) {}\n\n public static scheme(text: string): URLToken {\n return new URLToken(text, \"SCHEME\");\n }\n\n public static host(text: string): URLToken {\n return new URLToken(text, \"HOST\");\n }\n\n public static port(text: string): URLToken {\n return new URLToken(text, \"PORT\");\n }\n\n public static path(text: string): URLToken {\n return new URLToken(text, \"PATH\");\n }\n\n public static query(text: string): URLToken {\n return new URLToken(text, \"QUERY\");\n }\n}\n\n/**\n * Get whether or not the provided character (single character string) is an alphanumeric (letter or\n * digit) character.\n */\nexport function isAlphaNumericCharacter(character: string): boolean {\n const characterCode: number = character.charCodeAt(0);\n return (\n (48 /* '0' */ <= characterCode && characterCode <= 57) /* '9' */ ||\n (65 /* 'A' */ <= characterCode && characterCode <= 90) /* 'Z' */ ||\n (97 /* 'a' */ <= characterCode && characterCode <= 122) /* 'z' */\n );\n}\n\n/**\n * A class that tokenizes URL strings.\n */\nexport class URLTokenizer {\n readonly _textLength: number;\n _currentState: URLTokenizerState;\n _currentIndex: number;\n _currentToken: URLToken | undefined;\n\n public constructor(readonly _text: string, state?: URLTokenizerState) {\n this._textLength = _text ? _text.length : 0;\n this._currentState = state !== undefined && state !== null ? state : \"SCHEME_OR_HOST\";\n this._currentIndex = 0;\n }\n\n /**\n * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer\n * hasn't started or has finished tokenizing.\n */\n public current(): URLToken | undefined {\n return this._currentToken;\n }\n\n /**\n * Advance to the next URLToken and return whether or not a URLToken was found.\n */\n public next(): boolean {\n if (!hasCurrentCharacter(this)) {\n this._currentToken = undefined;\n } else {\n switch (this._currentState) {\n case \"SCHEME\":\n nextScheme(this);\n break;\n\n case \"SCHEME_OR_HOST\":\n nextSchemeOrHost(this);\n break;\n\n case \"HOST\":\n nextHost(this);\n break;\n\n case \"PORT\":\n nextPort(this);\n break;\n\n case \"PATH\":\n nextPath(this);\n break;\n\n case \"QUERY\":\n nextQuery(this);\n break;\n\n default:\n throw new Error(`Unrecognized URLTokenizerState: ${this._currentState}`);\n }\n }\n return !!this._currentToken;\n }\n}\n\n/**\n * Read the remaining characters from this Tokenizer's character stream.\n */\nfunction readRemaining(tokenizer: URLTokenizer): string {\n let result = \"\";\n if (tokenizer._currentIndex < tokenizer._textLength) {\n result = tokenizer._text.substring(tokenizer._currentIndex);\n tokenizer._currentIndex = tokenizer._textLength;\n }\n return result;\n}\n\n/**\n * Whether or not this URLTokenizer has a current character.\n */\nfunction hasCurrentCharacter(tokenizer: URLTokenizer): boolean {\n return tokenizer._currentIndex < tokenizer._textLength;\n}\n\n/**\n * Get the character in the text string at the current index.\n */\nfunction getCurrentCharacter(tokenizer: URLTokenizer): string {\n return tokenizer._text[tokenizer._currentIndex];\n}\n\n/**\n * Advance to the character in text that is \"step\" characters ahead. If no step value is provided,\n * then step will default to 1.\n */\nfunction nextCharacter(tokenizer: URLTokenizer, step?: number): void {\n if (hasCurrentCharacter(tokenizer)) {\n if (!step) {\n step = 1;\n }\n tokenizer._currentIndex += step;\n }\n}\n\n/**\n * Starting with the current character, peek \"charactersToPeek\" number of characters ahead in this\n * Tokenizer's stream of characters.\n */\nfunction peekCharacters(tokenizer: URLTokenizer, charactersToPeek: number): string {\n let endIndex: number = tokenizer._currentIndex + charactersToPeek;\n if (tokenizer._textLength < endIndex) {\n endIndex = tokenizer._textLength;\n }\n return tokenizer._text.substring(tokenizer._currentIndex, endIndex);\n}\n\n/**\n * Read characters from this Tokenizer until the end of the stream or until the provided condition\n * is false when provided the current character.\n */\nfunction readWhile(tokenizer: URLTokenizer, condition: (character: string) => boolean): string {\n let result = \"\";\n\n while (hasCurrentCharacter(tokenizer)) {\n const currentCharacter: string = getCurrentCharacter(tokenizer);\n if (!condition(currentCharacter)) {\n break;\n } else {\n result += currentCharacter;\n nextCharacter(tokenizer);\n }\n }\n\n return result;\n}\n\n/**\n * Read characters from this Tokenizer until a non-alphanumeric character or the end of the\n * character stream is reached.\n */\nfunction readWhileLetterOrDigit(tokenizer: URLTokenizer): string {\n return readWhile(tokenizer, (character: string) => isAlphaNumericCharacter(character));\n}\n\n/**\n * Read characters from this Tokenizer until one of the provided terminating characters is read or\n * the end of the character stream is reached.\n */\nfunction readUntilCharacter(tokenizer: URLTokenizer, ...terminatingCharacters: string[]): string {\n return readWhile(\n tokenizer,\n (character: string) => terminatingCharacters.indexOf(character) === -1\n );\n}\n\nfunction nextScheme(tokenizer: URLTokenizer): void {\n const scheme: string = readWhileLetterOrDigit(tokenizer);\n tokenizer._currentToken = URLToken.scheme(scheme);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else {\n tokenizer._currentState = \"HOST\";\n }\n}\n\nfunction nextSchemeOrHost(tokenizer: URLTokenizer): void {\n const schemeOrHost: string = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \":\") {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n tokenizer._currentToken = URLToken.scheme(schemeOrHost);\n tokenizer._currentState = \"HOST\";\n } else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"PORT\";\n }\n } else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n }\n}\n\nfunction nextHost(tokenizer: URLTokenizer): void {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n nextCharacter(tokenizer, 3);\n }\n\n const host: string = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n tokenizer._currentToken = URLToken.host(host);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \":\") {\n tokenizer._currentState = \"PORT\";\n } else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextPort(tokenizer: URLTokenizer): void {\n if (getCurrentCharacter(tokenizer) === \":\") {\n nextCharacter(tokenizer);\n }\n\n const port: string = readUntilCharacter(tokenizer, \"/\", \"?\");\n tokenizer._currentToken = URLToken.port(port);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextPath(tokenizer: URLTokenizer): void {\n const path: string = readUntilCharacter(tokenizer, \"?\");\n tokenizer._currentToken = URLToken.path(path);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextQuery(tokenizer: URLTokenizer): void {\n if (getCurrentCharacter(tokenizer) === \"?\") {\n nextCharacter(tokenizer);\n }\n\n const query: string = readRemaining(tokenizer);\n tokenizer._currentToken = URLToken.query(query);\n tokenizer._currentState = \"DONE\";\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Constants } from \"./constants\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { RestError } from \"../restError\";\nimport { WebResourceLike } from \"../webResource\";\nimport { XML_ATTRKEY } from \"./serializer.common\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst validUuidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;\n\n/**\n * A constant that indicates whether the environment is node.js or browser based.\n */\nexport const isNode =\n typeof process !== \"undefined\" &&\n !!process.version &&\n !!process.versions &&\n !!process.versions.node;\n\n/**\n * Checks if a parsed URL is HTTPS\n *\n * @param urlToCheck - The url to check\n * @returns True if the URL is HTTPS; false otherwise.\n */\nexport function urlIsHTTPS(urlToCheck: { protocol: string }): boolean {\n return urlToCheck.protocol.toLowerCase() === Constants.HTTPS;\n}\n\n/**\n * Encodes an URI.\n *\n * @param uri - The URI to be encoded.\n * @returns The encoded URI.\n */\nexport function encodeUri(uri: string): string {\n return encodeURIComponent(uri)\n .replace(/!/g, \"%21\")\n .replace(/\"/g, \"%27\")\n .replace(/\\(/g, \"%28\")\n .replace(/\\)/g, \"%29\")\n .replace(/\\*/g, \"%2A\");\n}\n\n/**\n * Returns a stripped version of the Http Response which only contains body,\n * headers and the status.\n *\n * @param response - The Http Response\n * @returns The stripped version of Http Response.\n */\nexport function stripResponse(response: HttpOperationResponse): any {\n const strippedResponse: any = {};\n strippedResponse.body = response.bodyAsText;\n strippedResponse.headers = response.headers;\n strippedResponse.status = response.status;\n return strippedResponse;\n}\n\n/**\n * Returns a stripped version of the Http Request that does not contain the\n * Authorization header.\n *\n * @param request - The Http Request object\n * @returns The stripped version of Http Request.\n */\nexport function stripRequest(request: WebResourceLike): WebResourceLike {\n const strippedRequest = request.clone();\n if (strippedRequest.headers) {\n strippedRequest.headers.remove(\"authorization\");\n }\n return strippedRequest;\n}\n\n/**\n * Validates the given uuid as a string\n *\n * @param uuid - The uuid as a string that needs to be validated\n * @returns True if the uuid is valid; false otherwise.\n */\nexport function isValidUuid(uuid: string): boolean {\n return validUuidRegex.test(uuid);\n}\n\n/**\n * Generated UUID\n *\n * @returns RFC4122 v4 UUID.\n */\nexport function generateUuid(): string {\n return uuidv4();\n}\n\n/**\n * Executes an array of promises sequentially. Inspiration of this method is here:\n * https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html. An awesome blog on promises!\n *\n * @param promiseFactories - An array of promise factories(A function that return a promise)\n * @param kickstart - Input to the first promise that is used to kickstart the promise chain.\n * If not provided then the promise chain starts with undefined.\n * @returns A chain of resolved or rejected promises\n */\nexport function executePromisesSequentially(\n promiseFactories: Array,\n kickstart: unknown\n): Promise {\n let result = Promise.resolve(kickstart);\n promiseFactories.forEach((promiseFactory) => {\n result = result.then(promiseFactory);\n });\n return result;\n}\n\n/**\n * Service callback that is returned for REST requests initiated by the service client.\n */\nexport interface ServiceCallback {\n /**\n * A method that will be invoked as a callback to a service function.\n * @param err - The error occurred if any, while executing the request; otherwise null.\n * @param result - The deserialized response body if an error did not occur.\n * @param request - The raw/actual request sent to the server if an error did not occur.\n * @param response - The raw/actual response from the server if an error did not occur.\n */\n (\n err: Error | RestError | null,\n result?: TResult,\n request?: WebResourceLike,\n response?: HttpOperationResponse\n ): void;\n}\n\n/**\n * Converts a Promise to a callback.\n * @param promise - The Promise to be converted to a callback\n * @returns A function that takes the callback `(cb: Function) => void`\n * @deprecated generated code should instead depend on responseToBody\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function promiseToCallback(promise: Promise): (cb: Function) => void {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n return (cb: Function): void => {\n promise\n .then((data: any) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n return cb(undefined, data);\n })\n .catch((err: Error) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(err);\n });\n };\n}\n\n/**\n * Converts a Promise to a service callback.\n * @param promise - The Promise of HttpOperationResponse to be converted to a service callback\n * @returns A function that takes the service callback (cb: ServiceCallback): void\n */\nexport function promiseToServiceCallback(\n promise: Promise\n): (cb: ServiceCallback) => void {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n return (cb: ServiceCallback): void => {\n promise\n .then((data: HttpOperationResponse) => {\n return process.nextTick(cb, undefined, data.parsedBody as T, data.request, data);\n })\n .catch((err: Error) => {\n process.nextTick(cb, err);\n });\n };\n}\n\nexport function prepareXMLRootList(\n obj: unknown,\n elementName: string,\n xmlNamespaceKey?: string,\n xmlNamespace?: string\n): { [s: string]: any } {\n if (!Array.isArray(obj)) {\n obj = [obj];\n }\n\n if (!xmlNamespaceKey || !xmlNamespace) {\n return { [elementName]: obj };\n }\n\n const result = { [elementName]: obj };\n result[XML_ATTRKEY] = { [xmlNamespaceKey]: xmlNamespace };\n return result;\n}\n\n/**\n * Applies the properties on the prototype of sourceCtors to the prototype of targetCtor\n * @param targetCtor - The target object on which the properties need to be applied.\n * @param sourceCtors - An array of source objects from which the properties need to be taken.\n */\nexport function applyMixins(targetCtorParam: unknown, sourceCtors: any[]): void {\n const castTargetCtorParam = targetCtorParam as {\n prototype: Record;\n };\n sourceCtors.forEach((sourceCtor) => {\n Object.getOwnPropertyNames(sourceCtor.prototype).forEach((name) => {\n castTargetCtorParam.prototype[name] = sourceCtor.prototype[name];\n });\n });\n}\n\nconst validateISODuration =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n/**\n * Indicates whether the given string is in ISO 8601 format.\n * @param value - The value to be validated for ISO 8601 duration format.\n * @returns `true` if valid, `false` otherwise.\n */\nexport function isDuration(value: string): boolean {\n return validateISODuration.test(value);\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param value - The value to search and replace in.\n * @param searchValue - The value to search for in the value argument.\n * @param replaceValue - The value to replace searchValue with in the value argument.\n * @returns The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n\n/**\n * Determines whether the given entity is a basic/primitive type\n * (string, number, boolean, null, undefined).\n * @param value - Any entity\n * @returns true is it is primitive type, false otherwise.\n */\nexport function isPrimitiveType(value: unknown): boolean {\n return (typeof value !== \"object\" && typeof value !== \"function\") || value === null;\n}\n\nexport function getEnvironmentValue(name: string): string | undefined {\n if (process.env[name]) {\n return process.env[name];\n } else if (process.env[name.toLowerCase()]) {\n return process.env[name.toLowerCase()];\n }\n return undefined;\n}\n\n/**\n * @internal\n */\nexport type UnknownObject = { [s: string]: unknown };\n\n/**\n * @internal\n * @returns true when input is an object type that is not null, Array, RegExp, or Date.\n */\nexport function isObject(input: unknown): input is UnknownObject {\n return (\n typeof input === \"object\" &&\n input !== null &&\n !Array.isArray(input) &&\n !(input instanceof RegExp) &&\n !(input instanceof Date)\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * A set of constants used internally when processing requests.\n */\nexport const Constants = {\n /**\n * The core-http version\n */\n coreHttpVersion: \"2.2.5\",\n\n /**\n * Specifies HTTP.\n */\n HTTP: \"http:\",\n\n /**\n * Specifies HTTPS.\n */\n HTTPS: \"https:\",\n\n /**\n * Specifies HTTP Proxy.\n */\n HTTP_PROXY: \"HTTP_PROXY\",\n\n /**\n * Specifies HTTPS Proxy.\n */\n HTTPS_PROXY: \"HTTPS_PROXY\",\n\n /**\n * Specifies NO Proxy.\n */\n NO_PROXY: \"NO_PROXY\",\n\n /**\n * Specifies ALL Proxy.\n */\n ALL_PROXY: \"ALL_PROXY\",\n\n HttpConstants: {\n /**\n * Http Verbs\n */\n HttpVerbs: {\n PUT: \"PUT\",\n GET: \"GET\",\n DELETE: \"DELETE\",\n POST: \"POST\",\n MERGE: \"MERGE\",\n HEAD: \"HEAD\",\n PATCH: \"PATCH\",\n },\n\n StatusCodes: {\n TooManyRequests: 429,\n ServiceUnavailable: 503,\n },\n },\n\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n */\n AUTHORIZATION: \"authorization\",\n\n AUTHORIZATION_SCHEME: \"Bearer\",\n\n /**\n * The Retry-After response-header field can be used with a 503 (Service\n * Unavailable) or 349 (Too Many Requests) responses to indicate how long\n * the service is expected to be unavailable to the requesting client.\n */\n RETRY_AFTER: \"Retry-After\",\n\n /**\n * The UserAgent header.\n */\n USER_AGENT: \"User-Agent\",\n },\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Default key used to access the XML attributes.\n */\nexport const XML_ATTRKEY = \"$\";\n/**\n * Default key used to access the XML value content.\n */\nexport const XML_CHARKEY = \"_\";\n\n/**\n * Options to govern behavior of xml parser and builder.\n */\nexport interface SerializerOptions {\n /**\n * indicates the name of the root element in the resulting XML when building XML.\n */\n rootName?: string;\n /**\n * indicates whether the root element is to be included or not in the output when parsing XML.\n */\n includeRoot?: boolean;\n /**\n * key used to access the XML value content when parsing XML.\n */\n xmlCharKey?: string;\n}\n","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import crypto from 'crypto';\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n crypto.randomFillSync(rnds8Pool);\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (util.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { Sanitizer } from \"./util/sanitizer\";\nimport { WebResourceLike } from \"./webResource\";\nimport { custom } from \"./util/inspect\";\n\nconst errorSanitizer = new Sanitizer();\n\n/**\n * An error resulting from an HTTP request to a service endpoint.\n */\nexport class RestError extends Error {\n /**\n * A constant string to identify errors that may arise when making an HTTP request that indicates an issue with the transport layer (e.g. the hostname of the URL cannot be resolved via DNS.)\n */\n static readonly REQUEST_SEND_ERROR: string = \"REQUEST_SEND_ERROR\";\n /**\n * A constant string to identify errors that may arise from parsing an incoming HTTP response. Usually indicates a malformed HTTP body, such as an encoded JSON payload that is incomplete.\n */\n static readonly PARSE_ERROR: string = \"PARSE_ERROR\";\n\n /**\n * The error code, if any. Can be one of the static error code properties (REQUEST_SEND_ERROR / PARSE_ERROR) or can be a string code from an underlying system call (E_NOENT).\n */\n code?: string;\n /**\n * The HTTP status code of the response, if one was returned.\n */\n statusCode?: number;\n /**\n * Outgoing request.\n */\n request?: WebResourceLike;\n /**\n * Incoming response.\n */\n response?: HttpOperationResponse;\n /**\n * Any additional details. In the case of deserialization errors, can be the processed response.\n */\n details?: unknown;\n constructor(\n message: string,\n code?: string,\n statusCode?: number,\n request?: WebResourceLike,\n response?: HttpOperationResponse\n ) {\n super(message);\n this.name = \"RestError\";\n this.code = code;\n this.statusCode = statusCode;\n this.request = request;\n this.response = response;\n\n Object.setPrototypeOf(this, RestError.prototype);\n }\n\n /**\n * Logging method for util.inspect in Node\n */\n [custom](): string {\n return `RestError: ${this.message} \\n ${errorSanitizer.sanitize(this)}`;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { URLBuilder, URLQuery } from \"../url\";\nimport { UnknownObject, isObject } from \"./utils\";\n\nexport interface SanitizerOptions {\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n allowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n allowedQueryParameters?: string[];\n}\n\nconst RedactedString = \"REDACTED\";\n\nconst defaultAllowedHeaderNames = [\n \"x-ms-client-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-useragent\",\n \"x-ms-correlation-request-id\",\n \"x-ms-request-id\",\n \"client-request-id\",\n \"ms-cv\",\n \"return-client-request-id\",\n \"traceparent\",\n\n \"Access-Control-Allow-Credentials\",\n \"Access-Control-Allow-Headers\",\n \"Access-Control-Allow-Methods\",\n \"Access-Control-Allow-Origin\",\n \"Access-Control-Expose-Headers\",\n \"Access-Control-Max-Age\",\n \"Access-Control-Request-Headers\",\n \"Access-Control-Request-Method\",\n \"Origin\",\n\n \"Accept\",\n \"Accept-Encoding\",\n \"Cache-Control\",\n \"Connection\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"ETag\",\n \"Expires\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"Last-Modified\",\n \"Pragma\",\n \"Request-Id\",\n \"Retry-After\",\n \"Server\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"WWW-Authenticate\",\n];\n\nconst defaultAllowedQueryParameters: string[] = [\"api-version\"];\n\nexport class Sanitizer {\n public allowedHeaderNames: Set;\n public allowedQueryParameters: Set;\n\n constructor({ allowedHeaderNames = [], allowedQueryParameters = [] }: SanitizerOptions = {}) {\n allowedHeaderNames = Array.isArray(allowedHeaderNames)\n ? defaultAllowedHeaderNames.concat(allowedHeaderNames)\n : defaultAllowedHeaderNames;\n\n allowedQueryParameters = Array.isArray(allowedQueryParameters)\n ? defaultAllowedQueryParameters.concat(allowedQueryParameters)\n : defaultAllowedQueryParameters;\n\n this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase()));\n this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase()));\n }\n\n public sanitize(obj: unknown): string {\n const seen = new Set();\n return JSON.stringify(\n obj,\n (key: string, value: unknown) => {\n // Ensure Errors include their interesting non-enumerable members\n if (value instanceof Error) {\n return {\n ...value,\n name: value.name,\n message: value.message,\n };\n }\n\n if (key === \"_headersMap\") {\n return this.sanitizeHeaders(value as UnknownObject);\n } else if (key === \"url\") {\n return this.sanitizeUrl(value as string);\n } else if (key === \"query\") {\n return this.sanitizeQuery(value as UnknownObject);\n } else if (key === \"body\") {\n // Don't log the request body\n return undefined;\n } else if (key === \"response\") {\n // Don't log response again\n return undefined;\n } else if (key === \"operationSpec\") {\n // When using sendOperationRequest, the request carries a massive\n // field with the autorest spec. No need to log it.\n return undefined;\n } else if (Array.isArray(value) || isObject(value)) {\n if (seen.has(value)) {\n return \"[Circular]\";\n }\n seen.add(value);\n }\n\n return value;\n },\n 2\n );\n }\n\n private sanitizeHeaders(value: UnknownObject): UnknownObject {\n return this.sanitizeObject(value, this.allowedHeaderNames, (v, k) => v[k].value);\n }\n\n private sanitizeQuery(value: UnknownObject): UnknownObject {\n return this.sanitizeObject(value, this.allowedQueryParameters, (v, k) => v[k]);\n }\n\n private sanitizeObject(\n value: UnknownObject,\n allowedKeys: Set,\n accessor: (value: any, key: string) => any\n ): UnknownObject {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n const sanitized: UnknownObject = {};\n\n for (const k of Object.keys(value)) {\n if (allowedKeys.has(k.toLowerCase())) {\n sanitized[k] = accessor(value, k);\n } else {\n sanitized[k] = RedactedString;\n }\n }\n\n return sanitized;\n }\n\n private sanitizeUrl(value: string): string {\n if (typeof value !== \"string\" || value === null) {\n return value;\n }\n\n const urlBuilder = URLBuilder.parse(value);\n const queryString = urlBuilder.getQuery();\n\n if (!queryString) {\n return value;\n }\n\n const query = URLQuery.parse(queryString);\n for (const k of query.keys()) {\n if (!this.allowedQueryParameters.has(k.toLowerCase())) {\n query.set(k, RedactedString);\n }\n }\n\n urlBuilder.setQuery(query.toString());\n return urlBuilder.toString();\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { inspect } from \"util\";\n\nexport const custom = inspect.custom;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"core-http\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport debug, { Debugger } from \"./debug\";\nexport { Debugger } from \"./debug\";\n\nconst registeredLoggers = new Set();\nconst logLevelFromEnv =\n (typeof process !== \"undefined\" && process.env && process.env.AZURE_LOG_LEVEL) || undefined;\n\nlet azureLogLevel: AzureLogLevel | undefined;\n\n/**\n * The AzureLogger provides a mechanism for overriding where logs are output to.\n * By default, logs are sent to stderr.\n * Override the `log` method to redirect logs to another location.\n */\nexport const AzureLogger: AzureClientLogger = debug(\"azure\");\nAzureLogger.log = (...args) => {\n debug.log(...args);\n};\n\n/**\n * The log levels supported by the logger.\n * The log levels in order of most verbose to least verbose are:\n * - verbose\n * - info\n * - warning\n * - error\n */\nexport type AzureLogLevel = \"verbose\" | \"info\" | \"warning\" | \"error\";\nconst AZURE_LOG_LEVELS = [\"verbose\", \"info\", \"warning\", \"error\"];\n\ntype AzureDebugger = Debugger & { level: AzureLogLevel };\n\n/**\n * An AzureClientLogger is a function that can log to an appropriate severity level.\n */\nexport type AzureClientLogger = Debugger;\n\nif (logLevelFromEnv) {\n // avoid calling setLogLevel because we don't want a mis-set environment variable to crash\n if (isAzureLogLevel(logLevelFromEnv)) {\n setLogLevel(logLevelFromEnv);\n } else {\n console.error(\n `AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(\n \", \"\n )}.`\n );\n }\n}\n\n/**\n * Immediately enables logging at the specified log level.\n * @param level - The log level to enable for logging.\n * Options from most verbose to least verbose are:\n * - verbose\n * - info\n * - warning\n * - error\n */\nexport function setLogLevel(level?: AzureLogLevel): void {\n if (level && !isAzureLogLevel(level)) {\n throw new Error(\n `Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(\",\")}`\n );\n }\n azureLogLevel = level;\n\n const enabledNamespaces = [];\n for (const logger of registeredLoggers) {\n if (shouldEnable(logger)) {\n enabledNamespaces.push(logger.namespace);\n }\n }\n\n debug.enable(enabledNamespaces.join(\",\"));\n}\n\n/**\n * Retrieves the currently specified log level.\n */\nexport function getLogLevel(): AzureLogLevel | undefined {\n return azureLogLevel;\n}\n\nconst levelMap = {\n verbose: 400,\n info: 300,\n warning: 200,\n error: 100\n};\n\n/**\n * Defines the methods available on the SDK-facing logger.\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport interface AzureLogger {\n /**\n * Used for failures the program is unlikely to recover from,\n * such as Out of Memory.\n */\n error: Debugger;\n /**\n * Used when a function fails to perform its intended task.\n * Usually this means the function will throw an exception.\n * Not used for self-healing events (e.g. automatic retry)\n */\n warning: Debugger;\n /**\n * Used when a function operates normally.\n */\n info: Debugger;\n /**\n * Used for detailed trbouleshooting scenarios. This is\n * intended for use by developers / system administrators\n * for diagnosing specific failures.\n */\n verbose: Debugger;\n}\n\n/**\n * Creates a logger for use by the Azure SDKs that inherits from `AzureLogger`.\n * @param namespace - The name of the SDK package.\n * @hidden\n */\nexport function createClientLogger(namespace: string): AzureLogger {\n const clientRootLogger: AzureClientLogger = AzureLogger.extend(namespace);\n patchLogMethod(AzureLogger, clientRootLogger);\n return {\n error: createLogger(clientRootLogger, \"error\"),\n warning: createLogger(clientRootLogger, \"warning\"),\n info: createLogger(clientRootLogger, \"info\"),\n verbose: createLogger(clientRootLogger, \"verbose\")\n };\n}\n\nfunction patchLogMethod(parent: AzureClientLogger, child: AzureClientLogger | AzureDebugger): void {\n child.log = (...args) => {\n parent.log(...args);\n };\n}\n\nfunction createLogger(parent: AzureClientLogger, level: AzureLogLevel): AzureDebugger {\n const logger: AzureDebugger = Object.assign(parent.extend(level), {\n level\n });\n\n patchLogMethod(parent, logger);\n\n if (shouldEnable(logger)) {\n const enabledNamespaces = debug.disable();\n debug.enable(enabledNamespaces + \",\" + logger.namespace);\n }\n\n registeredLoggers.add(logger);\n\n return logger;\n}\n\nfunction shouldEnable(logger: AzureDebugger): boolean {\n if (azureLogLevel && levelMap[logger.level] <= levelMap[azureLogLevel]) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction isAzureLogLevel(logLevel: string): logLevel is AzureLogLevel {\n return AZURE_LOG_LEVELS.includes(logLevel as any);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { log } from \"./log\";\n\n/**\n * A simple mechanism for enabling logging.\n * Intended to mimic the publicly available `debug` package.\n */\nexport interface Debug {\n /**\n * Creates a new logger with the given namespace.\n */\n (namespace: string): Debugger;\n /**\n * The default log method (defaults to console)\n */\n log: (...args: any[]) => void;\n /**\n * Enables a particular set of namespaces.\n * To enable multiple separate them with commas, e.g. \"info,debug\".\n * Supports wildcards, e.g. \"azure:*\"\n * Supports skip syntax, e.g. \"azure:*,-azure:storage:*\" will enable\n * everything under azure except for things under azure:storage.\n */\n enable: (namespaces: string) => void;\n /**\n * Checks if a particular namespace is enabled.\n */\n enabled: (namespace: string) => boolean;\n /**\n * Disables all logging, returns what was previously enabled.\n */\n disable: () => string;\n}\n\n/**\n * A log function that can be dynamically enabled and redirected.\n */\nexport interface Debugger {\n /**\n * Logs the given arguments to the `log` method.\n */\n (...args: any[]): void;\n /**\n * True if this logger is active and logging.\n */\n enabled: boolean;\n /**\n * Used to cleanup/remove this logger.\n */\n destroy: () => boolean;\n /**\n * The current log method. Can be overridden to redirect output.\n */\n log: (...args: any[]) => void;\n /**\n * The namespace of this logger.\n */\n namespace: string;\n /**\n * Extends this logger with a child namespace.\n * Namespaces are separated with a ':' character.\n */\n extend: (namespace: string) => Debugger;\n}\n\nconst debugEnvVariable =\n (typeof process !== \"undefined\" && process.env && process.env.DEBUG) || undefined;\n\nlet enabledString: string | undefined;\nlet enabledNamespaces: RegExp[] = [];\nlet skippedNamespaces: RegExp[] = [];\nconst debuggers: Debugger[] = [];\n\nif (debugEnvVariable) {\n enable(debugEnvVariable);\n}\n\nconst debugObj: Debug = Object.assign(\n (namespace: string): Debugger => {\n return createDebugger(namespace);\n },\n {\n enable,\n enabled,\n disable,\n log\n }\n);\n\nfunction enable(namespaces: string): void {\n enabledString = namespaces;\n enabledNamespaces = [];\n skippedNamespaces = [];\n const wildcard = /\\*/g;\n const namespaceList = namespaces.split(\",\").map((ns) => ns.trim().replace(wildcard, \".*?\"));\n for (const ns of namespaceList) {\n if (ns.startsWith(\"-\")) {\n skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`));\n } else {\n enabledNamespaces.push(new RegExp(`^${ns}$`));\n }\n }\n for (const instance of debuggers) {\n instance.enabled = enabled(instance.namespace);\n }\n}\n\nfunction enabled(namespace: string): boolean {\n if (namespace.endsWith(\"*\")) {\n return true;\n }\n\n for (const skipped of skippedNamespaces) {\n if (skipped.test(namespace)) {\n return false;\n }\n }\n for (const enabledNamespace of enabledNamespaces) {\n if (enabledNamespace.test(namespace)) {\n return true;\n }\n }\n return false;\n}\n\nfunction disable(): string {\n const result = enabledString || \"\";\n enable(\"\");\n return result;\n}\n\nfunction createDebugger(namespace: string): Debugger {\n const newDebugger: Debugger = Object.assign(debug, {\n enabled: enabled(namespace),\n destroy,\n log: debugObj.log,\n namespace,\n extend\n });\n\n function debug(...args: any[]): void {\n if (!newDebugger.enabled) {\n return;\n }\n if (args.length > 0) {\n args[0] = `${namespace} ${args[0]}`;\n }\n newDebugger.log(...args);\n }\n\n debuggers.push(newDebugger);\n\n return newDebugger;\n}\n\nfunction destroy(this: Debugger): boolean {\n const index = debuggers.indexOf(this);\n if (index >= 0) {\n debuggers.splice(index, 1);\n return true;\n }\n return false;\n}\n\nfunction extend(this: Debugger, namespace: string): Debugger {\n const newDebugger = createDebugger(`${this.namespace}:${namespace}`);\n newDebugger.log = this.log;\n return newDebugger;\n}\n\nexport default debugObj;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport util from \"util\";\nimport { EOL } from \"os\";\n\nexport function log(message: unknown, ...args: any[]): void {\n process.stderr.write(`${util.format(message, ...args)}${EOL}`);\n}\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError };\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestOptionsBase, TransferProgressEvent } from \"./webResource\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { OperationTracingOptions } from \"@azure/core-tracing\";\n\n/**\n * The base options type for all operations.\n */\nexport interface OperationOptions {\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Options used when creating and sending HTTP requests for this operation.\n */\n requestOptions?: OperationRequestOptions;\n /**\n * Options used when tracing is enabled.\n */\n tracingOptions?: OperationTracingOptions;\n}\n\n/**\n * Options that allow configuring the handling of HTTP requests made by an SDK operation.\n */\nexport interface OperationRequestOptions {\n /**\n * User defined custom request headers that will be applied before the request is sent.\n */\n customHeaders?: { [key: string]: string };\n\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n */\n timeout?: number;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback which fires upon download progress.\n */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n}\n\n/**\n * Converts an OperationOptions to a RequestOptionsBase\n *\n * @param opts - OperationOptions object to convert to RequestOptionsBase\n */\nexport function operationOptionsToRequestOptionsBase(\n opts: T\n): RequestOptionsBase {\n const { requestOptions, tracingOptions, ...additionalOptions } = opts;\n\n let result: RequestOptionsBase = additionalOptions;\n\n if (requestOptions) {\n result = { ...result, ...requestOptions };\n }\n\n if (tracingOptions) {\n result.tracingContext = tracingOptions.tracingContext;\n // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.\n result.spanOptions = (tracingOptions as any)?.spanOptions;\n }\n\n return result;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as utils from \"./util/utils\";\nimport { CompositeMapper, DictionaryMapper, Mapper, MapperType, Serializer } from \"./serializer\";\nimport {\n DefaultDeserializationOptions,\n DeserializationContentTypes,\n deserializationPolicy,\n} from \"./policies/deserializationPolicy\";\nimport { DefaultKeepAliveOptions, keepAlivePolicy } from \"./policies/keepAlivePolicy\";\nimport { DefaultRedirectOptions, redirectPolicy } from \"./policies/redirectPolicy\";\nimport { DefaultRetryOptions, exponentialRetryPolicy } from \"./policies/exponentialRetryPolicy\";\nimport { HttpOperationResponse, RestResponse } from \"./httpOperationResponse\";\nimport { LogPolicyOptions, logPolicy } from \"./policies/logPolicy\";\nimport {\n OperationParameter,\n ParameterPath,\n getPathStringFromParameter,\n getPathStringFromParameterPath,\n} from \"./operationParameter\";\nimport { OperationSpec, getStreamResponseStatusCodes } from \"./operationSpec\";\nimport {\n RequestOptionsBase,\n RequestPrepareOptions,\n WebResource,\n WebResourceLike,\n isWebResourceLike,\n} from \"./webResource\";\nimport {\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./policies/requestPolicy\";\nimport { SerializerOptions, XML_ATTRKEY, XML_CHARKEY } from \"./util/serializer.common\";\nimport { ServiceCallback, isNode } from \"./util/utils\";\nimport { TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport {\n getDefaultUserAgentHeaderName,\n getDefaultUserAgentValue,\n userAgentPolicy,\n} from \"./policies/userAgentPolicy\";\nimport { HttpClient } from \"./httpClient\";\nimport { HttpPipelineLogger } from \"./httpPipelineLogger\";\nimport { InternalPipelineOptions } from \"./pipelineOptions\";\nimport { OperationArguments } from \"./operationArguments\";\nimport { OperationResponse } from \"./operationResponse\";\nimport { QueryCollectionFormat } from \"./queryCollectionFormat\";\nimport { ServiceClientCredentials } from \"./credentials/serviceClientCredentials\";\nimport { URLBuilder } from \"./url\";\nimport { bearerTokenAuthenticationPolicy } from \"./policies/bearerTokenAuthenticationPolicy\";\nimport { disableResponseDecompressionPolicy } from \"./policies/disableResponseDecompressionPolicy\";\nimport { generateClientRequestIdPolicy } from \"./policies/generateClientRequestIdPolicy\";\nimport { getCachedDefaultHttpClient } from \"./httpClientCache\";\nimport { logger } from \"./log\";\nimport { ndJsonPolicy } from \"./policies/ndJsonPolicy\";\nimport { proxyPolicy } from \"./policies/proxyPolicy\";\nimport { rpRegistrationPolicy } from \"./policies/rpRegistrationPolicy\";\nimport { signingPolicy } from \"./policies/signingPolicy\";\nimport { stringifyXML } from \"./util/xml\";\nimport { systemErrorRetryPolicy } from \"./policies/systemErrorRetryPolicy\";\nimport { throttlingRetryPolicy } from \"./policies/throttlingRetryPolicy\";\nimport { tracingPolicy } from \"./policies/tracingPolicy\";\n\n/**\n * Options to configure a proxy for outgoing requests (Node.js only).\n */\nexport interface ProxySettings {\n /**\n * The proxy's host address.\n */\n host: string;\n\n /**\n * The proxy host's port.\n */\n port: number;\n\n /**\n * The user name to authenticate with the proxy, if required.\n */\n username?: string;\n\n /**\n * The password to authenticate with the proxy, if required.\n */\n password?: string;\n}\n\n/**\n * An alias of {@link ProxySettings} for future use.\n */\nexport type ProxyOptions = ProxySettings;\n\n/**\n * Options to be provided while creating the client.\n */\nexport interface ServiceClientOptions {\n /**\n * An array of factories which get called to create the RequestPolicy pipeline used to send a HTTP\n * request on the wire, or a function that takes in the defaultRequestPolicyFactories and returns\n * the requestPolicyFactories that will be used.\n */\n requestPolicyFactories?:\n | RequestPolicyFactory[]\n | ((defaultRequestPolicyFactories: RequestPolicyFactory[]) => void | RequestPolicyFactory[]);\n /**\n * The HttpClient that will be used to send HTTP requests.\n */\n httpClient?: HttpClient;\n /**\n * The HttpPipelineLogger that can be used to debug RequestPolicies within the HTTP pipeline.\n */\n httpPipelineLogger?: HttpPipelineLogger;\n /**\n * If set to true, turn off the default retry policy.\n */\n noRetryPolicy?: boolean;\n /**\n * Gets or sets the retry timeout in seconds for AutomaticRPRegistration. Default value is 30.\n */\n rpRegistrationRetryTimeout?: number;\n /**\n * Whether or not to generate a client request ID header for each HTTP request.\n */\n generateClientRequestIdHeader?: boolean;\n /**\n * Whether to include credentials in CORS requests in the browser.\n * See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials for more information.\n */\n withCredentials?: boolean;\n /**\n * If specified, a GenerateRequestIdPolicy will be added to the HTTP pipeline that will add a\n * header to all outgoing requests with this header name and a random UUID as the request ID.\n */\n clientRequestIdHeaderName?: string;\n /**\n * The content-types that will be associated with JSON or XML serialization.\n */\n deserializationContentTypes?: DeserializationContentTypes;\n /**\n * The header name to use for the telemetry header while sending the request. If this is not\n * specified, then \"User-Agent\" will be used when running on Node.js and \"x-ms-useragent\" will\n * be used when running in a browser.\n */\n userAgentHeaderName?: string | ((defaultUserAgentHeaderName: string) => string);\n /**\n * The string to be set to the telemetry header while sending the request, or a function that\n * takes in the default user-agent string and returns the user-agent string that will be used.\n */\n userAgent?: string | ((defaultUserAgent: string) => string);\n /**\n * Proxy settings which will be used for every HTTP request (Node.js only).\n */\n proxySettings?: ProxySettings;\n /**\n * If specified, will be used to build the BearerTokenAuthenticationPolicy.\n */\n credentialScopes?: string | string[];\n}\n\n/**\n * ServiceClient sends service requests and receives responses.\n */\nexport class ServiceClient {\n /**\n * If specified, this is the base URI that requests will be made against for this ServiceClient.\n * If it is not specified, then all OperationSpecs must contain a baseUrl property.\n */\n protected baseUri?: string;\n\n /**\n * The default request content type for the service.\n * Used if no requestContentType is present on an OperationSpec.\n */\n protected requestContentType?: string;\n\n /**\n * The HTTP client that will be used to send requests.\n */\n private readonly _httpClient: HttpClient;\n private readonly _requestPolicyOptions: RequestPolicyOptions;\n\n private readonly _requestPolicyFactories: RequestPolicyFactory[];\n private readonly _withCredentials: boolean;\n\n /**\n * The ServiceClient constructor\n * @param credentials - The credentials used for authentication with the service.\n * @param options - The service client options that govern the behavior of the client.\n */\n constructor(\n credentials?: TokenCredential | ServiceClientCredentials,\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: ServiceClientOptions\n ) {\n if (!options) {\n options = {};\n }\n\n this._withCredentials = options.withCredentials || false;\n this._httpClient = options.httpClient || getCachedDefaultHttpClient();\n this._requestPolicyOptions = new RequestPolicyOptions(options.httpPipelineLogger);\n\n let requestPolicyFactories: RequestPolicyFactory[];\n if (Array.isArray(options.requestPolicyFactories)) {\n logger.info(\"ServiceClient: using custom request policies\");\n requestPolicyFactories = options.requestPolicyFactories;\n } else {\n let authPolicyFactory: RequestPolicyFactory | undefined = undefined;\n if (isTokenCredential(credentials)) {\n logger.info(\n \"ServiceClient: creating bearer token authentication policy from provided credentials\"\n );\n // Create a wrapped RequestPolicyFactory here so that we can provide the\n // correct scope to the BearerTokenAuthenticationPolicy at the first time\n // one is requested. This is needed because generated ServiceClient\n // implementations do not set baseUri until after ServiceClient's constructor\n // is finished, leaving baseUri empty at the time when it is needed to\n // build the correct scope name.\n const wrappedPolicyFactory: () => RequestPolicyFactory = () => {\n let bearerTokenPolicyFactory: RequestPolicyFactory | undefined = undefined;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const serviceClient = this;\n const serviceClientOptions = options;\n return {\n create(nextPolicy: RequestPolicy, createOptions: RequestPolicyOptions): RequestPolicy {\n const credentialScopes = getCredentialScopes(\n serviceClientOptions,\n serviceClient.baseUri\n );\n\n if (!credentialScopes) {\n throw new Error(\n `When using credential, the ServiceClient must contain a baseUri or a credentialScopes in ServiceClientOptions. Unable to create a bearerTokenAuthenticationPolicy`\n );\n }\n\n if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) {\n bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(\n credentials,\n credentialScopes\n );\n }\n\n return bearerTokenPolicyFactory.create(nextPolicy, createOptions);\n },\n };\n };\n\n authPolicyFactory = wrappedPolicyFactory();\n } else if (credentials && typeof credentials.signRequest === \"function\") {\n logger.info(\"ServiceClient: creating signing policy from provided credentials\");\n authPolicyFactory = signingPolicy(credentials);\n } else if (credentials !== undefined && credentials !== null) {\n throw new Error(\"The credentials argument must implement the TokenCredential interface\");\n }\n\n logger.info(\"ServiceClient: using default request policies\");\n requestPolicyFactories = createDefaultRequestPolicyFactories(authPolicyFactory, options);\n if (options.requestPolicyFactories) {\n // options.requestPolicyFactories can also be a function that manipulates\n // the default requestPolicyFactories array\n const newRequestPolicyFactories: void | RequestPolicyFactory[] =\n options.requestPolicyFactories(requestPolicyFactories);\n if (newRequestPolicyFactories) {\n requestPolicyFactories = newRequestPolicyFactories;\n }\n }\n }\n this._requestPolicyFactories = requestPolicyFactories;\n }\n\n /**\n * Send the provided httpRequest.\n */\n sendRequest(options: RequestPrepareOptions | WebResourceLike): Promise {\n if (options === null || options === undefined || typeof options !== \"object\") {\n throw new Error(\"options cannot be null or undefined and it must be of type object.\");\n }\n\n let httpRequest: WebResourceLike;\n try {\n if (isWebResourceLike(options)) {\n options.validateRequestProperties();\n httpRequest = options;\n } else {\n httpRequest = new WebResource();\n httpRequest = httpRequest.prepare(options);\n }\n } catch (error: any) {\n return Promise.reject(error);\n }\n\n let httpPipeline: RequestPolicy = this._httpClient;\n if (this._requestPolicyFactories && this._requestPolicyFactories.length > 0) {\n for (let i = this._requestPolicyFactories.length - 1; i >= 0; --i) {\n httpPipeline = this._requestPolicyFactories[i].create(\n httpPipeline,\n this._requestPolicyOptions\n );\n }\n }\n return httpPipeline.sendRequest(httpRequest);\n }\n\n /**\n * Send an HTTP request that is populated using the provided OperationSpec.\n * @param operationArguments - The arguments that the HTTP request's templated values will be populated from.\n * @param operationSpec - The OperationSpec to use to populate the httpRequest.\n * @param callback - The callback to call when the response is received.\n */\n async sendOperationRequest(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n callback?: ServiceCallback\n ): Promise {\n if (typeof operationArguments.options === \"function\") {\n callback = operationArguments.options;\n operationArguments.options = undefined;\n }\n\n const serializerOptions = operationArguments.options?.serializerOptions;\n const httpRequest: WebResourceLike = new WebResource();\n\n let result: Promise;\n try {\n const baseUri: string | undefined = operationSpec.baseUrl || this.baseUri;\n if (!baseUri) {\n throw new Error(\n \"If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use.\"\n );\n }\n\n httpRequest.method = operationSpec.httpMethod;\n httpRequest.operationSpec = operationSpec;\n\n const requestUrl: URLBuilder = URLBuilder.parse(baseUri);\n if (operationSpec.path) {\n requestUrl.appendPath(operationSpec.path);\n }\n if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) {\n for (const urlParameter of operationSpec.urlParameters) {\n let urlParameterValue: string = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n urlParameter,\n operationSpec.serializer\n );\n urlParameterValue = operationSpec.serializer.serialize(\n urlParameter.mapper,\n urlParameterValue,\n getPathStringFromParameter(urlParameter),\n serializerOptions\n );\n if (!urlParameter.skipEncoding) {\n urlParameterValue = encodeURIComponent(urlParameterValue);\n }\n requestUrl.replaceAll(\n `{${urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)}}`,\n urlParameterValue\n );\n }\n }\n if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) {\n for (const queryParameter of operationSpec.queryParameters) {\n let queryParameterValue: any = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n queryParameter,\n operationSpec.serializer\n );\n if (queryParameterValue !== undefined && queryParameterValue !== null) {\n queryParameterValue = operationSpec.serializer.serialize(\n queryParameter.mapper,\n queryParameterValue,\n getPathStringFromParameter(queryParameter),\n serializerOptions\n );\n if (\n queryParameter.collectionFormat !== undefined &&\n queryParameter.collectionFormat !== null\n ) {\n if (queryParameter.collectionFormat === QueryCollectionFormat.Multi) {\n if (queryParameterValue.length === 0) {\n // The collection is empty, no need to try serializing the current queryParam\n continue;\n } else {\n for (const index in queryParameterValue) {\n const item = queryParameterValue[index];\n queryParameterValue[index] =\n item === undefined || item === null ? \"\" : item.toString();\n }\n }\n } else if (\n queryParameter.collectionFormat === QueryCollectionFormat.Ssv ||\n queryParameter.collectionFormat === QueryCollectionFormat.Tsv\n ) {\n queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat);\n }\n }\n if (!queryParameter.skipEncoding) {\n if (Array.isArray(queryParameterValue)) {\n for (const index in queryParameterValue) {\n if (\n queryParameterValue[index] !== undefined &&\n queryParameterValue[index] !== null\n ) {\n queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]);\n }\n }\n } else {\n queryParameterValue = encodeURIComponent(queryParameterValue);\n }\n }\n if (\n queryParameter.collectionFormat !== undefined &&\n queryParameter.collectionFormat !== null &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Multi &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Ssv &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Tsv\n ) {\n queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat);\n }\n requestUrl.setQueryParameter(\n queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter),\n queryParameterValue\n );\n }\n }\n }\n httpRequest.url = requestUrl.toString();\n\n const contentType = operationSpec.contentType || this.requestContentType;\n if (contentType && operationSpec.requestBody) {\n httpRequest.headers.set(\"Content-Type\", contentType);\n }\n\n if (operationSpec.headerParameters) {\n for (const headerParameter of operationSpec.headerParameters) {\n let headerValue: any = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n headerParameter,\n operationSpec.serializer\n );\n if (headerValue !== undefined && headerValue !== null) {\n headerValue = operationSpec.serializer.serialize(\n headerParameter.mapper,\n headerValue,\n getPathStringFromParameter(headerParameter),\n serializerOptions\n );\n const headerCollectionPrefix = (headerParameter.mapper as DictionaryMapper)\n .headerCollectionPrefix;\n if (headerCollectionPrefix) {\n for (const key of Object.keys(headerValue)) {\n httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]);\n }\n } else {\n httpRequest.headers.set(\n headerParameter.mapper.serializedName ||\n getPathStringFromParameter(headerParameter),\n headerValue\n );\n }\n }\n }\n }\n\n const options: RequestOptionsBase | undefined = operationArguments.options;\n if (options) {\n if (options.customHeaders) {\n for (const customHeaderName in options.customHeaders) {\n httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]);\n }\n }\n\n if (options.abortSignal) {\n httpRequest.abortSignal = options.abortSignal;\n }\n\n if (options.timeout) {\n httpRequest.timeout = options.timeout;\n }\n\n if (options.onUploadProgress) {\n httpRequest.onUploadProgress = options.onUploadProgress;\n }\n\n if (options.onDownloadProgress) {\n httpRequest.onDownloadProgress = options.onDownloadProgress;\n }\n\n if (options.spanOptions) {\n // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.\n (httpRequest as any).spanOptions = options.spanOptions;\n }\n\n if (options.tracingContext) {\n httpRequest.tracingContext = options.tracingContext;\n }\n\n if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) {\n httpRequest.shouldDeserialize = options.shouldDeserialize;\n }\n }\n\n httpRequest.withCredentials = this._withCredentials;\n\n serializeRequestBody(this, httpRequest, operationArguments, operationSpec);\n\n if (httpRequest.streamResponseStatusCodes === undefined) {\n httpRequest.streamResponseStatusCodes = getStreamResponseStatusCodes(operationSpec);\n }\n\n let rawResponse: HttpOperationResponse;\n let sendRequestError;\n try {\n rawResponse = await this.sendRequest(httpRequest);\n } catch (error: any) {\n sendRequestError = error;\n }\n if (sendRequestError) {\n if (sendRequestError.response) {\n sendRequestError.details = flattenResponse(\n sendRequestError.response,\n operationSpec.responses[sendRequestError.statusCode] ||\n operationSpec.responses[\"default\"]\n );\n }\n result = Promise.reject(sendRequestError);\n } else {\n result = Promise.resolve(\n flattenResponse(rawResponse!, operationSpec.responses[rawResponse!.status])\n );\n }\n } catch (error: any) {\n result = Promise.reject(error);\n }\n\n const cb = callback;\n if (cb) {\n result\n .then((res) => cb(null, res._response.parsedBody, res._response.request, res._response))\n .catch((err) => cb(err));\n }\n\n return result;\n }\n}\n\nexport function serializeRequestBody(\n serviceClient: ServiceClient,\n httpRequest: WebResourceLike,\n operationArguments: OperationArguments,\n operationSpec: OperationSpec\n): void {\n const serializerOptions = operationArguments.options?.serializerOptions ?? {};\n const updatedOptions: Required = {\n rootName: serializerOptions.rootName ?? \"\",\n includeRoot: serializerOptions.includeRoot ?? false,\n xmlCharKey: serializerOptions.xmlCharKey ?? XML_CHARKEY,\n };\n\n const xmlCharKey = serializerOptions.xmlCharKey;\n if (operationSpec.requestBody && operationSpec.requestBody.mapper) {\n httpRequest.body = getOperationArgumentValueFromParameter(\n serviceClient,\n operationArguments,\n operationSpec.requestBody,\n operationSpec.serializer\n );\n\n const bodyMapper = operationSpec.requestBody.mapper;\n const { required, xmlName, xmlElementName, serializedName, xmlNamespace, xmlNamespacePrefix } =\n bodyMapper;\n const typeName = bodyMapper.type.name;\n\n try {\n if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) {\n const requestBodyParameterPathString: string = getPathStringFromParameter(\n operationSpec.requestBody\n );\n httpRequest.body = operationSpec.serializer.serialize(\n bodyMapper,\n httpRequest.body,\n requestBodyParameterPathString,\n updatedOptions\n );\n\n const isStream = typeName === MapperType.Stream;\n\n if (operationSpec.isXML) {\n const xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : \"xmlns\";\n const value = getXmlValueWithNamespace(\n xmlNamespace,\n xmlnsKey,\n typeName,\n httpRequest.body,\n updatedOptions\n );\n if (typeName === MapperType.Sequence) {\n httpRequest.body = stringifyXML(\n utils.prepareXMLRootList(\n value,\n xmlElementName || xmlName || serializedName!,\n xmlnsKey,\n xmlNamespace\n ),\n {\n rootName: xmlName || serializedName,\n xmlCharKey,\n }\n );\n } else if (!isStream) {\n httpRequest.body = stringifyXML(value, {\n rootName: xmlName || serializedName,\n xmlCharKey,\n });\n }\n } else if (\n typeName === MapperType.String &&\n (operationSpec.contentType?.match(\"text/plain\") || operationSpec.mediaType === \"text\")\n ) {\n // the String serializer has validated that request body is a string\n // so just send the string.\n return;\n } else if (!isStream) {\n httpRequest.body = JSON.stringify(httpRequest.body);\n }\n }\n } catch (error: any) {\n throw new Error(\n `Error \"${error.message}\" occurred in serializing the payload - ${JSON.stringify(\n serializedName,\n undefined,\n \" \"\n )}.`\n );\n }\n } else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) {\n httpRequest.formData = {};\n for (const formDataParameter of operationSpec.formDataParameters) {\n const formDataParameterValue: any = getOperationArgumentValueFromParameter(\n serviceClient,\n operationArguments,\n formDataParameter,\n operationSpec.serializer\n );\n if (formDataParameterValue !== undefined && formDataParameterValue !== null) {\n const formDataParameterPropertyName: string =\n formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter);\n httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(\n formDataParameter.mapper,\n formDataParameterValue,\n getPathStringFromParameter(formDataParameter),\n updatedOptions\n );\n }\n }\n }\n}\n\n/**\n * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself\n */\nfunction getXmlValueWithNamespace(\n xmlNamespace: string | undefined,\n xmlnsKey: string,\n typeName: string,\n serializedValue: any,\n options: Required\n): any {\n // Composite and Sequence schemas already got their root namespace set during serialization\n // We just need to add xmlns to the other schema types\n if (xmlNamespace && ![\"Composite\", \"Sequence\", \"Dictionary\"].includes(typeName)) {\n const result: any = {};\n result[options.xmlCharKey] = serializedValue;\n result[XML_ATTRKEY] = { [xmlnsKey]: xmlNamespace };\n return result;\n }\n\n return serializedValue;\n}\n\nfunction getValueOrFunctionResult(\n value: undefined | string | ((defaultValue: string) => string),\n defaultValueCreator: () => string\n): string {\n let result: string;\n if (typeof value === \"string\") {\n result = value;\n } else {\n result = defaultValueCreator();\n if (typeof value === \"function\") {\n result = value(result);\n }\n }\n return result;\n}\n\nfunction createDefaultRequestPolicyFactories(\n authPolicyFactory: RequestPolicyFactory | undefined,\n options: ServiceClientOptions\n): RequestPolicyFactory[] {\n const factories: RequestPolicyFactory[] = [];\n\n if (options.generateClientRequestIdHeader) {\n factories.push(generateClientRequestIdPolicy(options.clientRequestIdHeaderName));\n }\n\n if (authPolicyFactory) {\n factories.push(authPolicyFactory);\n }\n\n const userAgentHeaderName: string = getValueOrFunctionResult(\n options.userAgentHeaderName,\n getDefaultUserAgentHeaderName\n );\n const userAgentHeaderValue: string = getValueOrFunctionResult(\n options.userAgent,\n getDefaultUserAgentValue\n );\n if (userAgentHeaderName && userAgentHeaderValue) {\n factories.push(userAgentPolicy({ key: userAgentHeaderName, value: userAgentHeaderValue }));\n }\n factories.push(redirectPolicy());\n factories.push(rpRegistrationPolicy(options.rpRegistrationRetryTimeout));\n\n if (!options.noRetryPolicy) {\n factories.push(exponentialRetryPolicy());\n factories.push(systemErrorRetryPolicy());\n factories.push(throttlingRetryPolicy());\n }\n\n factories.push(deserializationPolicy(options.deserializationContentTypes));\n\n if (isNode) {\n factories.push(proxyPolicy(options.proxySettings));\n }\n\n factories.push(logPolicy({ logger: logger.info }));\n\n return factories;\n}\n\n/**\n * Creates an HTTP pipeline based on the given options.\n * @param pipelineOptions - Defines options that are used to configure policies in the HTTP pipeline for an SDK client.\n * @param authPolicyFactory - An optional authentication policy factory to use for signing requests.\n * @returns A set of options that can be passed to create a new {@link ServiceClient}.\n */\nexport function createPipelineFromOptions(\n pipelineOptions: InternalPipelineOptions,\n authPolicyFactory?: RequestPolicyFactory\n): ServiceClientOptions {\n const requestPolicyFactories: RequestPolicyFactory[] = [];\n\n if (pipelineOptions.sendStreamingJson) {\n requestPolicyFactories.push(ndJsonPolicy());\n }\n\n let userAgentValue = undefined;\n if (pipelineOptions.userAgentOptions && pipelineOptions.userAgentOptions.userAgentPrefix) {\n const userAgentInfo: string[] = [];\n userAgentInfo.push(pipelineOptions.userAgentOptions.userAgentPrefix);\n\n // Add the default user agent value if it isn't already specified\n // by the userAgentPrefix option.\n const defaultUserAgentInfo = getDefaultUserAgentValue();\n if (userAgentInfo.indexOf(defaultUserAgentInfo) === -1) {\n userAgentInfo.push(defaultUserAgentInfo);\n }\n\n userAgentValue = userAgentInfo.join(\" \");\n }\n\n const keepAliveOptions = {\n ...DefaultKeepAliveOptions,\n ...pipelineOptions.keepAliveOptions,\n };\n\n const retryOptions = {\n ...DefaultRetryOptions,\n ...pipelineOptions.retryOptions,\n };\n\n const redirectOptions = {\n ...DefaultRedirectOptions,\n ...pipelineOptions.redirectOptions,\n };\n\n if (isNode) {\n requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));\n }\n\n const deserializationOptions = {\n ...DefaultDeserializationOptions,\n ...pipelineOptions.deserializationOptions,\n };\n\n const loggingOptions: LogPolicyOptions = {\n ...pipelineOptions.loggingOptions,\n };\n\n requestPolicyFactories.push(\n tracingPolicy({ userAgent: userAgentValue }),\n keepAlivePolicy(keepAliveOptions),\n userAgentPolicy({ value: userAgentValue }),\n generateClientRequestIdPolicy(),\n deserializationPolicy(deserializationOptions.expectedContentTypes),\n throttlingRetryPolicy(),\n systemErrorRetryPolicy(),\n exponentialRetryPolicy(\n retryOptions.maxRetries,\n retryOptions.retryDelayInMs,\n retryOptions.maxRetryDelayInMs\n )\n );\n\n if (redirectOptions.handleRedirects) {\n requestPolicyFactories.push(redirectPolicy(redirectOptions.maxRetries));\n }\n\n if (authPolicyFactory) {\n requestPolicyFactories.push(authPolicyFactory);\n }\n\n requestPolicyFactories.push(logPolicy(loggingOptions));\n\n if (isNode && pipelineOptions.decompressResponse === false) {\n requestPolicyFactories.push(disableResponseDecompressionPolicy());\n }\n\n return {\n httpClient: pipelineOptions.httpClient,\n requestPolicyFactories,\n };\n}\n\nexport type PropertyParent = { [propertyName: string]: any };\n\n/**\n * Get the property parent for the property at the provided path when starting with the provided\n * parent object.\n */\nexport function getPropertyParent(parent: PropertyParent, propertyPath: string[]): PropertyParent {\n if (parent && propertyPath) {\n const propertyPathLength: number = propertyPath.length;\n for (let i = 0; i < propertyPathLength - 1; ++i) {\n const propertyName: string = propertyPath[i];\n if (!parent[propertyName]) {\n parent[propertyName] = {};\n }\n parent = parent[propertyName];\n }\n }\n return parent;\n}\n\nfunction getOperationArgumentValueFromParameter(\n serviceClient: ServiceClient,\n operationArguments: OperationArguments,\n parameter: OperationParameter,\n serializer: Serializer\n): any {\n return getOperationArgumentValueFromParameterPath(\n serviceClient,\n operationArguments,\n parameter.parameterPath,\n parameter.mapper,\n serializer\n );\n}\n\nexport function getOperationArgumentValueFromParameterPath(\n serviceClient: ServiceClient,\n operationArguments: OperationArguments,\n parameterPath: ParameterPath,\n parameterMapper: Mapper,\n serializer: Serializer\n): any {\n let value: any;\n if (typeof parameterPath === \"string\") {\n parameterPath = [parameterPath];\n }\n const serializerOptions = operationArguments.options?.serializerOptions;\n if (Array.isArray(parameterPath)) {\n if (parameterPath.length > 0) {\n if (parameterMapper.isConstant) {\n value = parameterMapper.defaultValue;\n } else {\n let propertySearchResult: PropertySearchResult = getPropertyFromParameterPath(\n operationArguments,\n parameterPath\n );\n if (!propertySearchResult.propertyFound) {\n propertySearchResult = getPropertyFromParameterPath(serviceClient, parameterPath);\n }\n\n let useDefaultValue = false;\n if (!propertySearchResult.propertyFound) {\n useDefaultValue =\n parameterMapper.required ||\n (parameterPath[0] === \"options\" && parameterPath.length === 2);\n }\n value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue;\n }\n\n // Serialize just for validation purposes.\n const parameterPathString: string = getPathStringFromParameterPath(\n parameterPath,\n parameterMapper\n );\n serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions);\n }\n } else {\n if (parameterMapper.required) {\n value = {};\n }\n\n for (const propertyName in parameterPath) {\n const propertyMapper: Mapper = (parameterMapper as CompositeMapper).type.modelProperties![\n propertyName\n ];\n const propertyPath: ParameterPath = parameterPath[propertyName];\n const propertyValue: any = getOperationArgumentValueFromParameterPath(\n serviceClient,\n operationArguments,\n propertyPath,\n propertyMapper,\n serializer\n );\n // Serialize just for validation purposes.\n const propertyPathString: string = getPathStringFromParameterPath(\n propertyPath,\n propertyMapper\n );\n serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions);\n if (propertyValue !== undefined && propertyValue !== null) {\n if (!value) {\n value = {};\n }\n value[propertyName] = propertyValue;\n }\n }\n }\n return value;\n}\n\ninterface PropertySearchResult {\n propertyValue?: any;\n propertyFound: boolean;\n}\n\nfunction getPropertyFromParameterPath(\n parent: { [parameterName: string]: any },\n parameterPath: string[]\n): PropertySearchResult {\n const result: PropertySearchResult = { propertyFound: false };\n let i = 0;\n for (; i < parameterPath.length; ++i) {\n const parameterPathPart: string = parameterPath[i];\n // Make sure to check inherited properties too, so don't use hasOwnProperty().\n if (parent !== undefined && parent !== null && parameterPathPart in parent) {\n parent = parent[parameterPathPart];\n } else {\n break;\n }\n }\n if (i === parameterPath.length) {\n result.propertyValue = parent;\n result.propertyFound = true;\n }\n return result;\n}\n\n/**\n * Parses an {@link HttpOperationResponse} into a normalized HTTP response object ({@link RestResponse}).\n * @param _response - Wrapper object for http response.\n * @param responseSpec - Mappers for how to parse the response properties.\n * @returns - A normalized response object.\n */\nexport function flattenResponse(\n _response: HttpOperationResponse,\n responseSpec: OperationResponse | undefined\n): RestResponse {\n const parsedHeaders = _response.parsedHeaders;\n const bodyMapper = responseSpec && responseSpec.bodyMapper;\n\n const addOperationResponse = >(\n obj: T\n ): T & {\n _response: HttpOperationResponse;\n } => {\n return Object.defineProperty(obj, \"_response\", {\n value: _response,\n }) as T & {\n _response: HttpOperationResponse;\n };\n };\n\n if (bodyMapper) {\n const typeName = bodyMapper.type.name;\n if (typeName === \"Stream\") {\n return addOperationResponse({\n ...parsedHeaders,\n blobBody: _response.blobBody,\n readableStreamBody: _response.readableStreamBody,\n });\n }\n\n const modelProperties =\n (typeName === \"Composite\" && (bodyMapper as CompositeMapper).type.modelProperties) || {};\n const isPageableResponse = Object.keys(modelProperties).some(\n (k) => modelProperties[k].serializedName === \"\"\n );\n if (typeName === \"Sequence\" || isPageableResponse) {\n const arrayResponse = [...(_response.parsedBody || [])] as RestResponse & any[];\n\n for (const key of Object.keys(modelProperties)) {\n if (modelProperties[key].serializedName) {\n arrayResponse[key] = _response.parsedBody[key];\n }\n }\n\n if (parsedHeaders) {\n for (const key of Object.keys(parsedHeaders)) {\n arrayResponse[key] = parsedHeaders[key];\n }\n }\n addOperationResponse(arrayResponse);\n return arrayResponse;\n }\n\n if (typeName === \"Composite\" || typeName === \"Dictionary\") {\n return addOperationResponse({\n ...parsedHeaders,\n ..._response.parsedBody,\n });\n }\n }\n\n if (\n bodyMapper ||\n _response.request.method === \"HEAD\" ||\n utils.isPrimitiveType(_response.parsedBody)\n ) {\n // primitive body types and HEAD booleans\n return addOperationResponse({\n ...parsedHeaders,\n body: _response.parsedBody,\n });\n }\n\n return addOperationResponse({\n ...parsedHeaders,\n ..._response.parsedBody,\n });\n}\n\nfunction getCredentialScopes(\n options?: ServiceClientOptions,\n baseUri?: string\n): string | string[] | undefined {\n if (options?.credentialScopes) {\n const scopes = options.credentialScopes;\n return Array.isArray(scopes)\n ? scopes.map((scope) => new URL(scope).toString())\n : new URL(scopes).toString();\n }\n\n if (baseUri) {\n return `${baseUri}/.default`;\n }\n return undefined;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/* eslint-disable eqeqeq */\n\nimport * as base64 from \"./util/base64\";\nimport * as utils from \"./util/utils\";\nimport { SerializerOptions, XML_ATTRKEY, XML_CHARKEY } from \"./util/serializer.common\";\n\n// This file contains utility code to serialize and deserialize network operations according to `OperationSpec` objects generated by AutoRest.TypeScript from OpenAPI specifications.\n\n/**\n * Used to map raw response objects to final shapes.\n * Helps packing and unpacking Dates and other encoded types that are not intrinsic to JSON.\n * Also allows pulling values from headers, as well as inserting default values and constants.\n */\nexport class Serializer {\n constructor(\n /**\n * The provided model mapper.\n */\n public readonly modelMappers: { [key: string]: any } = {},\n /**\n * Whether the contents are XML or not.\n */\n public readonly isXML?: boolean\n ) {}\n\n /**\n * Validates constraints, if any. This function will throw if the provided value does not respect those constraints.\n * @param mapper - The definition of data models.\n * @param value - The value.\n * @param objectName - Name of the object. Used in the error messages.\n */\n validateConstraints(mapper: Mapper, value: unknown, objectName: string): void {\n const failValidation = (\n constraintName: keyof MapperConstraints,\n constraintValue: any\n ): Error => {\n throw new Error(\n `\"${objectName}\" with value \"${value}\" should satisfy the constraint \"${constraintName}\": ${constraintValue}.`\n );\n };\n if (mapper.constraints && value != undefined) {\n const valueAsNumber = value as number;\n const {\n ExclusiveMaximum,\n ExclusiveMinimum,\n InclusiveMaximum,\n InclusiveMinimum,\n MaxItems,\n MaxLength,\n MinItems,\n MinLength,\n MultipleOf,\n Pattern,\n UniqueItems,\n } = mapper.constraints;\n if (ExclusiveMaximum != undefined && valueAsNumber >= ExclusiveMaximum) {\n failValidation(\"ExclusiveMaximum\", ExclusiveMaximum);\n }\n if (ExclusiveMinimum != undefined && valueAsNumber <= ExclusiveMinimum) {\n failValidation(\"ExclusiveMinimum\", ExclusiveMinimum);\n }\n if (InclusiveMaximum != undefined && valueAsNumber > InclusiveMaximum) {\n failValidation(\"InclusiveMaximum\", InclusiveMaximum);\n }\n if (InclusiveMinimum != undefined && valueAsNumber < InclusiveMinimum) {\n failValidation(\"InclusiveMinimum\", InclusiveMinimum);\n }\n const valueAsArray = value as any[];\n if (MaxItems != undefined && valueAsArray.length > MaxItems) {\n failValidation(\"MaxItems\", MaxItems);\n }\n if (MaxLength != undefined && valueAsArray.length > MaxLength) {\n failValidation(\"MaxLength\", MaxLength);\n }\n if (MinItems != undefined && valueAsArray.length < MinItems) {\n failValidation(\"MinItems\", MinItems);\n }\n if (MinLength != undefined && valueAsArray.length < MinLength) {\n failValidation(\"MinLength\", MinLength);\n }\n if (MultipleOf != undefined && valueAsNumber % MultipleOf !== 0) {\n failValidation(\"MultipleOf\", MultipleOf);\n }\n if (Pattern) {\n const pattern: RegExp = typeof Pattern === \"string\" ? new RegExp(Pattern) : Pattern;\n if (typeof value !== \"string\" || value.match(pattern) === null) {\n failValidation(\"Pattern\", Pattern);\n }\n }\n if (\n UniqueItems &&\n valueAsArray.some((item: any, i: number, ar: Array) => ar.indexOf(item) !== i)\n ) {\n failValidation(\"UniqueItems\", UniqueItems);\n }\n }\n }\n\n /**\n * Serialize the given object based on its metadata defined in the mapper.\n *\n * @param mapper - The mapper which defines the metadata of the serializable object.\n * @param object - A valid Javascript object to be serialized.\n * @param objectName - Name of the serialized object.\n * @param options - additional options to deserialization.\n * @returns A valid serialized Javascript object.\n */\n serialize(\n mapper: Mapper,\n object: unknown,\n objectName?: string,\n options: SerializerOptions = {}\n ): any {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY,\n };\n let payload: any = {};\n const mapperType = mapper.type.name as string;\n if (!objectName) {\n objectName = mapper.serializedName!;\n }\n if (mapperType.match(/^Sequence$/i) !== null) {\n payload = [];\n }\n\n if (mapper.isConstant) {\n object = mapper.defaultValue;\n }\n\n // This table of allowed values should help explain\n // the mapper.required and mapper.nullable properties.\n // X means \"neither undefined or null are allowed\".\n // || required\n // || true | false\n // nullable || ==========================\n // true || null | undefined/null\n // false || X | undefined\n // undefined || X | undefined/null\n\n const { required, nullable } = mapper;\n\n if (required && nullable && object === undefined) {\n throw new Error(`${objectName} cannot be undefined.`);\n }\n if (required && !nullable && object == undefined) {\n throw new Error(`${objectName} cannot be null or undefined.`);\n }\n if (!required && nullable === false && object === null) {\n throw new Error(`${objectName} cannot be null.`);\n }\n\n if (object == undefined) {\n payload = object;\n } else {\n // Validate Constraints if any\n this.validateConstraints(mapper, object, objectName);\n if (mapperType.match(/^any$/i) !== null) {\n payload = object;\n } else if (mapperType.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/i) !== null) {\n payload = serializeBasicTypes(mapperType, objectName, object);\n } else if (mapperType.match(/^Enum$/i) !== null) {\n const enumMapper: EnumMapper = mapper as EnumMapper;\n payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object);\n } else if (\n mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null\n ) {\n payload = serializeDateTypes(mapperType, object, objectName);\n } else if (mapperType.match(/^ByteArray$/i) !== null) {\n payload = serializeByteArrayType(objectName, object as Uint8Array);\n } else if (mapperType.match(/^Base64Url$/i) !== null) {\n payload = serializeBase64UrlType(objectName, object as Uint8Array);\n } else if (mapperType.match(/^Sequence$/i) !== null) {\n payload = serializeSequenceType(\n this,\n mapper as SequenceMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n } else if (mapperType.match(/^Dictionary$/i) !== null) {\n payload = serializeDictionaryType(\n this,\n mapper as DictionaryMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n } else if (mapperType.match(/^Composite$/i) !== null) {\n payload = serializeCompositeType(\n this,\n mapper as CompositeMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n }\n }\n return payload;\n }\n\n /**\n * Deserialize the given object based on its metadata defined in the mapper.\n *\n * @param mapper - The mapper which defines the metadata of the serializable object.\n * @param responseBody - A valid Javascript entity to be deserialized.\n * @param objectName - Name of the deserialized object.\n * @param options - Controls behavior of XML parser and builder.\n * @returns A valid deserialized Javascript object.\n */\n deserialize(\n mapper: Mapper,\n responseBody: unknown,\n objectName: string,\n options: SerializerOptions = {}\n ): any {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY,\n };\n if (responseBody == undefined) {\n if (this.isXML && mapper.type.name === \"Sequence\" && !mapper.xmlIsWrapped) {\n // Edge case for empty XML non-wrapped lists. xml2js can't distinguish\n // between the list being empty versus being missing,\n // so let's do the more user-friendly thing and return an empty list.\n responseBody = [];\n }\n // specifically check for undefined as default value can be a falsey value `0, \"\", false, null`\n if (mapper.defaultValue !== undefined) {\n responseBody = mapper.defaultValue;\n }\n return responseBody;\n }\n\n let payload: any;\n const mapperType = mapper.type.name;\n if (!objectName) {\n objectName = mapper.serializedName!;\n }\n\n if (mapperType.match(/^Composite$/i) !== null) {\n payload = deserializeCompositeType(\n this,\n mapper as CompositeMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n } else {\n if (this.isXML) {\n const xmlCharKey = updatedOptions.xmlCharKey;\n const castResponseBody = responseBody as Record;\n /**\n * If the mapper specifies this as a non-composite type value but the responseBody contains\n * both header (\"$\" i.e., XML_ATTRKEY) and body (\"#\" i.e., XML_CHARKEY) properties,\n * then just reduce the responseBody value to the body (\"#\" i.e., XML_CHARKEY) property.\n */\n if (\n castResponseBody[XML_ATTRKEY] != undefined &&\n castResponseBody[xmlCharKey] != undefined\n ) {\n responseBody = castResponseBody[xmlCharKey];\n }\n }\n\n if (mapperType.match(/^Number$/i) !== null) {\n payload = parseFloat(responseBody as string);\n if (isNaN(payload)) {\n payload = responseBody;\n }\n } else if (mapperType.match(/^Boolean$/i) !== null) {\n if (responseBody === \"true\") {\n payload = true;\n } else if (responseBody === \"false\") {\n payload = false;\n } else {\n payload = responseBody;\n }\n } else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/i) !== null) {\n payload = responseBody;\n } else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/i) !== null) {\n payload = new Date(responseBody as string);\n } else if (mapperType.match(/^UnixTime$/i) !== null) {\n payload = unixTimeToDate(responseBody as number);\n } else if (mapperType.match(/^ByteArray$/i) !== null) {\n payload = base64.decodeString(responseBody as string);\n } else if (mapperType.match(/^Base64Url$/i) !== null) {\n payload = base64UrlToByteArray(responseBody as string);\n } else if (mapperType.match(/^Sequence$/i) !== null) {\n payload = deserializeSequenceType(\n this,\n mapper as SequenceMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n } else if (mapperType.match(/^Dictionary$/i) !== null) {\n payload = deserializeDictionaryType(\n this,\n mapper as DictionaryMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n }\n }\n\n if (mapper.isConstant) {\n payload = mapper.defaultValue;\n }\n\n return payload;\n }\n}\n\nfunction trimEnd(str: string, ch: string): string {\n let len = str.length;\n while (len - 1 >= 0 && str[len - 1] === ch) {\n --len;\n }\n return str.substr(0, len);\n}\n\nfunction bufferToBase64Url(buffer: any): string | undefined {\n if (!buffer) {\n return undefined;\n }\n if (!(buffer instanceof Uint8Array)) {\n throw new Error(`Please provide an input of type Uint8Array for converting to Base64Url.`);\n }\n // Uint8Array to Base64.\n const str = base64.encodeByteArray(buffer);\n // Base64 to Base64Url.\n return trimEnd(str, \"=\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n}\n\nfunction base64UrlToByteArray(str: string): Uint8Array | undefined {\n if (!str) {\n return undefined;\n }\n if (str && typeof str.valueOf() !== \"string\") {\n throw new Error(\"Please provide an input of type string for converting to Uint8Array\");\n }\n // Base64Url to Base64.\n str = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n // Base64 to Uint8Array.\n return base64.decodeString(str);\n}\n\nfunction splitSerializeName(prop: string | undefined): string[] {\n const classes: string[] = [];\n let partialclass = \"\";\n if (prop) {\n const subwords = prop.split(\".\");\n\n for (const item of subwords) {\n if (item.charAt(item.length - 1) === \"\\\\\") {\n partialclass += item.substr(0, item.length - 1) + \".\";\n } else {\n partialclass += item;\n classes.push(partialclass);\n partialclass = \"\";\n }\n }\n }\n\n return classes;\n}\n\nfunction dateToUnixTime(d: string | Date): number | undefined {\n if (!d) {\n return undefined;\n }\n\n if (typeof d.valueOf() === \"string\") {\n d = new Date(d as string);\n }\n return Math.floor((d as Date).getTime() / 1000);\n}\n\nfunction unixTimeToDate(n: number): Date | undefined {\n if (!n) {\n return undefined;\n }\n return new Date(n * 1000);\n}\n\nfunction serializeBasicTypes(typeName: string, objectName: string, value: any): any {\n if (value !== null && value !== undefined) {\n if (typeName.match(/^Number$/i) !== null) {\n if (typeof value !== \"number\") {\n throw new Error(`${objectName} with value ${value} must be of type number.`);\n }\n } else if (typeName.match(/^String$/i) !== null) {\n if (typeof value.valueOf() !== \"string\") {\n throw new Error(`${objectName} with value \"${value}\" must be of type string.`);\n }\n } else if (typeName.match(/^Uuid$/i) !== null) {\n if (!(typeof value.valueOf() === \"string\" && utils.isValidUuid(value))) {\n throw new Error(\n `${objectName} with value \"${value}\" must be of type string and a valid uuid.`\n );\n }\n } else if (typeName.match(/^Boolean$/i) !== null) {\n if (typeof value !== \"boolean\") {\n throw new Error(`${objectName} with value ${value} must be of type boolean.`);\n }\n } else if (typeName.match(/^Stream$/i) !== null) {\n const objectType = typeof value;\n if (\n objectType !== \"string\" &&\n objectType !== \"function\" &&\n !(value instanceof ArrayBuffer) &&\n !ArrayBuffer.isView(value) &&\n !((typeof Blob === \"function\" || typeof Blob === \"object\") && value instanceof Blob)\n ) {\n throw new Error(\n `${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream.`\n );\n }\n }\n }\n\n return value;\n}\n\nfunction serializeEnumType(objectName: string, allowedValues: Array, value: any): any {\n if (!allowedValues) {\n throw new Error(\n `Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`\n );\n }\n const isPresent = allowedValues.some((item) => {\n if (typeof item.valueOf() === \"string\") {\n return item.toLowerCase() === value.toLowerCase();\n }\n return item === value;\n });\n if (!isPresent) {\n throw new Error(\n `${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(\n allowedValues\n )}.`\n );\n }\n return value;\n}\n\nfunction serializeByteArrayType(objectName: string, value: Uint8Array): string {\n let returnValue: string = \"\";\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(`${objectName} must be of type Uint8Array.`);\n }\n returnValue = base64.encodeByteArray(value);\n }\n return returnValue;\n}\n\nfunction serializeBase64UrlType(objectName: string, value: Uint8Array): string {\n let returnValue: string = \"\";\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(`${objectName} must be of type Uint8Array.`);\n }\n returnValue = bufferToBase64Url(value) || \"\";\n }\n return returnValue;\n}\n\nfunction serializeDateTypes(typeName: string, value: any, objectName: string): any {\n if (value != undefined) {\n if (typeName.match(/^Date$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n }\n value =\n value instanceof Date\n ? value.toISOString().substring(0, 10)\n : new Date(value).toISOString().substring(0, 10);\n } else if (typeName.match(/^DateTime$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n }\n value = value instanceof Date ? value.toISOString() : new Date(value).toISOString();\n } else if (typeName.match(/^DateTimeRfc1123$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`);\n }\n value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString();\n } else if (typeName.match(/^UnixTime$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(\n `${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format ` +\n `for it to be serialized in UnixTime/Epoch format.`\n );\n }\n value = dateToUnixTime(value);\n } else if (typeName.match(/^TimeSpan$/i) !== null) {\n if (!utils.isDuration(value)) {\n throw new Error(\n `${objectName} must be a string in ISO 8601 format. Instead was \"${value}\".`\n );\n }\n }\n }\n return value;\n}\n\nfunction serializeSequenceType(\n serializer: Serializer,\n mapper: SequenceMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): any[] {\n if (!Array.isArray(object)) {\n throw new Error(`${objectName} must be of type Array.`);\n }\n const elementType = mapper.type.element;\n if (!elementType || typeof elementType !== \"object\") {\n throw new Error(\n `element\" metadata for an Array must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}.`\n );\n }\n const tempArray = [];\n for (let i = 0; i < object.length; i++) {\n const serializedValue = serializer.serialize(elementType, object[i], objectName, options);\n\n if (isXml && elementType.xmlNamespace) {\n const xmlnsKey = elementType.xmlNamespacePrefix\n ? `xmlns:${elementType.xmlNamespacePrefix}`\n : \"xmlns\";\n if (elementType.type.name === \"Composite\") {\n tempArray[i] = { ...serializedValue };\n tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n } else {\n tempArray[i] = {};\n tempArray[i][options.xmlCharKey] = serializedValue;\n tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n }\n } else {\n tempArray[i] = serializedValue;\n }\n }\n return tempArray;\n}\n\nfunction serializeDictionaryType(\n serializer: Serializer,\n mapper: DictionaryMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): { [key: string]: any } {\n if (typeof object !== \"object\") {\n throw new Error(`${objectName} must be of type object.`);\n }\n const valueType = mapper.type.value;\n if (!valueType || typeof valueType !== \"object\") {\n throw new Error(\n `\"value\" metadata for a Dictionary must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}.`\n );\n }\n const tempDictionary: { [key: string]: any } = {};\n for (const key of Object.keys(object)) {\n const serializedValue = serializer.serialize(valueType, object[key], objectName, options);\n // If the element needs an XML namespace we need to add it within the $ property\n tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options);\n }\n\n // Add the namespace to the root element if needed\n if (isXml && mapper.xmlNamespace) {\n const xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : \"xmlns\";\n\n const result = tempDictionary;\n result[XML_ATTRKEY] = { [xmlnsKey]: mapper.xmlNamespace };\n return result;\n }\n\n return tempDictionary;\n}\n\n/**\n * Resolves the additionalProperties property from a referenced mapper.\n * @param serializer - The serializer containing the entire set of mappers.\n * @param mapper - The composite mapper to resolve.\n * @param objectName - Name of the object being serialized.\n */\nfunction resolveAdditionalProperties(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): SequenceMapper | BaseMapper | CompositeMapper | DictionaryMapper | EnumMapper | undefined {\n const additionalProperties = mapper.type.additionalProperties;\n\n if (!additionalProperties && mapper.type.className) {\n const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n return modelMapper?.type.additionalProperties;\n }\n\n return additionalProperties;\n}\n\n/**\n * Finds the mapper referenced by `className`.\n * @param serializer - The serializer containing the entire set of mappers\n * @param mapper - The composite mapper to resolve\n * @param objectName - Name of the object being serialized\n */\nfunction resolveReferencedMapper(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): CompositeMapper | undefined {\n const className = mapper.type.className;\n if (!className) {\n throw new Error(\n `Class name for model \"${objectName}\" is not provided in the mapper \"${JSON.stringify(\n mapper,\n undefined,\n 2\n )}\".`\n );\n }\n\n return serializer.modelMappers[className];\n}\n\n/**\n * Resolves a composite mapper's modelProperties.\n * @param serializer - The serializer containing the entire set of mappers\n * @param mapper - The composite mapper to resolve\n */\nfunction resolveModelProperties(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): { [propertyName: string]: Mapper } {\n let modelProps = mapper.type.modelProperties;\n if (!modelProps) {\n const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n if (!modelMapper) {\n throw new Error(`mapper() cannot be null or undefined for model \"${mapper.type.className}\".`);\n }\n modelProps = modelMapper?.type.modelProperties;\n if (!modelProps) {\n throw new Error(\n `modelProperties cannot be null or undefined in the ` +\n `mapper \"${JSON.stringify(modelMapper)}\" of type \"${\n mapper.type.className\n }\" for object \"${objectName}\".`\n );\n }\n }\n\n return modelProps;\n}\n\nfunction serializeCompositeType(\n serializer: Serializer,\n mapper: CompositeMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): any {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, object, \"clientName\");\n }\n\n if (object != undefined) {\n const payload: any = {};\n const modelProps = resolveModelProperties(serializer, mapper, objectName);\n for (const key of Object.keys(modelProps)) {\n const propertyMapper = modelProps[key];\n if (propertyMapper.readOnly) {\n continue;\n }\n\n let propName: string | undefined;\n let parentObject: any = payload;\n if (serializer.isXML) {\n if (propertyMapper.xmlIsWrapped) {\n propName = propertyMapper.xmlName;\n } else {\n propName = propertyMapper.xmlElementName || propertyMapper.xmlName;\n }\n } else {\n const paths = splitSerializeName(propertyMapper.serializedName!);\n propName = paths.pop();\n\n for (const pathName of paths) {\n const childObject = parentObject[pathName];\n if (\n childObject == undefined &&\n (object[key] != undefined || propertyMapper.defaultValue !== undefined)\n ) {\n parentObject[pathName] = {};\n }\n parentObject = parentObject[pathName];\n }\n }\n\n if (parentObject != undefined) {\n if (isXml && mapper.xmlNamespace) {\n const xmlnsKey = mapper.xmlNamespacePrefix\n ? `xmlns:${mapper.xmlNamespacePrefix}`\n : \"xmlns\";\n parentObject[XML_ATTRKEY] = {\n ...parentObject[XML_ATTRKEY],\n [xmlnsKey]: mapper.xmlNamespace,\n };\n }\n const propertyObjectName =\n propertyMapper.serializedName !== \"\"\n ? objectName + \".\" + propertyMapper.serializedName\n : objectName;\n\n let toSerialize = object[key];\n const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (\n polymorphicDiscriminator &&\n polymorphicDiscriminator.clientName === key &&\n toSerialize == undefined\n ) {\n toSerialize = mapper.serializedName;\n }\n\n const serializedValue = serializer.serialize(\n propertyMapper,\n toSerialize,\n propertyObjectName,\n options\n );\n\n if (serializedValue !== undefined && propName != undefined) {\n const value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options);\n if (isXml && propertyMapper.xmlIsAttribute) {\n // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js.\n // This keeps things simple while preventing name collision\n // with names in user documents.\n parentObject[XML_ATTRKEY] = parentObject[XML_ATTRKEY] || {};\n parentObject[XML_ATTRKEY][propName] = serializedValue;\n } else if (isXml && propertyMapper.xmlIsWrapped) {\n parentObject[propName] = { [propertyMapper.xmlElementName!]: value };\n } else {\n parentObject[propName] = value;\n }\n }\n }\n }\n\n const additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName);\n if (additionalPropertiesMapper) {\n const propNames = Object.keys(modelProps);\n for (const clientPropName in object) {\n const isAdditionalProperty = propNames.every((pn) => pn !== clientPropName);\n if (isAdditionalProperty) {\n payload[clientPropName] = serializer.serialize(\n additionalPropertiesMapper,\n object[clientPropName],\n objectName + '[\"' + clientPropName + '\"]',\n options\n );\n }\n }\n }\n\n return payload;\n }\n return object;\n}\n\nfunction getXmlObjectValue(\n propertyMapper: Mapper,\n serializedValue: any,\n isXml: boolean,\n options: Required\n): any {\n if (!isXml || !propertyMapper.xmlNamespace) {\n return serializedValue;\n }\n\n const xmlnsKey = propertyMapper.xmlNamespacePrefix\n ? `xmlns:${propertyMapper.xmlNamespacePrefix}`\n : \"xmlns\";\n const xmlNamespace = { [xmlnsKey]: propertyMapper.xmlNamespace };\n\n if ([\"Composite\"].includes(propertyMapper.type.name)) {\n if (serializedValue[XML_ATTRKEY]) {\n return serializedValue;\n } else {\n const result: any = { ...serializedValue };\n result[XML_ATTRKEY] = xmlNamespace;\n return result;\n }\n }\n const result: any = {};\n result[options.xmlCharKey] = serializedValue;\n result[XML_ATTRKEY] = xmlNamespace;\n return result;\n}\n\nfunction isSpecialXmlProperty(propertyName: string, options: Required): boolean {\n return [XML_ATTRKEY, options.xmlCharKey].includes(propertyName);\n}\n\nfunction deserializeCompositeType(\n serializer: Serializer,\n mapper: CompositeMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): any {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, responseBody, \"serializedName\");\n }\n\n const modelProps = resolveModelProperties(serializer, mapper, objectName);\n let instance: { [key: string]: any } = {};\n const handledPropertyNames: string[] = [];\n\n for (const key of Object.keys(modelProps)) {\n const propertyMapper = modelProps[key];\n const paths = splitSerializeName(modelProps[key].serializedName!);\n handledPropertyNames.push(paths[0]);\n const { serializedName, xmlName, xmlElementName } = propertyMapper;\n let propertyObjectName = objectName;\n if (serializedName !== \"\" && serializedName !== undefined) {\n propertyObjectName = objectName + \".\" + serializedName;\n }\n\n const headerCollectionPrefix = (propertyMapper as DictionaryMapper).headerCollectionPrefix;\n if (headerCollectionPrefix) {\n const dictionary: any = {};\n for (const headerKey of Object.keys(responseBody)) {\n if (headerKey.startsWith(headerCollectionPrefix)) {\n dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(\n (propertyMapper as DictionaryMapper).type.value,\n responseBody[headerKey],\n propertyObjectName,\n options\n );\n }\n\n handledPropertyNames.push(headerKey);\n }\n instance[key] = dictionary;\n } else if (serializer.isXML) {\n if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {\n instance[key] = serializer.deserialize(\n propertyMapper,\n responseBody[XML_ATTRKEY][xmlName!],\n propertyObjectName,\n options\n );\n } else {\n const propertyName = xmlElementName || xmlName || serializedName;\n if (propertyMapper.xmlIsWrapped) {\n /* a list of wrapped by \n For the xml example below\n \n ...\n ...\n \n the responseBody has\n {\n Cors: {\n CorsRule: [{...}, {...}]\n }\n }\n xmlName is \"Cors\" and xmlElementName is\"CorsRule\".\n */\n const wrapped = responseBody[xmlName!];\n const elementList = wrapped?.[xmlElementName!] ?? [];\n instance[key] = serializer.deserialize(\n propertyMapper,\n elementList,\n propertyObjectName,\n options\n );\n } else {\n const property = responseBody[propertyName!];\n instance[key] = serializer.deserialize(\n propertyMapper,\n property,\n propertyObjectName,\n options\n );\n }\n }\n } else {\n // deserialize the property if it is present in the provided responseBody instance\n let propertyInstance;\n let res = responseBody;\n // traversing the object step by step.\n for (const item of paths) {\n if (!res) break;\n res = res[item];\n }\n propertyInstance = res;\n const polymorphicDiscriminator = mapper.type.polymorphicDiscriminator;\n // checking that the model property name (key)(ex: \"fishtype\") and the\n // clientName of the polymorphicDiscriminator {metadata} (ex: \"fishtype\")\n // instead of the serializedName of the polymorphicDiscriminator (ex: \"fish.type\")\n // is a better approach. The generator is not consistent with escaping '\\.' in the\n // serializedName of the property (ex: \"fish\\.type\") that is marked as polymorphic discriminator\n // and the serializedName of the metadata polymorphicDiscriminator (ex: \"fish.type\"). However,\n // the clientName transformation of the polymorphicDiscriminator (ex: \"fishtype\") and\n // the transformation of model property name (ex: \"fishtype\") is done consistently.\n // Hence, it is a safer bet to rely on the clientName of the polymorphicDiscriminator.\n if (\n polymorphicDiscriminator &&\n key === polymorphicDiscriminator.clientName &&\n propertyInstance == undefined\n ) {\n propertyInstance = mapper.serializedName;\n }\n\n let serializedValue;\n // paging\n if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === \"\") {\n propertyInstance = responseBody[key];\n const arrayInstance = serializer.deserialize(\n propertyMapper,\n propertyInstance,\n propertyObjectName,\n options\n );\n // Copy over any properties that have already been added into the instance, where they do\n // not exist on the newly de-serialized array\n for (const [k, v] of Object.entries(instance)) {\n if (!Object.prototype.hasOwnProperty.call(arrayInstance, k)) {\n arrayInstance[k] = v;\n }\n }\n instance = arrayInstance;\n } else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {\n serializedValue = serializer.deserialize(\n propertyMapper,\n propertyInstance,\n propertyObjectName,\n options\n );\n instance[key] = serializedValue;\n }\n }\n }\n\n const additionalPropertiesMapper = mapper.type.additionalProperties;\n if (additionalPropertiesMapper) {\n const isAdditionalProperty = (responsePropName: string): boolean => {\n for (const clientPropName in modelProps) {\n const paths = splitSerializeName(modelProps[clientPropName].serializedName);\n if (paths[0] === responsePropName) {\n return false;\n }\n }\n return true;\n };\n\n for (const responsePropName in responseBody) {\n if (isAdditionalProperty(responsePropName)) {\n instance[responsePropName] = serializer.deserialize(\n additionalPropertiesMapper,\n responseBody[responsePropName],\n objectName + '[\"' + responsePropName + '\"]',\n options\n );\n }\n }\n } else if (responseBody) {\n for (const key of Object.keys(responseBody)) {\n if (\n instance[key] === undefined &&\n !handledPropertyNames.includes(key) &&\n !isSpecialXmlProperty(key, options)\n ) {\n instance[key] = responseBody[key];\n }\n }\n }\n\n return instance;\n}\n\nfunction deserializeDictionaryType(\n serializer: Serializer,\n mapper: DictionaryMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): { [key: string]: any } {\n const value = mapper.type.value;\n if (!value || typeof value !== \"object\") {\n throw new Error(\n `\"value\" metadata for a Dictionary must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}`\n );\n }\n if (responseBody) {\n const tempDictionary: { [key: string]: any } = {};\n for (const key of Object.keys(responseBody)) {\n tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options);\n }\n return tempDictionary;\n }\n return responseBody;\n}\n\nfunction deserializeSequenceType(\n serializer: Serializer,\n mapper: SequenceMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): any[] {\n const element = mapper.type.element;\n if (!element || typeof element !== \"object\") {\n throw new Error(\n `element\" metadata for an Array must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}`\n );\n }\n if (responseBody) {\n if (!Array.isArray(responseBody)) {\n // xml2js will interpret a single element array as just the element, so force it to be an array\n responseBody = [responseBody];\n }\n\n const tempArray = [];\n for (let i = 0; i < responseBody.length; i++) {\n tempArray[i] = serializer.deserialize(\n element,\n responseBody[i],\n `${objectName}[${i}]`,\n options\n );\n }\n return tempArray;\n }\n return responseBody;\n}\n\nfunction getPolymorphicMapper(\n serializer: Serializer,\n mapper: CompositeMapper,\n object: any,\n polymorphicPropertyName: \"clientName\" | \"serializedName\"\n): CompositeMapper {\n const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (polymorphicDiscriminator) {\n const discriminatorName = polymorphicDiscriminator[polymorphicPropertyName];\n if (discriminatorName != undefined) {\n const discriminatorValue = object[discriminatorName];\n if (discriminatorValue != undefined) {\n const typeName = mapper.type.uberParent || mapper.type.className;\n const indexDiscriminator =\n discriminatorValue === typeName\n ? discriminatorValue\n : typeName + \".\" + discriminatorValue;\n const polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator];\n if (polymorphicMapper) {\n mapper = polymorphicMapper;\n }\n }\n }\n }\n return mapper;\n}\n\nfunction getPolymorphicDiscriminatorRecursively(\n serializer: Serializer,\n mapper: CompositeMapper\n): PolymorphicDiscriminator | undefined {\n return (\n mapper.type.polymorphicDiscriminator ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.uberParent) ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.className)\n );\n}\n\nfunction getPolymorphicDiscriminatorSafely(serializer: Serializer, typeName?: string): any {\n return (\n typeName &&\n serializer.modelMappers[typeName] &&\n serializer.modelMappers[typeName].type.polymorphicDiscriminator\n );\n}\n\n/**\n * Description of various value constraints such as integer ranges and string regex.\n */\nexport interface MapperConstraints {\n /**\n * The value should be less than or equal to the `InclusiveMaximum` value.\n */\n InclusiveMaximum?: number;\n /**\n * The value should be less than the `ExclusiveMaximum` value.\n */\n ExclusiveMaximum?: number;\n /**\n * The value should be greater than or equal to the `InclusiveMinimum` value.\n */\n InclusiveMinimum?: number;\n /**\n * The value should be greater than the `InclusiveMinimum` value.\n */\n ExclusiveMinimum?: number;\n /**\n * The length should be smaller than the `MaxLength`.\n */\n MaxLength?: number;\n /**\n * The length should be bigger than the `MinLength`.\n */\n MinLength?: number;\n /**\n * The value must match the pattern.\n */\n Pattern?: RegExp;\n /**\n * The value must contain fewer items than the MaxItems value.\n */\n MaxItems?: number;\n /**\n * The value must contain more items than the `MinItems` value.\n */\n MinItems?: number;\n /**\n * The value must contain only unique items.\n */\n UniqueItems?: true;\n /**\n * The value should be exactly divisible by the `MultipleOf` value.\n */\n MultipleOf?: number;\n}\n\n/**\n * Type of the mapper. Includes known mappers.\n */\nexport type MapperType =\n | SimpleMapperType\n | CompositeMapperType\n | SequenceMapperType\n | DictionaryMapperType\n | EnumMapperType;\n\n/**\n * The type of a simple mapper.\n */\nexport interface SimpleMapperType {\n /**\n * Name of the type of the property.\n */\n name:\n | \"Base64Url\"\n | \"Boolean\"\n | \"ByteArray\"\n | \"Date\"\n | \"DateTime\"\n | \"DateTimeRfc1123\"\n | \"Object\"\n | \"Stream\"\n | \"String\"\n | \"TimeSpan\"\n | \"UnixTime\"\n | \"Uuid\"\n | \"Number\"\n | \"any\";\n}\n\n/**\n * Helps build a mapper that describes how to map a set of properties of an object based on other mappers.\n *\n * Only one of the following properties should be present: `className`, `modelProperties` and `additionalProperties`.\n */\nexport interface CompositeMapperType {\n /**\n * Name of the composite mapper type.\n */\n name: \"Composite\";\n\n /**\n * Use `className` to reference another type definition.\n */\n className?: string;\n\n /**\n * Use `modelProperties` when the reference to the other type has been resolved.\n */\n modelProperties?: { [propertyName: string]: Mapper };\n\n /**\n * Used when a model has `additionalProperties: true`. Allows the generic processing of unnamed model properties on the response object.\n */\n additionalProperties?: Mapper;\n\n /**\n * The name of the top-most parent scheme, the one that has no parents.\n */\n uberParent?: string;\n\n /**\n * A polymorphic discriminator.\n */\n polymorphicDiscriminator?: PolymorphicDiscriminator;\n}\n\n/**\n * Helps build a mapper that describes how to parse a sequence of mapped values.\n */\nexport interface SequenceMapperType {\n /**\n * Name of the sequence type mapper.\n */\n name: \"Sequence\";\n /**\n * The mapper to use to map each one of the properties of the sequence.\n */\n element: Mapper;\n}\n\n/**\n * Helps build a mapper that describes how to parse a dictionary of mapped values.\n */\nexport interface DictionaryMapperType {\n /**\n * Name of the sequence type mapper.\n */\n name: \"Dictionary\";\n /**\n * The mapper to use to map the value of each property in the dictionary.\n */\n value: Mapper;\n}\n\n/**\n * Helps build a mapper that describes how to parse an enum value.\n */\nexport interface EnumMapperType {\n /**\n * Name of the enum type mapper.\n */\n name: \"Enum\";\n /**\n * Values allowed by this mapper.\n */\n allowedValues: any[];\n}\n\n/**\n * The base definition of a mapper. Can be used for XML and plain JavaScript objects.\n */\nexport interface BaseMapper {\n /**\n * Name for the xml element\n */\n xmlName?: string;\n /**\n * Xml element namespace\n */\n xmlNamespace?: string;\n /**\n * Xml element namespace prefix\n */\n xmlNamespacePrefix?: string;\n /**\n * Determines if the current property should be serialized as an attribute of the parent xml element\n */\n xmlIsAttribute?: boolean;\n /**\n * Name for the xml elements when serializing an array\n */\n xmlElementName?: string;\n /**\n * Whether or not the current property should have a wrapping XML element\n */\n xmlIsWrapped?: boolean;\n /**\n * Whether or not the current property is readonly\n */\n readOnly?: boolean;\n /**\n * Whether or not the current property is a constant\n */\n isConstant?: boolean;\n /**\n * Whether or not the current property is required\n */\n required?: boolean;\n /**\n * Whether or not the current property allows mull as a value\n */\n nullable?: boolean;\n /**\n * The name to use when serializing\n */\n serializedName?: string;\n /**\n * Type of the mapper\n */\n type: MapperType;\n /**\n * Default value when one is not explicitly provided\n */\n defaultValue?: any;\n /**\n * Constraints to test the current value against\n */\n constraints?: MapperConstraints;\n}\n\n/**\n * Mappers are definitions of the data models used in the library.\n * These data models are part of the Operation or Client definitions in the responses or parameters.\n */\nexport type Mapper = BaseMapper | CompositeMapper | SequenceMapper | DictionaryMapper | EnumMapper;\n\n/**\n * Used to disambiguate discriminated type unions.\n * For example, if response can have many shapes but also includes a 'kind' field (or similar),\n * that field can be used to determine how to deserialize the response to the correct type.\n */\nexport interface PolymorphicDiscriminator {\n /**\n * Name of the discriminant property in the original JSON payload, e.g. `@odata.kind`.\n */\n serializedName: string;\n /**\n * Name to use on the resulting object instead of the original property name.\n * Useful since the JSON property could be difficult to work with.\n * For example: For a field received as `@odata.kind`, the final object could instead include a property simply named `kind`.\n */\n clientName: string;\n /**\n * It may contain any other property.\n */\n [key: string]: string;\n}\n\n/**\n * A mapper composed of other mappers.\n */\nexport interface CompositeMapper extends BaseMapper {\n /**\n * The type descriptor of the `CompositeMapper`.\n */\n type: CompositeMapperType;\n}\n\n/**\n * A mapper describing arrays.\n */\nexport interface SequenceMapper extends BaseMapper {\n /**\n * The type descriptor of the `SequenceMapper`.\n */\n type: SequenceMapperType;\n}\n\n/**\n * A mapper describing plain JavaScript objects used as key/value pairs.\n */\nexport interface DictionaryMapper extends BaseMapper {\n /**\n * The type descriptor of the `DictionaryMapper`.\n */\n type: DictionaryMapperType;\n /**\n * Optionally, a prefix to add to the header collection.\n */\n headerCollectionPrefix?: string;\n}\n\n/**\n * A mapper describing an enum value.\n */\nexport interface EnumMapper extends BaseMapper {\n /**\n * The type descriptor of the `EnumMapper`.\n */\n type: EnumMapperType;\n}\n\n/**\n * An interface representing an URL parameter value.\n */\nexport interface UrlParameterValue {\n /**\n * The URL value.\n */\n value: string;\n /**\n * Whether to keep or skip URL encoding.\n */\n skipUrlEncoding: boolean;\n}\n\n/**\n * Utility function that serializes an object that might contain binary information into a plain object, array or a string.\n */\nexport function serializeObject(toSerialize: unknown): any {\n const castToSerialize = toSerialize as Record;\n if (toSerialize == undefined) return undefined;\n if (toSerialize instanceof Uint8Array) {\n toSerialize = base64.encodeByteArray(toSerialize);\n return toSerialize;\n } else if (toSerialize instanceof Date) {\n return toSerialize.toISOString();\n } else if (Array.isArray(toSerialize)) {\n const array = [];\n for (let i = 0; i < toSerialize.length; i++) {\n array.push(serializeObject(toSerialize[i]));\n }\n return array;\n } else if (typeof toSerialize === \"object\") {\n const dictionary: { [key: string]: any } = {};\n for (const property in toSerialize) {\n dictionary[property] = serializeObject(castToSerialize[property]);\n }\n return dictionary;\n }\n return toSerialize;\n}\n\n/**\n * Utility function to create a K:V from a list of strings\n */\nfunction strEnum(o: Array): { [K in T]: K } {\n const result: any = {};\n for (const key of o) {\n result[key] = key;\n }\n return result;\n}\n\n/**\n * String enum containing the string types of property mappers.\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const MapperType = strEnum([\n \"Base64Url\",\n \"Boolean\",\n \"ByteArray\",\n \"Composite\",\n \"Date\",\n \"DateTime\",\n \"DateTimeRfc1123\",\n \"Dictionary\",\n \"Enum\",\n \"Number\",\n \"Object\",\n \"Sequence\",\n \"String\",\n \"Stream\",\n \"TimeSpan\",\n \"UnixTime\",\n]);\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Encodes a string in base64 format.\n * @param value - The string to encode\n */\nexport function encodeString(value: string): string {\n return Buffer.from(value).toString(\"base64\");\n}\n\n/**\n * Encodes a byte array in base64 format.\n * @param value - The Uint8Aray to encode\n */\nexport function encodeByteArray(value: Uint8Array): string {\n // Buffer.from accepts | -- the TypeScript definition is off here\n // https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n const bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer as ArrayBuffer);\n return bufferValue.toString(\"base64\");\n}\n\n/**\n * Decodes a base64 string into a byte array.\n * @param value - The base64 string to decode\n */\nexport function decodeString(value: string): Uint8Array {\n return Buffer.from(value, \"base64\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { SerializerOptions, XML_CHARKEY } from \"../util/serializer.common\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { MapperType } from \"../serializer\";\nimport { OperationResponse } from \"../operationResponse\";\nimport { OperationSpec } from \"../operationSpec\";\nimport { RestError } from \"../restError\";\nimport { WebResourceLike } from \"../webResource\";\nimport { parseXML } from \"../util/xml\";\n\n/**\n * Options to configure API response deserialization.\n */\nexport interface DeserializationOptions {\n /**\n * Configures the expected content types for the deserialization of\n * JSON and XML response bodies.\n */\n expectedContentTypes: DeserializationContentTypes;\n}\n\n/**\n * The content-types that will indicate that an operation response should be deserialized in a\n * particular way.\n */\nexport interface DeserializationContentTypes {\n /**\n * The content-types that indicate that an operation response should be deserialized as JSON.\n * Defaults to [ \"application/json\", \"text/json\" ].\n */\n json?: string[];\n\n /**\n * The content-types that indicate that an operation response should be deserialized as XML.\n * Defaults to [ \"application/xml\", \"application/atom+xml\" ].\n */\n xml?: string[];\n}\n\n/**\n * Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they\n * pass through the HTTP pipeline.\n */\nexport function deserializationPolicy(\n deserializationContentTypes?: DeserializationContentTypes,\n parsingOptions?: SerializerOptions\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new DeserializationPolicy(\n nextPolicy,\n options,\n deserializationContentTypes,\n parsingOptions\n );\n },\n };\n}\n\nexport const defaultJsonContentTypes = [\"application/json\", \"text/json\"];\nexport const defaultXmlContentTypes = [\"application/xml\", \"application/atom+xml\"];\n\nexport const DefaultDeserializationOptions: DeserializationOptions = {\n expectedContentTypes: {\n json: defaultJsonContentTypes,\n xml: defaultXmlContentTypes,\n },\n};\n\n/**\n * A RequestPolicy that will deserialize HTTP response bodies and headers as they pass through the\n * HTTP pipeline.\n */\nexport class DeserializationPolicy extends BaseRequestPolicy {\n public readonly jsonContentTypes: string[];\n public readonly xmlContentTypes: string[];\n public readonly xmlCharKey: string;\n\n constructor(\n nextPolicy: RequestPolicy,\n requestPolicyOptions: RequestPolicyOptions,\n deserializationContentTypes?: DeserializationContentTypes,\n parsingOptions: SerializerOptions = {}\n ) {\n super(nextPolicy, requestPolicyOptions);\n\n this.jsonContentTypes =\n (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes;\n this.xmlContentTypes =\n (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes;\n this.xmlCharKey = parsingOptions.xmlCharKey ?? XML_CHARKEY;\n }\n\n public async sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy.sendRequest(request).then((response: HttpOperationResponse) =>\n deserializeResponseBody(this.jsonContentTypes, this.xmlContentTypes, response, {\n xmlCharKey: this.xmlCharKey,\n })\n );\n }\n}\n\nfunction getOperationResponse(\n parsedResponse: HttpOperationResponse\n): undefined | OperationResponse {\n let result: OperationResponse | undefined;\n const request: WebResourceLike = parsedResponse.request;\n const operationSpec: OperationSpec | undefined = request.operationSpec;\n if (operationSpec) {\n const operationResponseGetter:\n | undefined\n | ((\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse) = request.operationResponseGetter;\n if (!operationResponseGetter) {\n result = operationSpec.responses[parsedResponse.status];\n } else {\n result = operationResponseGetter(operationSpec, parsedResponse);\n }\n }\n return result;\n}\n\nfunction shouldDeserializeResponse(parsedResponse: HttpOperationResponse): boolean {\n const shouldDeserialize: undefined | boolean | ((response: HttpOperationResponse) => boolean) =\n parsedResponse.request.shouldDeserialize;\n let result: boolean;\n if (shouldDeserialize === undefined) {\n result = true;\n } else if (typeof shouldDeserialize === \"boolean\") {\n result = shouldDeserialize;\n } else {\n result = shouldDeserialize(parsedResponse);\n }\n return result;\n}\n\n/**\n * Given a particular set of content types to parse as either JSON or XML, consumes the HTTP response to produce the result object defined by the request's {@link OperationSpec}.\n * @param jsonContentTypes - Response content types to parse the body as JSON.\n * @param xmlContentTypes - Response content types to parse the body as XML.\n * @param response - HTTP Response from the pipeline.\n * @param options - Options to the serializer, mostly for configuring the XML parser if needed.\n * @returns A parsed {@link HttpOperationResponse} object that can be returned by the {@link ServiceClient}.\n */\nexport function deserializeResponseBody(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n response: HttpOperationResponse,\n options: SerializerOptions = {}\n): Promise {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY,\n };\n return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then(\n (parsedResponse) => {\n if (!shouldDeserializeResponse(parsedResponse)) {\n return parsedResponse;\n }\n\n const operationSpec = parsedResponse.request.operationSpec;\n if (!operationSpec || !operationSpec.responses) {\n return parsedResponse;\n }\n\n const responseSpec = getOperationResponse(parsedResponse);\n\n const { error, shouldReturnResponse } = handleErrorResponse(\n parsedResponse,\n operationSpec,\n responseSpec\n );\n if (error) {\n throw error;\n } else if (shouldReturnResponse) {\n return parsedResponse;\n }\n\n // An operation response spec does exist for current status code, so\n // use it to deserialize the response.\n if (responseSpec) {\n if (responseSpec.bodyMapper) {\n let valueToDeserialize: any = parsedResponse.parsedBody;\n if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperType.Sequence) {\n valueToDeserialize =\n typeof valueToDeserialize === \"object\"\n ? valueToDeserialize[responseSpec.bodyMapper.xmlElementName!]\n : [];\n }\n try {\n parsedResponse.parsedBody = operationSpec.serializer.deserialize(\n responseSpec.bodyMapper,\n valueToDeserialize,\n \"operationRes.parsedBody\",\n options\n );\n } catch (innerError: any) {\n const restError = new RestError(\n `Error ${innerError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`,\n undefined,\n parsedResponse.status,\n parsedResponse.request,\n parsedResponse\n );\n throw restError;\n }\n } else if (operationSpec.httpMethod === \"HEAD\") {\n // head methods never have a body, but we return a boolean to indicate presence/absence of the resource\n parsedResponse.parsedBody = response.status >= 200 && response.status < 300;\n }\n\n if (responseSpec.headersMapper) {\n parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(\n responseSpec.headersMapper,\n parsedResponse.headers.rawHeaders(),\n \"operationRes.parsedHeaders\",\n options\n );\n }\n }\n\n return parsedResponse;\n }\n );\n}\n\nfunction isOperationSpecEmpty(operationSpec: OperationSpec): boolean {\n const expectedStatusCodes = Object.keys(operationSpec.responses);\n return (\n expectedStatusCodes.length === 0 ||\n (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === \"default\")\n );\n}\n\nfunction handleErrorResponse(\n parsedResponse: HttpOperationResponse,\n operationSpec: OperationSpec,\n responseSpec: OperationResponse | undefined\n): { error: RestError | null; shouldReturnResponse: boolean } {\n const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;\n const isExpectedStatusCode: boolean = isOperationSpecEmpty(operationSpec)\n ? isSuccessByStatus\n : !!responseSpec;\n\n if (isExpectedStatusCode) {\n if (responseSpec) {\n if (!responseSpec.isError) {\n return { error: null, shouldReturnResponse: false };\n }\n } else {\n return { error: null, shouldReturnResponse: false };\n }\n }\n\n const errorResponseSpec = responseSpec ?? operationSpec.responses.default;\n const streaming =\n parsedResponse.request.streamResponseStatusCodes?.has(parsedResponse.status) ||\n parsedResponse.request.streamResponseBody;\n const initialErrorMessage = streaming\n ? `Unexpected status code: ${parsedResponse.status}`\n : (parsedResponse.bodyAsText as string);\n\n const error = new RestError(\n initialErrorMessage,\n undefined,\n parsedResponse.status,\n parsedResponse.request,\n parsedResponse\n );\n\n // If the item failed but there's no error spec or default spec to deserialize the error,\n // we should fail so we just throw the parsed response\n if (!errorResponseSpec) {\n throw error;\n }\n\n const defaultBodyMapper = errorResponseSpec.bodyMapper;\n const defaultHeadersMapper = errorResponseSpec.headersMapper;\n\n try {\n // If error response has a body, try to deserialize it using default body mapper.\n // Then try to extract error code & message from it\n if (parsedResponse.parsedBody) {\n const parsedBody = parsedResponse.parsedBody;\n let parsedError;\n if (defaultBodyMapper) {\n let valueToDeserialize: any = parsedBody;\n if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) {\n valueToDeserialize =\n typeof parsedBody === \"object\" ? parsedBody[defaultBodyMapper.xmlElementName!] : [];\n }\n parsedError = operationSpec.serializer.deserialize(\n defaultBodyMapper,\n valueToDeserialize,\n \"error.response.parsedBody\"\n );\n }\n\n const internalError: any = parsedBody.error || parsedError || parsedBody;\n error.code = internalError.code;\n if (internalError.message) {\n error.message = internalError.message;\n }\n\n if (defaultBodyMapper) {\n error.response!.parsedBody = parsedError;\n }\n }\n\n // If error response has headers, try to deserialize it using default header mapper\n if (parsedResponse.headers && defaultHeadersMapper) {\n error.response!.parsedHeaders = operationSpec.serializer.deserialize(\n defaultHeadersMapper,\n parsedResponse.headers.rawHeaders(),\n \"operationRes.parsedHeaders\"\n );\n }\n } catch (defaultError: any) {\n error.message = `Error \"${defaultError.message}\" occurred in deserializing the responseBody - \"${parsedResponse.bodyAsText}\" for the default response.`;\n }\n\n return { error, shouldReturnResponse: false };\n}\n\nfunction parse(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n operationResponse: HttpOperationResponse,\n opts: Required\n): Promise {\n const errorHandler = (err: Error & { code: string }): Promise => {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${operationResponse.bodyAsText}.`;\n const errCode = err.code || RestError.PARSE_ERROR;\n const e = new RestError(\n msg,\n errCode,\n operationResponse.status,\n operationResponse.request,\n operationResponse\n );\n return Promise.reject(e);\n };\n\n const streaming =\n operationResponse.request.streamResponseStatusCodes?.has(operationResponse.status) ||\n operationResponse.request.streamResponseBody;\n if (!streaming && operationResponse.bodyAsText) {\n const text = operationResponse.bodyAsText;\n const contentType: string = operationResponse.headers.get(\"Content-Type\") || \"\";\n const contentComponents: string[] = !contentType\n ? []\n : contentType.split(\";\").map((component) => component.toLowerCase());\n if (\n contentComponents.length === 0 ||\n contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)\n ) {\n return new Promise((resolve) => {\n operationResponse.parsedBody = JSON.parse(text);\n resolve(operationResponse);\n }).catch(errorHandler);\n } else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) {\n return parseXML(text, opts)\n .then((body) => {\n operationResponse.parsedBody = body;\n return operationResponse;\n })\n .catch(errorHandler);\n }\n }\n\n return Promise.resolve(operationResponse);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { HttpPipelineLogLevel } from \"../httpPipelineLogLevel\";\nimport { HttpPipelineLogger } from \"../httpPipelineLogger\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Creates a new RequestPolicy per-request that uses the provided nextPolicy.\n */\nexport type RequestPolicyFactory = {\n create(nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike): RequestPolicy;\n};\n\n/**\n * The underlying structure of a request policy.\n */\nexport interface RequestPolicy {\n /**\n * A method that retrieves an {@link HttpOperationResponse} given a {@link WebResourceLike} describing the request to be made.\n * @param httpRequest - {@link WebResourceLike} describing the request to be made.\n */\n sendRequest(httpRequest: WebResourceLike): Promise;\n}\n\n/**\n * The base class from which all request policies derive.\n */\nexport abstract class BaseRequestPolicy implements RequestPolicy {\n /**\n * The main method to implement that manipulates a request/response.\n */\n protected constructor(\n /**\n * The next policy in the pipeline. Each policy is responsible for executing the next one if the request is to continue through the pipeline.\n */\n readonly _nextPolicy: RequestPolicy,\n /**\n * The options that can be passed to a given request policy.\n */\n readonly _options: RequestPolicyOptionsLike\n ) {}\n\n /**\n * Sends a network request based on the given web resource.\n * @param webResource - A {@link WebResourceLike} that describes a HTTP request to be made.\n */\n public abstract sendRequest(webResource: WebResourceLike): Promise;\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return this._options.shouldLog(logLevel);\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meat the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n this._options.log(logLevel, message);\n }\n}\n\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nexport interface RequestPolicyOptionsLike {\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n shouldLog(logLevel: HttpPipelineLogLevel): boolean;\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meet the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n log(logLevel: HttpPipelineLogLevel, message: string): void;\n}\n\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nexport class RequestPolicyOptions {\n constructor(private _logger?: HttpPipelineLogger) {}\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return (\n !!this._logger &&\n logLevel !== HttpPipelineLogLevel.OFF &&\n logLevel <= this._logger.minimumLogLevel\n );\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meet the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n if (this._logger && this.shouldLog(logLevel)) {\n this._logger.log(logLevel, message);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * The different levels of logs that can be used with the HttpPipelineLogger.\n */\nexport enum HttpPipelineLogLevel {\n /**\n * A log level that indicates that no logs will be logged.\n */\n OFF,\n\n /**\n * An error log.\n */\n ERROR,\n\n /**\n * A warning log.\n */\n WARNING,\n\n /**\n * An information log.\n */\n INFO,\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as xml2js from \"xml2js\";\nimport { SerializerOptions, XML_ATTRKEY, XML_CHARKEY } from \"./serializer.common\";\n\n// Note: The reason we re-define all of the xml2js default settings (version 2.0) here is because the default settings object exposed\n// by the xm2js library is mutable. See https://github.com/Leonidas-from-XIV/node-xml2js/issues/536\n// By creating a new copy of the settings each time we instantiate the parser,\n// we are safeguarding against the possibility of the default settings being mutated elsewhere unintentionally.\nconst xml2jsDefaultOptionsV2: xml2js.OptionsV2 = {\n explicitCharkey: false,\n trim: false,\n normalize: false,\n normalizeTags: false,\n attrkey: XML_ATTRKEY,\n explicitArray: true,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: true,\n validator: undefined,\n xmlns: false,\n explicitChildren: false,\n preserveChildrenOrder: false,\n childkey: \"$$\",\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: undefined,\n attrValueProcessors: undefined,\n tagNameProcessors: undefined,\n valueProcessors: undefined,\n rootName: \"root\",\n xmldec: {\n version: \"1.0\",\n encoding: \"UTF-8\",\n standalone: true,\n },\n doctype: undefined,\n renderOpts: {\n pretty: true,\n indent: \" \",\n newline: \"\\n\",\n },\n headless: false,\n chunkSize: 10000,\n emptyTag: \"\",\n cdata: false,\n};\n\n// The xml2js settings for general XML parsing operations.\nconst xml2jsParserSettings: any = Object.assign({}, xml2jsDefaultOptionsV2);\nxml2jsParserSettings.explicitArray = false;\n\n// The xml2js settings for general XML building operations.\nconst xml2jsBuilderSettings: any = Object.assign({}, xml2jsDefaultOptionsV2);\nxml2jsBuilderSettings.explicitArray = false;\nxml2jsBuilderSettings.renderOpts = {\n pretty: false,\n};\n\n/**\n * Converts given JSON object to XML string\n * @param obj - JSON object to be converted into XML string\n * @param opts - Options that govern the parsing of given JSON object\n */\nexport function stringifyXML(obj: unknown, opts: SerializerOptions = {}): string {\n xml2jsBuilderSettings.rootName = opts.rootName;\n xml2jsBuilderSettings.charkey = opts.xmlCharKey ?? XML_CHARKEY;\n const builder = new xml2js.Builder(xml2jsBuilderSettings);\n return builder.buildObject(obj);\n}\n\n/**\n * Converts given XML string into JSON\n * @param str - String containing the XML content to be parsed into JSON\n * @param opts - Options that govern the parsing of given xml string\n */\nexport function parseXML(str: string, opts: SerializerOptions = {}): Promise {\n xml2jsParserSettings.explicitRoot = !!opts.includeRoot;\n xml2jsParserSettings.charkey = opts.xmlCharKey ?? XML_CHARKEY;\n const xmlParser = new xml2js.Parser(xml2jsParserSettings);\n return new Promise((resolve, reject) => {\n if (!str) {\n reject(new Error(\"Document is empty\"));\n } else {\n xmlParser.parseString(str, (err, res) => {\n if (err) {\n reject(err);\n } else {\n resolve(res);\n }\n });\n }\n });\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var builder, defaults, parser, processors,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n defaults = require('./defaults');\n\n builder = require('./builder');\n\n parser = require('./parser');\n\n processors = require('./processors');\n\n exports.defaults = defaults.defaults;\n\n exports.processors = processors;\n\n exports.ValidationError = (function(superClass) {\n extend(ValidationError, superClass);\n\n function ValidationError(message) {\n this.message = message;\n }\n\n return ValidationError;\n\n })(Error);\n\n exports.Builder = builder.Builder;\n\n exports.Parser = parser.Parser;\n\n exports.parseString = parser.parseString;\n\n exports.parseStringPromise = parser.parseStringPromise;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n exports.defaults = {\n \"0.1\": {\n explicitCharkey: false,\n trim: true,\n normalize: true,\n normalizeTags: false,\n attrkey: \"@\",\n charkey: \"#\",\n explicitArray: false,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: false,\n validator: null,\n xmlns: false,\n explicitChildren: false,\n childkey: '@@',\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: null,\n attrValueProcessors: null,\n tagNameProcessors: null,\n valueProcessors: null,\n emptyTag: ''\n },\n \"0.2\": {\n explicitCharkey: false,\n trim: false,\n normalize: false,\n normalizeTags: false,\n attrkey: \"$\",\n charkey: \"_\",\n explicitArray: true,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: true,\n validator: null,\n xmlns: false,\n explicitChildren: false,\n preserveChildrenOrder: false,\n childkey: '$$',\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: null,\n attrValueProcessors: null,\n tagNameProcessors: null,\n valueProcessors: null,\n rootName: 'root',\n xmldec: {\n 'version': '1.0',\n 'encoding': 'UTF-8',\n 'standalone': true\n },\n doctype: null,\n renderOpts: {\n 'pretty': true,\n 'indent': ' ',\n 'newline': '\\n'\n },\n headless: false,\n chunkSize: 10000,\n emptyTag: '',\n cdata: false\n }\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,\n hasProp = {}.hasOwnProperty;\n\n builder = require('xmlbuilder');\n\n defaults = require('./defaults').defaults;\n\n requiresCDATA = function(entry) {\n return typeof entry === \"string\" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);\n };\n\n wrapCDATA = function(entry) {\n return \"\";\n };\n\n escapeCDATA = function(entry) {\n return entry.replace(']]>', ']]]]>');\n };\n\n exports.Builder = (function() {\n function Builder(opts) {\n var key, ref, value;\n this.options = {};\n ref = defaults[\"0.2\"];\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this.options[key] = value;\n }\n for (key in opts) {\n if (!hasProp.call(opts, key)) continue;\n value = opts[key];\n this.options[key] = value;\n }\n }\n\n Builder.prototype.buildObject = function(rootObj) {\n var attrkey, charkey, render, rootElement, rootName;\n attrkey = this.options.attrkey;\n charkey = this.options.charkey;\n if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {\n rootName = Object.keys(rootObj)[0];\n rootObj = rootObj[rootName];\n } else {\n rootName = this.options.rootName;\n }\n render = (function(_this) {\n return function(element, obj) {\n var attr, child, entry, index, key, value;\n if (typeof obj !== 'object') {\n if (_this.options.cdata && requiresCDATA(obj)) {\n element.raw(wrapCDATA(obj));\n } else {\n element.txt(obj);\n }\n } else if (Array.isArray(obj)) {\n for (index in obj) {\n if (!hasProp.call(obj, index)) continue;\n child = obj[index];\n for (key in child) {\n entry = child[key];\n element = render(element.ele(key), entry).up();\n }\n }\n } else {\n for (key in obj) {\n if (!hasProp.call(obj, key)) continue;\n child = obj[key];\n if (key === attrkey) {\n if (typeof child === \"object\") {\n for (attr in child) {\n value = child[attr];\n element = element.att(attr, value);\n }\n }\n } else if (key === charkey) {\n if (_this.options.cdata && requiresCDATA(child)) {\n element = element.raw(wrapCDATA(child));\n } else {\n element = element.txt(child);\n }\n } else if (Array.isArray(child)) {\n for (index in child) {\n if (!hasProp.call(child, index)) continue;\n entry = child[index];\n if (typeof entry === 'string') {\n if (_this.options.cdata && requiresCDATA(entry)) {\n element = element.ele(key).raw(wrapCDATA(entry)).up();\n } else {\n element = element.ele(key, entry).up();\n }\n } else {\n element = render(element.ele(key), entry).up();\n }\n }\n } else if (typeof child === \"object\") {\n element = render(element.ele(key), child).up();\n } else {\n if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {\n element = element.ele(key).raw(wrapCDATA(child)).up();\n } else {\n if (child == null) {\n child = '';\n }\n element = element.ele(key, child.toString()).up();\n }\n }\n }\n }\n return element;\n };\n })(this);\n rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {\n headless: this.options.headless,\n allowSurrogateChars: this.options.allowSurrogateChars\n });\n return render(rootElement, rootObj).end(this.options.renderOpts);\n };\n\n return Builder;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;\n\n ref = require('./Utility'), assign = ref.assign, isFunction = ref.isFunction;\n\n XMLDOMImplementation = require('./XMLDOMImplementation');\n\n XMLDocument = require('./XMLDocument');\n\n XMLDocumentCB = require('./XMLDocumentCB');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n XMLStreamWriter = require('./XMLStreamWriter');\n\n NodeType = require('./NodeType');\n\n WriterState = require('./WriterState');\n\n module.exports.create = function(name, xmldec, doctype, options) {\n var doc, root;\n if (name == null) {\n throw new Error(\"Root element needs a name.\");\n }\n options = assign({}, xmldec, doctype, options);\n doc = new XMLDocument(options);\n root = doc.element(name);\n if (!options.headless) {\n doc.declaration(options);\n if ((options.pubID != null) || (options.sysID != null)) {\n doc.dtd(options);\n }\n }\n return root;\n };\n\n module.exports.begin = function(options, onData, onEnd) {\n var ref1;\n if (isFunction(options)) {\n ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];\n options = {};\n }\n if (onData) {\n return new XMLDocumentCB(options, onData, onEnd);\n } else {\n return new XMLDocument(options);\n }\n };\n\n module.exports.stringWriter = function(options) {\n return new XMLStringWriter(options);\n };\n\n module.exports.streamWriter = function(stream, options) {\n return new XMLStreamWriter(stream, options);\n };\n\n module.exports.implementation = new XMLDOMImplementation();\n\n module.exports.nodeType = NodeType;\n\n module.exports.writerState = WriterState;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,\n slice = [].slice,\n hasProp = {}.hasOwnProperty;\n\n assign = function() {\n var i, key, len, source, sources, target;\n target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n if (isFunction(Object.assign)) {\n Object.assign.apply(null, arguments);\n } else {\n for (i = 0, len = sources.length; i < len; i++) {\n source = sources[i];\n if (source != null) {\n for (key in source) {\n if (!hasProp.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n\n isFunction = function(val) {\n return !!val && Object.prototype.toString.call(val) === '[object Function]';\n };\n\n isObject = function(val) {\n var ref;\n return !!val && ((ref = typeof val) === 'function' || ref === 'object');\n };\n\n isArray = function(val) {\n if (isFunction(Array.isArray)) {\n return Array.isArray(val);\n } else {\n return Object.prototype.toString.call(val) === '[object Array]';\n }\n };\n\n isEmpty = function(val) {\n var key;\n if (isArray(val)) {\n return !val.length;\n } else {\n for (key in val) {\n if (!hasProp.call(val, key)) continue;\n return false;\n }\n return true;\n }\n };\n\n isPlainObject = function(val) {\n var ctor, proto;\n return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));\n };\n\n getValue = function(obj) {\n if (isFunction(obj.valueOf)) {\n return obj.valueOf();\n } else {\n return obj;\n }\n };\n\n module.exports.assign = assign;\n\n module.exports.isFunction = isFunction;\n\n module.exports.isObject = isObject;\n\n module.exports.isArray = isArray;\n\n module.exports.isEmpty = isEmpty;\n\n module.exports.isPlainObject = isPlainObject;\n\n module.exports.getValue = getValue;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMImplementation;\n\n module.exports = XMLDOMImplementation = (function() {\n function XMLDOMImplementation() {}\n\n XMLDOMImplementation.prototype.hasFeature = function(feature, version) {\n return true;\n };\n\n XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.createHTMLDocument = function(title) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.getFeature = function(feature, version) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n return XMLDOMImplementation;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isPlainObject = require('./Utility').isPlainObject;\n\n XMLDOMImplementation = require('./XMLDOMImplementation');\n\n XMLDOMConfiguration = require('./XMLDOMConfiguration');\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n module.exports = XMLDocument = (function(superClass) {\n extend(XMLDocument, superClass);\n\n function XMLDocument(options) {\n XMLDocument.__super__.constructor.call(this, null);\n this.name = \"#document\";\n this.type = NodeType.Document;\n this.documentURI = null;\n this.domConfig = new XMLDOMConfiguration();\n options || (options = {});\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.stringify = new XMLStringifier(options);\n }\n\n Object.defineProperty(XMLDocument.prototype, 'implementation', {\n value: new XMLDOMImplementation()\n });\n\n Object.defineProperty(XMLDocument.prototype, 'doctype', {\n get: function() {\n var child, i, len, ref;\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.DocType) {\n return child;\n }\n }\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'documentElement', {\n get: function() {\n return this.rootObject || null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'inputEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'strictErrorChecking', {\n get: function() {\n return false;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlEncoding', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].encoding;\n } else {\n return null;\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlStandalone', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].standalone === 'yes';\n } else {\n return false;\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlVersion', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].version;\n } else {\n return \"1.0\";\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'URL', {\n get: function() {\n return this.documentURI;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'origin', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'compatMode', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'characterSet', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'contentType', {\n get: function() {\n return null;\n }\n });\n\n XMLDocument.prototype.end = function(writer) {\n var writerOptions;\n writerOptions = {};\n if (!writer) {\n writer = this.options.writer;\n } else if (isPlainObject(writer)) {\n writerOptions = writer;\n writer = this.options.writer;\n }\n return writer.document(this, writer.filterOptions(writerOptions));\n };\n\n XMLDocument.prototype.toString = function(options) {\n return this.options.writer.document(this, this.options.writer.filterOptions(options));\n };\n\n XMLDocument.prototype.createElement = function(tagName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createDocumentFragment = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createTextNode = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createComment = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createCDATASection = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createProcessingInstruction = function(target, data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createAttribute = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createEntityReference = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByTagName = function(tagname) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.importNode = function(importedNode, deep) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementById = function(elementId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.adoptNode = function(source) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.normalizeDocument = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByClassName = function(classNames) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createEvent = function(eventInterface) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createRange = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n return XMLDocument;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMConfiguration, XMLDOMErrorHandler, XMLDOMStringList;\n\n XMLDOMErrorHandler = require('./XMLDOMErrorHandler');\n\n XMLDOMStringList = require('./XMLDOMStringList');\n\n module.exports = XMLDOMConfiguration = (function() {\n function XMLDOMConfiguration() {\n var clonedSelf;\n this.defaultParams = {\n \"canonical-form\": false,\n \"cdata-sections\": false,\n \"comments\": false,\n \"datatype-normalization\": false,\n \"element-content-whitespace\": true,\n \"entities\": true,\n \"error-handler\": new XMLDOMErrorHandler(),\n \"infoset\": true,\n \"validate-if-schema\": false,\n \"namespaces\": true,\n \"namespace-declarations\": true,\n \"normalize-characters\": false,\n \"schema-location\": '',\n \"schema-type\": '',\n \"split-cdata-sections\": true,\n \"validate\": false,\n \"well-formed\": true\n };\n this.params = clonedSelf = Object.create(this.defaultParams);\n }\n\n Object.defineProperty(XMLDOMConfiguration.prototype, 'parameterNames', {\n get: function() {\n return new XMLDOMStringList(Object.keys(this.defaultParams));\n }\n });\n\n XMLDOMConfiguration.prototype.getParameter = function(name) {\n if (this.params.hasOwnProperty(name)) {\n return this.params[name];\n } else {\n return null;\n }\n };\n\n XMLDOMConfiguration.prototype.canSetParameter = function(name, value) {\n return true;\n };\n\n XMLDOMConfiguration.prototype.setParameter = function(name, value) {\n if (value != null) {\n return this.params[name] = value;\n } else {\n return delete this.params[name];\n }\n };\n\n return XMLDOMConfiguration;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMErrorHandler;\n\n module.exports = XMLDOMErrorHandler = (function() {\n function XMLDOMErrorHandler() {}\n\n XMLDOMErrorHandler.prototype.handleError = function(error) {\n throw new Error(error);\n };\n\n return XMLDOMErrorHandler;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMStringList;\n\n module.exports = XMLDOMStringList = (function() {\n function XMLDOMStringList(arr) {\n this.arr = arr || [];\n }\n\n Object.defineProperty(XMLDOMStringList.prototype, 'length', {\n get: function() {\n return this.arr.length;\n }\n });\n\n XMLDOMStringList.prototype.item = function(index) {\n return this.arr[index] || null;\n };\n\n XMLDOMStringList.prototype.contains = function(str) {\n return this.arr.indexOf(str) !== -1;\n };\n\n return XMLDOMStringList;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var DocumentPosition, NodeType, XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNamedNodeMap, XMLNode, XMLNodeList, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref1,\n hasProp = {}.hasOwnProperty;\n\n ref1 = require('./Utility'), isObject = ref1.isObject, isFunction = ref1.isFunction, isEmpty = ref1.isEmpty, getValue = ref1.getValue;\n\n XMLElement = null;\n\n XMLCData = null;\n\n XMLComment = null;\n\n XMLDeclaration = null;\n\n XMLDocType = null;\n\n XMLRaw = null;\n\n XMLText = null;\n\n XMLProcessingInstruction = null;\n\n XMLDummy = null;\n\n NodeType = null;\n\n XMLNodeList = null;\n\n XMLNamedNodeMap = null;\n\n DocumentPosition = null;\n\n module.exports = XMLNode = (function() {\n function XMLNode(parent1) {\n this.parent = parent1;\n if (this.parent) {\n this.options = this.parent.options;\n this.stringify = this.parent.stringify;\n }\n this.value = null;\n this.children = [];\n this.baseURI = null;\n if (!XMLElement) {\n XMLElement = require('./XMLElement');\n XMLCData = require('./XMLCData');\n XMLComment = require('./XMLComment');\n XMLDeclaration = require('./XMLDeclaration');\n XMLDocType = require('./XMLDocType');\n XMLRaw = require('./XMLRaw');\n XMLText = require('./XMLText');\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n XMLDummy = require('./XMLDummy');\n NodeType = require('./NodeType');\n XMLNodeList = require('./XMLNodeList');\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n DocumentPosition = require('./DocumentPosition');\n }\n }\n\n Object.defineProperty(XMLNode.prototype, 'nodeName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'nodeType', {\n get: function() {\n return this.type;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'nodeValue', {\n get: function() {\n return this.value;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'parentNode', {\n get: function() {\n return this.parent;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'childNodes', {\n get: function() {\n if (!this.childNodeList || !this.childNodeList.nodes) {\n this.childNodeList = new XMLNodeList(this.children);\n }\n return this.childNodeList;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'firstChild', {\n get: function() {\n return this.children[0] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'lastChild', {\n get: function() {\n return this.children[this.children.length - 1] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'previousSibling', {\n get: function() {\n var i;\n i = this.parent.children.indexOf(this);\n return this.parent.children[i - 1] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'nextSibling', {\n get: function() {\n var i;\n i = this.parent.children.indexOf(this);\n return this.parent.children[i + 1] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'ownerDocument', {\n get: function() {\n return this.document() || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'textContent', {\n get: function() {\n var child, j, len, ref2, str;\n if (this.nodeType === NodeType.Element || this.nodeType === NodeType.DocumentFragment) {\n str = '';\n ref2 = this.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (child.textContent) {\n str += child.textContent;\n }\n }\n return str;\n } else {\n return null;\n }\n },\n set: function(value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n XMLNode.prototype.setParent = function(parent) {\n var child, j, len, ref2, results;\n this.parent = parent;\n if (parent) {\n this.options = parent.options;\n this.stringify = parent.stringify;\n }\n ref2 = this.children;\n results = [];\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n results.push(child.setParent(this));\n }\n return results;\n };\n\n XMLNode.prototype.element = function(name, attributes, text) {\n var childNode, item, j, k, key, lastChild, len, len1, ref2, ref3, val;\n lastChild = null;\n if (attributes === null && (text == null)) {\n ref2 = [{}, null], attributes = ref2[0], text = ref2[1];\n }\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref3 = [attributes, text], text = ref3[0], attributes = ref3[1];\n }\n if (name != null) {\n name = getValue(name);\n }\n if (Array.isArray(name)) {\n for (j = 0, len = name.length; j < len; j++) {\n item = name[j];\n lastChild = this.element(item);\n }\n } else if (isFunction(name)) {\n lastChild = this.element(name.apply());\n } else if (isObject(name)) {\n for (key in name) {\n if (!hasProp.call(name, key)) continue;\n val = name[key];\n if (isFunction(val)) {\n val = val.apply();\n }\n if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {\n lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);\n } else if (!this.options.separateArrayItems && Array.isArray(val) && isEmpty(val)) {\n lastChild = this.dummy();\n } else if (isObject(val) && isEmpty(val)) {\n lastChild = this.element(key);\n } else if (!this.options.keepNullNodes && (val == null)) {\n lastChild = this.dummy();\n } else if (!this.options.separateArrayItems && Array.isArray(val)) {\n for (k = 0, len1 = val.length; k < len1; k++) {\n item = val[k];\n childNode = {};\n childNode[key] = item;\n lastChild = this.element(childNode);\n }\n } else if (isObject(val)) {\n if (!this.options.ignoreDecorators && this.stringify.convertTextKey && key.indexOf(this.stringify.convertTextKey) === 0) {\n lastChild = this.element(val);\n } else {\n lastChild = this.element(key);\n lastChild.element(val);\n }\n } else {\n lastChild = this.element(key, val);\n }\n }\n } else if (!this.options.keepNullNodes && text === null) {\n lastChild = this.dummy();\n } else {\n if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {\n lastChild = this.text(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {\n lastChild = this.cdata(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {\n lastChild = this.comment(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {\n lastChild = this.raw(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {\n lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);\n } else {\n lastChild = this.node(name, attributes, text);\n }\n }\n if (lastChild == null) {\n throw new Error(\"Could not create any elements with: \" + name + \". \" + this.debugInfo());\n }\n return lastChild;\n };\n\n XMLNode.prototype.insertBefore = function(name, attributes, text) {\n var child, i, newChild, refChild, removed;\n if (name != null ? name.type : void 0) {\n newChild = name;\n refChild = attributes;\n newChild.setParent(this);\n if (refChild) {\n i = children.indexOf(refChild);\n removed = children.splice(i);\n children.push(newChild);\n Array.prototype.push.apply(children, removed);\n } else {\n children.push(newChild);\n }\n return newChild;\n } else {\n if (this.isRoot) {\n throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n }\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.element(name, attributes, text);\n Array.prototype.push.apply(this.parent.children, removed);\n return child;\n }\n };\n\n XMLNode.prototype.insertAfter = function(name, attributes, text) {\n var child, i, removed;\n if (this.isRoot) {\n throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n }\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.element(name, attributes, text);\n Array.prototype.push.apply(this.parent.children, removed);\n return child;\n };\n\n XMLNode.prototype.remove = function() {\n var i, ref2;\n if (this.isRoot) {\n throw new Error(\"Cannot remove the root element. \" + this.debugInfo());\n }\n i = this.parent.children.indexOf(this);\n [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref2 = [])), ref2;\n return this.parent;\n };\n\n XMLNode.prototype.node = function(name, attributes, text) {\n var child, ref2;\n if (name != null) {\n name = getValue(name);\n }\n attributes || (attributes = {});\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];\n }\n child = new XMLElement(this, name, attributes);\n if (text != null) {\n child.text(text);\n }\n this.children.push(child);\n return child;\n };\n\n XMLNode.prototype.text = function(value) {\n var child;\n if (isObject(value)) {\n this.element(value);\n }\n child = new XMLText(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.cdata = function(value) {\n var child;\n child = new XMLCData(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.comment = function(value) {\n var child;\n child = new XMLComment(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.commentBefore = function(value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.comment(value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.commentAfter = function(value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.comment(value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.raw = function(value) {\n var child;\n child = new XMLRaw(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.dummy = function() {\n var child;\n child = new XMLDummy(this);\n return child;\n };\n\n XMLNode.prototype.instruction = function(target, value) {\n var insTarget, insValue, instruction, j, len;\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (j = 0, len = target.length; j < len; j++) {\n insTarget = target[j];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n instruction = new XMLProcessingInstruction(this, target, value);\n this.children.push(instruction);\n }\n return this;\n };\n\n XMLNode.prototype.instructionBefore = function(target, value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.instruction(target, value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.instructionAfter = function(target, value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.instruction(target, value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.declaration = function(version, encoding, standalone) {\n var doc, xmldec;\n doc = this.document();\n xmldec = new XMLDeclaration(doc, version, encoding, standalone);\n if (doc.children.length === 0) {\n doc.children.unshift(xmldec);\n } else if (doc.children[0].type === NodeType.Declaration) {\n doc.children[0] = xmldec;\n } else {\n doc.children.unshift(xmldec);\n }\n return doc.root() || doc;\n };\n\n XMLNode.prototype.dtd = function(pubID, sysID) {\n var child, doc, doctype, i, j, k, len, len1, ref2, ref3;\n doc = this.document();\n doctype = new XMLDocType(doc, pubID, sysID);\n ref2 = doc.children;\n for (i = j = 0, len = ref2.length; j < len; i = ++j) {\n child = ref2[i];\n if (child.type === NodeType.DocType) {\n doc.children[i] = doctype;\n return doctype;\n }\n }\n ref3 = doc.children;\n for (i = k = 0, len1 = ref3.length; k < len1; i = ++k) {\n child = ref3[i];\n if (child.isRoot) {\n doc.children.splice(i, 0, doctype);\n return doctype;\n }\n }\n doc.children.push(doctype);\n return doctype;\n };\n\n XMLNode.prototype.up = function() {\n if (this.isRoot) {\n throw new Error(\"The root node has no parent. Use doc() if you need to get the document object.\");\n }\n return this.parent;\n };\n\n XMLNode.prototype.root = function() {\n var node;\n node = this;\n while (node) {\n if (node.type === NodeType.Document) {\n return node.rootObject;\n } else if (node.isRoot) {\n return node;\n } else {\n node = node.parent;\n }\n }\n };\n\n XMLNode.prototype.document = function() {\n var node;\n node = this;\n while (node) {\n if (node.type === NodeType.Document) {\n return node;\n } else {\n node = node.parent;\n }\n }\n };\n\n XMLNode.prototype.end = function(options) {\n return this.document().end(options);\n };\n\n XMLNode.prototype.prev = function() {\n var i;\n i = this.parent.children.indexOf(this);\n if (i < 1) {\n throw new Error(\"Already at the first node. \" + this.debugInfo());\n }\n return this.parent.children[i - 1];\n };\n\n XMLNode.prototype.next = function() {\n var i;\n i = this.parent.children.indexOf(this);\n if (i === -1 || i === this.parent.children.length - 1) {\n throw new Error(\"Already at the last node. \" + this.debugInfo());\n }\n return this.parent.children[i + 1];\n };\n\n XMLNode.prototype.importDocument = function(doc) {\n var clonedRoot;\n clonedRoot = doc.root().clone();\n clonedRoot.parent = this;\n clonedRoot.isRoot = false;\n this.children.push(clonedRoot);\n return this;\n };\n\n XMLNode.prototype.debugInfo = function(name) {\n var ref2, ref3;\n name = name || this.name;\n if ((name == null) && !((ref2 = this.parent) != null ? ref2.name : void 0)) {\n return \"\";\n } else if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else if (!((ref3 = this.parent) != null ? ref3.name : void 0)) {\n return \"node: <\" + name + \">\";\n } else {\n return \"node: <\" + name + \">, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLNode.prototype.ele = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.doc = function() {\n return this.document();\n };\n\n XMLNode.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLNode.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLNode.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.u = function() {\n return this.up();\n };\n\n XMLNode.prototype.importXMLBuilder = function(doc) {\n return this.importDocument(doc);\n };\n\n XMLNode.prototype.replaceChild = function(newChild, oldChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.removeChild = function(oldChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.appendChild = function(newChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.hasChildNodes = function() {\n return this.children.length !== 0;\n };\n\n XMLNode.prototype.cloneNode = function(deep) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.normalize = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isSupported = function(feature, version) {\n return true;\n };\n\n XMLNode.prototype.hasAttributes = function() {\n return this.attribs.length !== 0;\n };\n\n XMLNode.prototype.compareDocumentPosition = function(other) {\n var ref, res;\n ref = this;\n if (ref === other) {\n return 0;\n } else if (this.document() !== other.document()) {\n res = DocumentPosition.Disconnected | DocumentPosition.ImplementationSpecific;\n if (Math.random() < 0.5) {\n res |= DocumentPosition.Preceding;\n } else {\n res |= DocumentPosition.Following;\n }\n return res;\n } else if (ref.isAncestor(other)) {\n return DocumentPosition.Contains | DocumentPosition.Preceding;\n } else if (ref.isDescendant(other)) {\n return DocumentPosition.Contains | DocumentPosition.Following;\n } else if (ref.isPreceding(other)) {\n return DocumentPosition.Preceding;\n } else {\n return DocumentPosition.Following;\n }\n };\n\n XMLNode.prototype.isSameNode = function(other) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.lookupPrefix = function(namespaceURI) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isDefaultNamespace = function(namespaceURI) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.lookupNamespaceURI = function(prefix) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isEqualNode = function(node) {\n var i, j, ref2;\n if (node.nodeType !== this.nodeType) {\n return false;\n }\n if (node.children.length !== this.children.length) {\n return false;\n }\n for (i = j = 0, ref2 = this.children.length - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) {\n if (!this.children[i].isEqualNode(node.children[i])) {\n return false;\n }\n }\n return true;\n };\n\n XMLNode.prototype.getFeature = function(feature, version) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.setUserData = function(key, data, handler) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.getUserData = function(key) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.contains = function(other) {\n if (!other) {\n return false;\n }\n return other === this || this.isDescendant(other);\n };\n\n XMLNode.prototype.isDescendant = function(node) {\n var child, isDescendantChild, j, len, ref2;\n ref2 = this.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (node === child) {\n return true;\n }\n isDescendantChild = child.isDescendant(node);\n if (isDescendantChild) {\n return true;\n }\n }\n return false;\n };\n\n XMLNode.prototype.isAncestor = function(node) {\n return node.isDescendant(this);\n };\n\n XMLNode.prototype.isPreceding = function(node) {\n var nodePos, thisPos;\n nodePos = this.treePosition(node);\n thisPos = this.treePosition(this);\n if (nodePos === -1 || thisPos === -1) {\n return false;\n } else {\n return nodePos < thisPos;\n }\n };\n\n XMLNode.prototype.isFollowing = function(node) {\n var nodePos, thisPos;\n nodePos = this.treePosition(node);\n thisPos = this.treePosition(this);\n if (nodePos === -1 || thisPos === -1) {\n return false;\n } else {\n return nodePos > thisPos;\n }\n };\n\n XMLNode.prototype.treePosition = function(node) {\n var found, pos;\n pos = 0;\n found = false;\n this.foreachTreeNode(this.document(), function(childNode) {\n pos++;\n if (!found && childNode === node) {\n return found = true;\n }\n });\n if (found) {\n return pos;\n } else {\n return -1;\n }\n };\n\n XMLNode.prototype.foreachTreeNode = function(node, func) {\n var child, j, len, ref2, res;\n node || (node = this.document());\n ref2 = node.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (res = func(child)) {\n return res;\n } else {\n res = this.foreachTreeNode(child, func);\n if (res) {\n return res;\n }\n }\n }\n };\n\n return XMLNode;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLAttribute, XMLElement, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n\n module.exports = XMLElement = (function(superClass) {\n extend(XMLElement, superClass);\n\n function XMLElement(parent, name, attributes) {\n var child, j, len, ref1;\n XMLElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing element name. \" + this.debugInfo());\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.Element;\n this.attribs = {};\n this.schemaTypeInfo = null;\n if (attributes != null) {\n this.attribute(attributes);\n }\n if (parent.type === NodeType.Document) {\n this.isRoot = true;\n this.documentObject = parent;\n parent.rootObject = this;\n if (parent.children) {\n ref1 = parent.children;\n for (j = 0, len = ref1.length; j < len; j++) {\n child = ref1[j];\n if (child.type === NodeType.DocType) {\n child.name = this.name;\n break;\n }\n }\n }\n }\n }\n\n Object.defineProperty(XMLElement.prototype, 'tagName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'namespaceURI', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'prefix', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'localName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'id', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'className', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'classList', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'attributes', {\n get: function() {\n if (!this.attributeMap || !this.attributeMap.nodes) {\n this.attributeMap = new XMLNamedNodeMap(this.attribs);\n }\n return this.attributeMap;\n }\n });\n\n XMLElement.prototype.clone = function() {\n var att, attName, clonedSelf, ref1;\n clonedSelf = Object.create(this);\n if (clonedSelf.isRoot) {\n clonedSelf.documentObject = null;\n }\n clonedSelf.attribs = {};\n ref1 = this.attribs;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n clonedSelf.attribs[attName] = att.clone();\n }\n clonedSelf.children = [];\n this.children.forEach(function(child) {\n var clonedChild;\n clonedChild = child.clone();\n clonedChild.parent = clonedSelf;\n return clonedSelf.children.push(clonedChild);\n });\n return clonedSelf;\n };\n\n XMLElement.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (this.options.keepNullAttributes && (value == null)) {\n this.attribs[name] = new XMLAttribute(this, name, \"\");\n } else if (value != null) {\n this.attribs[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLElement.prototype.removeAttribute = function(name) {\n var attName, j, len;\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo());\n }\n name = getValue(name);\n if (Array.isArray(name)) {\n for (j = 0, len = name.length; j < len; j++) {\n attName = name[j];\n delete this.attribs[attName];\n }\n } else {\n delete this.attribs[name];\n }\n return this;\n };\n\n XMLElement.prototype.toString = function(options) {\n return this.options.writer.element(this, this.options.writer.filterOptions(options));\n };\n\n XMLElement.prototype.att = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.a = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.getAttribute = function(name) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name].value;\n } else {\n return null;\n }\n };\n\n XMLElement.prototype.setAttribute = function(name, value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNode = function(name) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name];\n } else {\n return null;\n }\n };\n\n XMLElement.prototype.setAttributeNode = function(newAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.removeAttributeNode = function(oldAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagName = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.removeAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setAttributeNodeNS = function(newAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.hasAttribute = function(name) {\n return this.attribs.hasOwnProperty(name);\n };\n\n XMLElement.prototype.hasAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setIdAttribute = function(name, isId) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name].isId;\n } else {\n return isId;\n }\n };\n\n XMLElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagName = function(tagname) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByClassName = function(classNames) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.isEqualNode = function(node) {\n var i, j, ref1;\n if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.namespaceURI !== this.namespaceURI) {\n return false;\n }\n if (node.prefix !== this.prefix) {\n return false;\n }\n if (node.localName !== this.localName) {\n return false;\n }\n if (node.attribs.length !== this.attribs.length) {\n return false;\n }\n for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) {\n if (!this.attribs[i].isEqualNode(node.attribs[i])) {\n return false;\n }\n }\n return true;\n };\n\n return XMLElement;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n Element: 1,\n Attribute: 2,\n Text: 3,\n CData: 4,\n EntityReference: 5,\n EntityDeclaration: 6,\n ProcessingInstruction: 7,\n Comment: 8,\n Document: 9,\n DocType: 10,\n DocumentFragment: 11,\n NotationDeclaration: 12,\n Declaration: 201,\n Raw: 202,\n AttributeDeclaration: 203,\n ElementDeclaration: 204,\n Dummy: 205\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLAttribute, XMLNode;\n\n NodeType = require('./NodeType');\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLAttribute = (function() {\n function XMLAttribute(parent, name, value) {\n this.parent = parent;\n if (this.parent) {\n this.options = this.parent.options;\n this.stringify = this.parent.stringify;\n }\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo(name));\n }\n this.name = this.stringify.name(name);\n this.value = this.stringify.attValue(value);\n this.type = NodeType.Attribute;\n this.isId = false;\n this.schemaTypeInfo = null;\n }\n\n Object.defineProperty(XMLAttribute.prototype, 'nodeType', {\n get: function() {\n return this.type;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'ownerElement', {\n get: function() {\n return this.parent;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'textContent', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'prefix', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'localName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'specified', {\n get: function() {\n return true;\n }\n });\n\n XMLAttribute.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLAttribute.prototype.toString = function(options) {\n return this.options.writer.attribute(this, this.options.writer.filterOptions(options));\n };\n\n XMLAttribute.prototype.debugInfo = function(name) {\n name = name || this.name;\n if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else {\n return \"attribute: {\" + name + \"}, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLAttribute.prototype.isEqualNode = function(node) {\n if (node.namespaceURI !== this.namespaceURI) {\n return false;\n }\n if (node.prefix !== this.prefix) {\n return false;\n }\n if (node.localName !== this.localName) {\n return false;\n }\n if (node.value !== this.value) {\n return false;\n }\n return true;\n };\n\n return XMLAttribute;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNamedNodeMap;\n\n module.exports = XMLNamedNodeMap = (function() {\n function XMLNamedNodeMap(nodes) {\n this.nodes = nodes;\n }\n\n Object.defineProperty(XMLNamedNodeMap.prototype, 'length', {\n get: function() {\n return Object.keys(this.nodes).length || 0;\n }\n });\n\n XMLNamedNodeMap.prototype.clone = function() {\n return this.nodes = null;\n };\n\n XMLNamedNodeMap.prototype.getNamedItem = function(name) {\n return this.nodes[name];\n };\n\n XMLNamedNodeMap.prototype.setNamedItem = function(node) {\n var oldNode;\n oldNode = this.nodes[node.nodeName];\n this.nodes[node.nodeName] = node;\n return oldNode || null;\n };\n\n XMLNamedNodeMap.prototype.removeNamedItem = function(name) {\n var oldNode;\n oldNode = this.nodes[name];\n delete this.nodes[name];\n return oldNode || null;\n };\n\n XMLNamedNodeMap.prototype.item = function(index) {\n return this.nodes[Object.keys(this.nodes)[index]] || null;\n };\n\n XMLNamedNodeMap.prototype.getNamedItemNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLNamedNodeMap.prototype.setNamedItemNS = function(node) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLNamedNodeMap.prototype.removeNamedItemNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n return XMLNamedNodeMap;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCData, XMLCharacterData,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLCData = (function(superClass) {\n extend(XMLCData, superClass);\n\n function XMLCData(parent, text) {\n XMLCData.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing CDATA text. \" + this.debugInfo());\n }\n this.name = \"#cdata-section\";\n this.type = NodeType.CData;\n this.value = this.stringify.cdata(text);\n }\n\n XMLCData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCData.prototype.toString = function(options) {\n return this.options.writer.cdata(this, this.options.writer.filterOptions(options));\n };\n\n return XMLCData;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCharacterData, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLCharacterData = (function(superClass) {\n extend(XMLCharacterData, superClass);\n\n function XMLCharacterData(parent) {\n XMLCharacterData.__super__.constructor.call(this, parent);\n this.value = '';\n }\n\n Object.defineProperty(XMLCharacterData.prototype, 'data', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n Object.defineProperty(XMLCharacterData.prototype, 'length', {\n get: function() {\n return this.value.length;\n }\n });\n\n Object.defineProperty(XMLCharacterData.prototype, 'textContent', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n XMLCharacterData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCharacterData.prototype.substringData = function(offset, count) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.appendData = function(arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.insertData = function(offset, arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.deleteData = function(offset, count) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.replaceData = function(offset, count, arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.isEqualNode = function(node) {\n if (!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.data !== this.data) {\n return false;\n }\n return true;\n };\n\n return XMLCharacterData;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLComment,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLComment = (function(superClass) {\n extend(XMLComment, superClass);\n\n function XMLComment(parent, text) {\n XMLComment.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing comment text. \" + this.debugInfo());\n }\n this.name = \"#comment\";\n this.type = NodeType.Comment;\n this.value = this.stringify.comment(text);\n }\n\n XMLComment.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLComment.prototype.toString = function(options) {\n return this.options.writer.comment(this, this.options.writer.filterOptions(options));\n };\n\n return XMLComment;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDeclaration, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDeclaration = (function(superClass) {\n extend(XMLDeclaration, superClass);\n\n function XMLDeclaration(parent, version, encoding, standalone) {\n var ref;\n XMLDeclaration.__super__.constructor.call(this, parent);\n if (isObject(version)) {\n ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;\n }\n if (!version) {\n version = '1.0';\n }\n this.type = NodeType.Declaration;\n this.version = this.stringify.xmlVersion(version);\n if (encoding != null) {\n this.encoding = this.stringify.xmlEncoding(encoding);\n }\n if (standalone != null) {\n this.standalone = this.stringify.xmlStandalone(standalone);\n }\n }\n\n XMLDeclaration.prototype.toString = function(options) {\n return this.options.writer.declaration(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDeclaration;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNamedNodeMap, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n\n module.exports = XMLDocType = (function(superClass) {\n extend(XMLDocType, superClass);\n\n function XMLDocType(parent, pubID, sysID) {\n var child, i, len, ref, ref1, ref2;\n XMLDocType.__super__.constructor.call(this, parent);\n this.type = NodeType.DocType;\n if (parent.children) {\n ref = parent.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.Element) {\n this.name = child.name;\n break;\n }\n }\n }\n this.documentObject = parent;\n if (isObject(pubID)) {\n ref1 = pubID, pubID = ref1.pubID, sysID = ref1.sysID;\n }\n if (sysID == null) {\n ref2 = [pubID, sysID], sysID = ref2[0], pubID = ref2[1];\n }\n if (pubID != null) {\n this.pubID = this.stringify.dtdPubID(pubID);\n }\n if (sysID != null) {\n this.sysID = this.stringify.dtdSysID(sysID);\n }\n }\n\n Object.defineProperty(XMLDocType.prototype, 'entities', {\n get: function() {\n var child, i, len, nodes, ref;\n nodes = {};\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if ((child.type === NodeType.EntityDeclaration) && !child.pe) {\n nodes[child.name] = child;\n }\n }\n return new XMLNamedNodeMap(nodes);\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'notations', {\n get: function() {\n var child, i, len, nodes, ref;\n nodes = {};\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.NotationDeclaration) {\n nodes[child.name] = child;\n }\n }\n return new XMLNamedNodeMap(nodes);\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'internalSubset', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n XMLDocType.prototype.element = function(name, value) {\n var child;\n child = new XMLDTDElement(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var child;\n child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.entity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, false, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.pEntity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, true, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.notation = function(name, value) {\n var child;\n child = new XMLDTDNotation(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.toString = function(options) {\n return this.options.writer.docType(this, this.options.writer.filterOptions(options));\n };\n\n XMLDocType.prototype.ele = function(name, value) {\n return this.element(name, value);\n };\n\n XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);\n };\n\n XMLDocType.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocType.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocType.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n XMLDocType.prototype.up = function() {\n return this.root() || this.documentObject;\n };\n\n XMLDocType.prototype.isEqualNode = function(node) {\n if (!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.name !== this.name) {\n return false;\n }\n if (node.publicId !== this.publicId) {\n return false;\n }\n if (node.systemId !== this.systemId) {\n return false;\n }\n return true;\n };\n\n return XMLDocType;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDAttList, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDAttList = (function(superClass) {\n extend(XMLDTDAttList, superClass);\n\n function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n XMLDTDAttList.__super__.constructor.call(this, parent);\n if (elementName == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (attributeName == null) {\n throw new Error(\"Missing DTD attribute name. \" + this.debugInfo(elementName));\n }\n if (!attributeType) {\n throw new Error(\"Missing DTD attribute type. \" + this.debugInfo(elementName));\n }\n if (!defaultValueType) {\n throw new Error(\"Missing DTD attribute default. \" + this.debugInfo(elementName));\n }\n if (defaultValueType.indexOf('#') !== 0) {\n defaultValueType = '#' + defaultValueType;\n }\n if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Default value only applies to #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n this.elementName = this.stringify.name(elementName);\n this.type = NodeType.AttributeDeclaration;\n this.attributeName = this.stringify.name(attributeName);\n this.attributeType = this.stringify.dtdAttType(attributeType);\n if (defaultValue) {\n this.defaultValue = this.stringify.dtdAttDefault(defaultValue);\n }\n this.defaultValueType = defaultValueType;\n }\n\n XMLDTDAttList.prototype.toString = function(options) {\n return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDAttList;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDEntity, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDEntity = (function(superClass) {\n extend(XMLDTDEntity, superClass);\n\n function XMLDTDEntity(parent, pe, name, value) {\n XMLDTDEntity.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD entity name. \" + this.debugInfo(name));\n }\n if (value == null) {\n throw new Error(\"Missing DTD entity value. \" + this.debugInfo(name));\n }\n this.pe = !!pe;\n this.name = this.stringify.name(name);\n this.type = NodeType.EntityDeclaration;\n if (!isObject(value)) {\n this.value = this.stringify.dtdEntityValue(value);\n this.internal = true;\n } else {\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public and/or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n if (value.pubID && !value.sysID) {\n throw new Error(\"System identifier is required for a public external entity. \" + this.debugInfo(name));\n }\n this.internal = false;\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n if (value.nData != null) {\n this.nData = this.stringify.dtdNData(value.nData);\n }\n if (this.pe && this.nData) {\n throw new Error(\"Notation declaration is not allowed in a parameter entity. \" + this.debugInfo(name));\n }\n }\n }\n\n Object.defineProperty(XMLDTDEntity.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'notationName', {\n get: function() {\n return this.nData || null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'inputEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'xmlEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'xmlVersion', {\n get: function() {\n return null;\n }\n });\n\n XMLDTDEntity.prototype.toString = function(options) {\n return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDEntity;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDElement, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDElement = (function(superClass) {\n extend(XMLDTDElement, superClass);\n\n function XMLDTDElement(parent, name, value) {\n XMLDTDElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (!value) {\n value = '(#PCDATA)';\n }\n if (Array.isArray(value)) {\n value = '(' + value.join(',') + ')';\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.ElementDeclaration;\n this.value = this.stringify.dtdElementValue(value);\n }\n\n XMLDTDElement.prototype.toString = function(options) {\n return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDElement;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDNotation, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDNotation = (function(superClass) {\n extend(XMLDTDNotation, superClass);\n\n function XMLDTDNotation(parent, name, value) {\n XMLDTDNotation.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD notation name. \" + this.debugInfo(name));\n }\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.NotationDeclaration;\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n }\n\n Object.defineProperty(XMLDTDNotation.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDTDNotation.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n XMLDTDNotation.prototype.toString = function(options) {\n return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDNotation;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLNode, XMLRaw,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLRaw = (function(superClass) {\n extend(XMLRaw, superClass);\n\n function XMLRaw(parent, text) {\n XMLRaw.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing raw text. \" + this.debugInfo());\n }\n this.type = NodeType.Raw;\n this.value = this.stringify.raw(text);\n }\n\n XMLRaw.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLRaw.prototype.toString = function(options) {\n return this.options.writer.raw(this, this.options.writer.filterOptions(options));\n };\n\n return XMLRaw;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLText,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLText = (function(superClass) {\n extend(XMLText, superClass);\n\n function XMLText(parent, text) {\n XMLText.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing element text. \" + this.debugInfo());\n }\n this.name = \"#text\";\n this.type = NodeType.Text;\n this.value = this.stringify.text(text);\n }\n\n Object.defineProperty(XMLText.prototype, 'isElementContentWhitespace', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLText.prototype, 'wholeText', {\n get: function() {\n var next, prev, str;\n str = '';\n prev = this.previousSibling;\n while (prev) {\n str = prev.data + str;\n prev = prev.previousSibling;\n }\n str += this.data;\n next = this.nextSibling;\n while (next) {\n str = str + next.data;\n next = next.nextSibling;\n }\n return str;\n }\n });\n\n XMLText.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLText.prototype.toString = function(options) {\n return this.options.writer.text(this, this.options.writer.filterOptions(options));\n };\n\n XMLText.prototype.splitText = function(offset) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLText.prototype.replaceWholeText = function(content) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n return XMLText;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLProcessingInstruction,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLProcessingInstruction = (function(superClass) {\n extend(XMLProcessingInstruction, superClass);\n\n function XMLProcessingInstruction(parent, target, value) {\n XMLProcessingInstruction.__super__.constructor.call(this, parent);\n if (target == null) {\n throw new Error(\"Missing instruction target. \" + this.debugInfo());\n }\n this.type = NodeType.ProcessingInstruction;\n this.target = this.stringify.insTarget(target);\n this.name = this.target;\n if (value) {\n this.value = this.stringify.insValue(value);\n }\n }\n\n XMLProcessingInstruction.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLProcessingInstruction.prototype.toString = function(options) {\n return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));\n };\n\n XMLProcessingInstruction.prototype.isEqualNode = function(node) {\n if (!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.target !== this.target) {\n return false;\n }\n return true;\n };\n\n return XMLProcessingInstruction;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDummy, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDummy = (function(superClass) {\n extend(XMLDummy, superClass);\n\n function XMLDummy(parent) {\n XMLDummy.__super__.constructor.call(this, parent);\n this.type = NodeType.Dummy;\n }\n\n XMLDummy.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLDummy.prototype.toString = function(options) {\n return '';\n };\n\n return XMLDummy;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNodeList;\n\n module.exports = XMLNodeList = (function() {\n function XMLNodeList(nodes) {\n this.nodes = nodes;\n }\n\n Object.defineProperty(XMLNodeList.prototype, 'length', {\n get: function() {\n return this.nodes.length || 0;\n }\n });\n\n XMLNodeList.prototype.clone = function() {\n return this.nodes = null;\n };\n\n XMLNodeList.prototype.item = function(index) {\n return this.nodes[index] || null;\n };\n\n return XMLNodeList;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n Disconnected: 1,\n Preceding: 2,\n Following: 4,\n Contains: 8,\n ContainedBy: 16,\n ImplementationSpecific: 32\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLStringifier,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n hasProp = {}.hasOwnProperty;\n\n module.exports = XMLStringifier = (function() {\n function XMLStringifier(options) {\n this.assertLegalName = bind(this.assertLegalName, this);\n this.assertLegalChar = bind(this.assertLegalChar, this);\n var key, ref, value;\n options || (options = {});\n this.options = options;\n if (!this.options.version) {\n this.options.version = '1.0';\n }\n ref = options.stringify || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[key] = value;\n }\n }\n\n XMLStringifier.prototype.name = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalName('' + val || '');\n };\n\n XMLStringifier.prototype.text = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar(this.textEscape('' + val || ''));\n };\n\n XMLStringifier.prototype.cdata = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n val = val.replace(']]>', ']]]]>');\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.comment = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (val.match(/--/)) {\n throw new Error(\"Comment text cannot contain double-hypen: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.raw = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return '' + val || '';\n };\n\n XMLStringifier.prototype.attValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar(this.attEscape(val = '' + val || ''));\n };\n\n XMLStringifier.prototype.insTarget = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.insValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (val.match(/\\?>/)) {\n throw new Error(\"Invalid processing instruction value: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.xmlVersion = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (!val.match(/1\\.[0-9]+/)) {\n throw new Error(\"Invalid version number: \" + val);\n }\n return val;\n };\n\n XMLStringifier.prototype.xmlEncoding = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {\n throw new Error(\"Invalid encoding: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.xmlStandalone = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n if (val) {\n return \"yes\";\n } else {\n return \"no\";\n }\n };\n\n XMLStringifier.prototype.dtdPubID = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdSysID = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdElementValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdAttType = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdAttDefault = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdEntityValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdNData = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.convertAttKey = '@';\n\n XMLStringifier.prototype.convertPIKey = '?';\n\n XMLStringifier.prototype.convertTextKey = '#text';\n\n XMLStringifier.prototype.convertCDataKey = '#cdata';\n\n XMLStringifier.prototype.convertCommentKey = '#comment';\n\n XMLStringifier.prototype.convertRawKey = '#raw';\n\n XMLStringifier.prototype.assertLegalChar = function(str) {\n var regex, res;\n if (this.options.noValidation) {\n return str;\n }\n regex = '';\n if (this.options.version === '1.0') {\n regex = /[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n if (res = str.match(regex)) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n } else if (this.options.version === '1.1') {\n regex = /[\\0\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n if (res = str.match(regex)) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n }\n return str;\n };\n\n XMLStringifier.prototype.assertLegalName = function(str) {\n var regex;\n if (this.options.noValidation) {\n return str;\n }\n this.assertLegalChar(str);\n regex = /^([:A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])([\\x2D\\.0-:A-Z_a-z\\xB7\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203F\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])*$/;\n if (!str.match(regex)) {\n throw new Error(\"Invalid character in name\");\n }\n return str;\n };\n\n XMLStringifier.prototype.textEscape = function(str) {\n var ampregex;\n if (this.options.noValidation) {\n return str;\n }\n ampregex = this.options.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(//g, '>').replace(/\\r/g, ' ');\n };\n\n XMLStringifier.prototype.attEscape = function(str) {\n var ampregex;\n if (this.options.noValidation) {\n return str;\n }\n ampregex = this.options.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(/ 0) {\n return new Array(indentLevel).join(options.indent);\n }\n }\n return '';\n };\n\n XMLWriterBase.prototype.endline = function(node, options, level) {\n if (!options.pretty || options.suppressPrettyCount) {\n return '';\n } else {\n return options.newline;\n }\n };\n\n XMLWriterBase.prototype.attribute = function(att, options, level) {\n var r;\n this.openAttribute(att, options, level);\n r = ' ' + att.name + '=\"' + att.value + '\"';\n this.closeAttribute(att, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.cdata = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.comment = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.declaration = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.docType = function(node, options, level) {\n var child, i, len, r, ref;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n r += ' 0) {\n r += ' [';\n r += this.endline(node, options, level);\n options.state = WriterState.InsideTag;\n ref = node.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n r += this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n r += ']';\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.element = function(node, options, level) {\n var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2;\n level || (level = 0);\n prettySuppressed = false;\n r = '';\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r += this.indent(node, options, level) + '<' + node.name;\n ref = node.attribs;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n r += this.attribute(att, options, level);\n }\n childNodeCount = node.children.length;\n firstChildNode = childNodeCount === 0 ? null : node.children[0];\n if (childNodeCount === 0 || node.children.every(function(e) {\n return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';\n })) {\n if (options.allowEmpty) {\n r += '>';\n options.state = WriterState.CloseTag;\n r += '' + this.endline(node, options, level);\n } else {\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '/>' + this.endline(node, options, level);\n }\n } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {\n r += '>';\n options.state = WriterState.InsideTag;\n options.suppressPrettyCount++;\n prettySuppressed = true;\n r += this.writeChildNode(firstChildNode, options, level + 1);\n options.suppressPrettyCount--;\n prettySuppressed = false;\n options.state = WriterState.CloseTag;\n r += '' + this.endline(node, options, level);\n } else {\n if (options.dontPrettyTextNodes) {\n ref1 = node.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n if ((child.type === NodeType.Text || child.type === NodeType.Raw) && (child.value != null)) {\n options.suppressPrettyCount++;\n prettySuppressed = true;\n break;\n }\n }\n }\n r += '>' + this.endline(node, options, level);\n options.state = WriterState.InsideTag;\n ref2 = node.children;\n for (j = 0, len1 = ref2.length; j < len1; j++) {\n child = ref2[j];\n r += this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n r += this.indent(node, options, level) + '';\n if (prettySuppressed) {\n options.suppressPrettyCount--;\n }\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n }\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.writeChildNode = function(node, options, level) {\n switch (node.type) {\n case NodeType.CData:\n return this.cdata(node, options, level);\n case NodeType.Comment:\n return this.comment(node, options, level);\n case NodeType.Element:\n return this.element(node, options, level);\n case NodeType.Raw:\n return this.raw(node, options, level);\n case NodeType.Text:\n return this.text(node, options, level);\n case NodeType.ProcessingInstruction:\n return this.processingInstruction(node, options, level);\n case NodeType.Dummy:\n return '';\n case NodeType.Declaration:\n return this.declaration(node, options, level);\n case NodeType.DocType:\n return this.docType(node, options, level);\n case NodeType.AttributeDeclaration:\n return this.dtdAttList(node, options, level);\n case NodeType.ElementDeclaration:\n return this.dtdElement(node, options, level);\n case NodeType.EntityDeclaration:\n return this.dtdEntity(node, options, level);\n case NodeType.NotationDeclaration:\n return this.dtdNotation(node, options, level);\n default:\n throw new Error(\"Unknown XML node type: \" + node.constructor.name);\n }\n };\n\n XMLWriterBase.prototype.processingInstruction = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.raw = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.text = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdAttList = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdElement = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdEntity = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdNotation = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.openNode = function(node, options, level) {};\n\n XMLWriterBase.prototype.closeNode = function(node, options, level) {};\n\n XMLWriterBase.prototype.openAttribute = function(att, options, level) {};\n\n XMLWriterBase.prototype.closeAttribute = function(att, options, level) {};\n\n return XMLWriterBase;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n None: 0,\n OpenTag: 1,\n InsideTag: 2,\n CloseTag: 3\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;\n\n NodeType = require('./NodeType');\n\n XMLDocument = require('./XMLDocument');\n\n XMLElement = require('./XMLElement');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLDocumentCB = (function() {\n function XMLDocumentCB(options, onData, onEnd) {\n var writerOptions;\n this.name = \"?xml\";\n this.type = NodeType.Document;\n options || (options = {});\n writerOptions = {};\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n } else if (isPlainObject(options.writer)) {\n writerOptions = options.writer;\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.writer = options.writer;\n this.writerOptions = this.writer.filterOptions(writerOptions);\n this.stringify = new XMLStringifier(options);\n this.onDataCallback = onData || function() {};\n this.onEndCallback = onEnd || function() {};\n this.currentNode = null;\n this.currentLevel = -1;\n this.openTags = {};\n this.documentStarted = false;\n this.documentCompleted = false;\n this.root = null;\n }\n\n XMLDocumentCB.prototype.createChildNode = function(node) {\n var att, attName, attributes, child, i, len, ref1, ref2;\n switch (node.type) {\n case NodeType.CData:\n this.cdata(node.value);\n break;\n case NodeType.Comment:\n this.comment(node.value);\n break;\n case NodeType.Element:\n attributes = {};\n ref1 = node.attribs;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n attributes[attName] = att.value;\n }\n this.node(node.name, attributes);\n break;\n case NodeType.Dummy:\n this.dummy();\n break;\n case NodeType.Raw:\n this.raw(node.value);\n break;\n case NodeType.Text:\n this.text(node.value);\n break;\n case NodeType.ProcessingInstruction:\n this.instruction(node.target, node.value);\n break;\n default:\n throw new Error(\"This XML node type is not supported in a JS object: \" + node.constructor.name);\n }\n ref2 = node.children;\n for (i = 0, len = ref2.length; i < len; i++) {\n child = ref2[i];\n this.createChildNode(child);\n if (child.type === NodeType.Element) {\n this.up();\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.dummy = function() {\n return this;\n };\n\n XMLDocumentCB.prototype.node = function(name, attributes, text) {\n var ref1;\n if (name == null) {\n throw new Error(\"Missing node name.\");\n }\n if (this.root && this.currentLevel === -1) {\n throw new Error(\"Document can only have one root node. \" + this.debugInfo(name));\n }\n this.openCurrent();\n name = getValue(name);\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];\n }\n this.currentNode = new XMLElement(this, name, attributes);\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n if (text != null) {\n this.text(text);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.element = function(name, attributes, text) {\n var child, i, len, oldValidationFlag, ref1, root;\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n this.dtdElement.apply(this, arguments);\n } else {\n if (Array.isArray(name) || isObject(name) || isFunction(name)) {\n oldValidationFlag = this.options.noValidation;\n this.options.noValidation = true;\n root = new XMLDocument(this.options).element('TEMP_ROOT');\n root.element(name);\n this.options.noValidation = oldValidationFlag;\n ref1 = root.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n this.createChildNode(child);\n if (child.type === NodeType.Element) {\n this.up();\n }\n }\n } else {\n this.node(name, attributes, text);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (!this.currentNode || this.currentNode.children) {\n throw new Error(\"att() can only be used immediately after an ele() call in callback mode. \" + this.debugInfo(name));\n }\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (this.options.keepNullAttributes && (value == null)) {\n this.currentNode.attribs[name] = new XMLAttribute(this, name, \"\");\n } else if (value != null) {\n this.currentNode.attribs[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.text = function(value) {\n var node;\n this.openCurrent();\n node = new XMLText(this, value);\n this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.cdata = function(value) {\n var node;\n this.openCurrent();\n node = new XMLCData(this, value);\n this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.comment = function(value) {\n var node;\n this.openCurrent();\n node = new XMLComment(this, value);\n this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.raw = function(value) {\n var node;\n this.openCurrent();\n node = new XMLRaw(this, value);\n this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.instruction = function(target, value) {\n var i, insTarget, insValue, len, node;\n this.openCurrent();\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (i = 0, len = target.length; i < len; i++) {\n insTarget = target[i];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n node = new XMLProcessingInstruction(this, target, value);\n this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {\n var node;\n this.openCurrent();\n if (this.documentStarted) {\n throw new Error(\"declaration() must be the first node.\");\n }\n node = new XMLDeclaration(this, version, encoding, standalone);\n this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {\n this.openCurrent();\n if (root == null) {\n throw new Error(\"Missing root node name.\");\n }\n if (this.root) {\n throw new Error(\"dtd() must come before the root node.\");\n }\n this.currentNode = new XMLDocType(this, pubID, sysID);\n this.currentNode.rootNodeName = root;\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n return this;\n };\n\n XMLDocumentCB.prototype.dtdElement = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDElement(this, name, value);\n this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var node;\n this.openCurrent();\n node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.entity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, false, name, value);\n this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.pEntity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, true, name, value);\n this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.notation = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDNotation(this, name, value);\n this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.up = function() {\n if (this.currentLevel < 0) {\n throw new Error(\"The document node has no parent.\");\n }\n if (this.currentNode) {\n if (this.currentNode.children) {\n this.closeNode(this.currentNode);\n } else {\n this.openNode(this.currentNode);\n }\n this.currentNode = null;\n } else {\n this.closeNode(this.openTags[this.currentLevel]);\n }\n delete this.openTags[this.currentLevel];\n this.currentLevel--;\n return this;\n };\n\n XMLDocumentCB.prototype.end = function() {\n while (this.currentLevel >= 0) {\n this.up();\n }\n return this.onEnd();\n };\n\n XMLDocumentCB.prototype.openCurrent = function() {\n if (this.currentNode) {\n this.currentNode.children = true;\n return this.openNode(this.currentNode);\n }\n };\n\n XMLDocumentCB.prototype.openNode = function(node) {\n var att, chunk, name, ref1;\n if (!node.isOpen) {\n if (!this.root && this.currentLevel === 0 && node.type === NodeType.Element) {\n this.root = node;\n }\n chunk = '';\n if (node.type === NodeType.Element) {\n this.writerOptions.state = WriterState.OpenTag;\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<' + node.name;\n ref1 = node.attribs;\n for (name in ref1) {\n if (!hasProp.call(ref1, name)) continue;\n att = ref1[name];\n chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel);\n }\n chunk += (node.children ? '>' : '/>') + this.writer.endline(node, this.writerOptions, this.currentLevel);\n this.writerOptions.state = WriterState.InsideTag;\n } else {\n this.writerOptions.state = WriterState.OpenTag;\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '';\n }\n chunk += this.writer.endline(node, this.writerOptions, this.currentLevel);\n }\n this.onData(chunk, this.currentLevel);\n return node.isOpen = true;\n }\n };\n\n XMLDocumentCB.prototype.closeNode = function(node) {\n var chunk;\n if (!node.isClosed) {\n chunk = '';\n this.writerOptions.state = WriterState.CloseTag;\n if (node.type === NodeType.Element) {\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '' + this.writer.endline(node, this.writerOptions, this.currentLevel);\n } else {\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ']>' + this.writer.endline(node, this.writerOptions, this.currentLevel);\n }\n this.writerOptions.state = WriterState.None;\n this.onData(chunk, this.currentLevel);\n return node.isClosed = true;\n }\n };\n\n XMLDocumentCB.prototype.onData = function(chunk, level) {\n this.documentStarted = true;\n return this.onDataCallback(chunk, level + 1);\n };\n\n XMLDocumentCB.prototype.onEnd = function() {\n this.documentCompleted = true;\n return this.onEndCallback();\n };\n\n XMLDocumentCB.prototype.debugInfo = function(name) {\n if (name == null) {\n return \"\";\n } else {\n return \"node: <\" + name + \">\";\n }\n };\n\n XMLDocumentCB.prototype.ele = function() {\n return this.element.apply(this, arguments);\n };\n\n XMLDocumentCB.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {\n return this.doctype(root, pubID, sysID);\n };\n\n XMLDocumentCB.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLDocumentCB.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.att = function() {\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.a = function() {\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocumentCB.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocumentCB.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n return XMLDocumentCB;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLStreamWriter, XMLWriterBase,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLWriterBase = require('./XMLWriterBase');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLStreamWriter = (function(superClass) {\n extend(XMLStreamWriter, superClass);\n\n function XMLStreamWriter(stream, options) {\n this.stream = stream;\n XMLStreamWriter.__super__.constructor.call(this, options);\n }\n\n XMLStreamWriter.prototype.endline = function(node, options, level) {\n if (node.isLastRootNode && options.state === WriterState.CloseTag) {\n return '';\n } else {\n return XMLStreamWriter.__super__.endline.call(this, node, options, level);\n }\n };\n\n XMLStreamWriter.prototype.document = function(doc, options) {\n var child, i, j, k, len, len1, ref, ref1, results;\n ref = doc.children;\n for (i = j = 0, len = ref.length; j < len; i = ++j) {\n child = ref[i];\n child.isLastRootNode = i === doc.children.length - 1;\n }\n options = this.filterOptions(options);\n ref1 = doc.children;\n results = [];\n for (k = 0, len1 = ref1.length; k < len1; k++) {\n child = ref1[k];\n results.push(this.writeChildNode(child, options, 0));\n }\n return results;\n };\n\n XMLStreamWriter.prototype.attribute = function(att, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level));\n };\n\n XMLStreamWriter.prototype.cdata = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.comment = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.declaration = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.docType = function(node, options, level) {\n var child, j, len, ref;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n this.stream.write(this.indent(node, options, level));\n this.stream.write(' 0) {\n this.stream.write(' [');\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.InsideTag;\n ref = node.children;\n for (j = 0, len = ref.length; j < len; j++) {\n child = ref[j];\n this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n this.stream.write(']');\n }\n options.state = WriterState.CloseTag;\n this.stream.write(options.spaceBeforeSlash + '>');\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.None;\n return this.closeNode(node, options, level);\n };\n\n XMLStreamWriter.prototype.element = function(node, options, level) {\n var att, child, childNodeCount, firstChildNode, j, len, name, prettySuppressed, ref, ref1;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n this.stream.write(this.indent(node, options, level) + '<' + node.name);\n ref = node.attribs;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n this.attribute(att, options, level);\n }\n childNodeCount = node.children.length;\n firstChildNode = childNodeCount === 0 ? null : node.children[0];\n if (childNodeCount === 0 || node.children.every(function(e) {\n return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';\n })) {\n if (options.allowEmpty) {\n this.stream.write('>');\n options.state = WriterState.CloseTag;\n this.stream.write('');\n } else {\n options.state = WriterState.CloseTag;\n this.stream.write(options.spaceBeforeSlash + '/>');\n }\n } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {\n this.stream.write('>');\n options.state = WriterState.InsideTag;\n options.suppressPrettyCount++;\n prettySuppressed = true;\n this.writeChildNode(firstChildNode, options, level + 1);\n options.suppressPrettyCount--;\n prettySuppressed = false;\n options.state = WriterState.CloseTag;\n this.stream.write('');\n } else {\n this.stream.write('>' + this.endline(node, options, level));\n options.state = WriterState.InsideTag;\n ref1 = node.children;\n for (j = 0, len = ref1.length; j < len; j++) {\n child = ref1[j];\n this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n this.stream.write(this.indent(node, options, level) + '');\n }\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.None;\n return this.closeNode(node, options, level);\n };\n\n XMLStreamWriter.prototype.processingInstruction = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.raw = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.text = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdAttList = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdElement = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdEntity = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdNotation = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level));\n };\n\n return XMLStreamWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var bom, defaults, events, isEmpty, processItem, processors, sax, setImmediate,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n sax = require('sax');\n\n events = require('events');\n\n bom = require('./bom');\n\n processors = require('./processors');\n\n setImmediate = require('timers').setImmediate;\n\n defaults = require('./defaults').defaults;\n\n isEmpty = function(thing) {\n return typeof thing === \"object\" && (thing != null) && Object.keys(thing).length === 0;\n };\n\n processItem = function(processors, item, key) {\n var i, len, process;\n for (i = 0, len = processors.length; i < len; i++) {\n process = processors[i];\n item = process(item, key);\n }\n return item;\n };\n\n exports.Parser = (function(superClass) {\n extend(Parser, superClass);\n\n function Parser(opts) {\n this.parseStringPromise = bind(this.parseStringPromise, this);\n this.parseString = bind(this.parseString, this);\n this.reset = bind(this.reset, this);\n this.assignOrPush = bind(this.assignOrPush, this);\n this.processAsync = bind(this.processAsync, this);\n var key, ref, value;\n if (!(this instanceof exports.Parser)) {\n return new exports.Parser(opts);\n }\n this.options = {};\n ref = defaults[\"0.2\"];\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this.options[key] = value;\n }\n for (key in opts) {\n if (!hasProp.call(opts, key)) continue;\n value = opts[key];\n this.options[key] = value;\n }\n if (this.options.xmlns) {\n this.options.xmlnskey = this.options.attrkey + \"ns\";\n }\n if (this.options.normalizeTags) {\n if (!this.options.tagNameProcessors) {\n this.options.tagNameProcessors = [];\n }\n this.options.tagNameProcessors.unshift(processors.normalize);\n }\n this.reset();\n }\n\n Parser.prototype.processAsync = function() {\n var chunk, err;\n try {\n if (this.remaining.length <= this.options.chunkSize) {\n chunk = this.remaining;\n this.remaining = '';\n this.saxParser = this.saxParser.write(chunk);\n return this.saxParser.close();\n } else {\n chunk = this.remaining.substr(0, this.options.chunkSize);\n this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);\n this.saxParser = this.saxParser.write(chunk);\n return setImmediate(this.processAsync);\n }\n } catch (error1) {\n err = error1;\n if (!this.saxParser.errThrown) {\n this.saxParser.errThrown = true;\n return this.emit(err);\n }\n }\n };\n\n Parser.prototype.assignOrPush = function(obj, key, newValue) {\n if (!(key in obj)) {\n if (!this.options.explicitArray) {\n return obj[key] = newValue;\n } else {\n return obj[key] = [newValue];\n }\n } else {\n if (!(obj[key] instanceof Array)) {\n obj[key] = [obj[key]];\n }\n return obj[key].push(newValue);\n }\n };\n\n Parser.prototype.reset = function() {\n var attrkey, charkey, ontext, stack;\n this.removeAllListeners();\n this.saxParser = sax.parser(this.options.strict, {\n trim: false,\n normalize: false,\n xmlns: this.options.xmlns\n });\n this.saxParser.errThrown = false;\n this.saxParser.onerror = (function(_this) {\n return function(error) {\n _this.saxParser.resume();\n if (!_this.saxParser.errThrown) {\n _this.saxParser.errThrown = true;\n return _this.emit(\"error\", error);\n }\n };\n })(this);\n this.saxParser.onend = (function(_this) {\n return function() {\n if (!_this.saxParser.ended) {\n _this.saxParser.ended = true;\n return _this.emit(\"end\", _this.resultObject);\n }\n };\n })(this);\n this.saxParser.ended = false;\n this.EXPLICIT_CHARKEY = this.options.explicitCharkey;\n this.resultObject = null;\n stack = [];\n attrkey = this.options.attrkey;\n charkey = this.options.charkey;\n this.saxParser.onopentag = (function(_this) {\n return function(node) {\n var key, newValue, obj, processedKey, ref;\n obj = {};\n obj[charkey] = \"\";\n if (!_this.options.ignoreAttrs) {\n ref = node.attributes;\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n if (!(attrkey in obj) && !_this.options.mergeAttrs) {\n obj[attrkey] = {};\n }\n newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];\n processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;\n if (_this.options.mergeAttrs) {\n _this.assignOrPush(obj, processedKey, newValue);\n } else {\n obj[attrkey][processedKey] = newValue;\n }\n }\n }\n obj[\"#name\"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name;\n if (_this.options.xmlns) {\n obj[_this.options.xmlnskey] = {\n uri: node.uri,\n local: node.local\n };\n }\n return stack.push(obj);\n };\n })(this);\n this.saxParser.onclosetag = (function(_this) {\n return function() {\n var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath;\n obj = stack.pop();\n nodeName = obj[\"#name\"];\n if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {\n delete obj[\"#name\"];\n }\n if (obj.cdata === true) {\n cdata = obj.cdata;\n delete obj.cdata;\n }\n s = stack[stack.length - 1];\n if (obj[charkey].match(/^\\s*$/) && !cdata) {\n emptyStr = obj[charkey];\n delete obj[charkey];\n } else {\n if (_this.options.trim) {\n obj[charkey] = obj[charkey].trim();\n }\n if (_this.options.normalize) {\n obj[charkey] = obj[charkey].replace(/\\s{2,}/g, \" \").trim();\n }\n obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey];\n if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {\n obj = obj[charkey];\n }\n }\n if (isEmpty(obj)) {\n obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;\n }\n if (_this.options.validator != null) {\n xpath = \"/\" + ((function() {\n var i, len, results;\n results = [];\n for (i = 0, len = stack.length; i < len; i++) {\n node = stack[i];\n results.push(node[\"#name\"]);\n }\n return results;\n })()).concat(nodeName).join(\"/\");\n (function() {\n var err;\n try {\n return obj = _this.options.validator(xpath, s && s[nodeName], obj);\n } catch (error1) {\n err = error1;\n return _this.emit(\"error\", err);\n }\n })();\n }\n if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {\n if (!_this.options.preserveChildrenOrder) {\n node = {};\n if (_this.options.attrkey in obj) {\n node[_this.options.attrkey] = obj[_this.options.attrkey];\n delete obj[_this.options.attrkey];\n }\n if (!_this.options.charsAsChildren && _this.options.charkey in obj) {\n node[_this.options.charkey] = obj[_this.options.charkey];\n delete obj[_this.options.charkey];\n }\n if (Object.getOwnPropertyNames(obj).length > 0) {\n node[_this.options.childkey] = obj;\n }\n obj = node;\n } else if (s) {\n s[_this.options.childkey] = s[_this.options.childkey] || [];\n objClone = {};\n for (key in obj) {\n if (!hasProp.call(obj, key)) continue;\n objClone[key] = obj[key];\n }\n s[_this.options.childkey].push(objClone);\n delete obj[\"#name\"];\n if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {\n obj = obj[charkey];\n }\n }\n }\n if (stack.length > 0) {\n return _this.assignOrPush(s, nodeName, obj);\n } else {\n if (_this.options.explicitRoot) {\n old = obj;\n obj = {};\n obj[nodeName] = old;\n }\n _this.resultObject = obj;\n _this.saxParser.ended = true;\n return _this.emit(\"end\", _this.resultObject);\n }\n };\n })(this);\n ontext = (function(_this) {\n return function(text) {\n var charChild, s;\n s = stack[stack.length - 1];\n if (s) {\n s[charkey] += text;\n if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\\\n/g, '').trim() !== '')) {\n s[_this.options.childkey] = s[_this.options.childkey] || [];\n charChild = {\n '#name': '__text__'\n };\n charChild[charkey] = text;\n if (_this.options.normalize) {\n charChild[charkey] = charChild[charkey].replace(/\\s{2,}/g, \" \").trim();\n }\n s[_this.options.childkey].push(charChild);\n }\n return s;\n }\n };\n })(this);\n this.saxParser.ontext = ontext;\n return this.saxParser.oncdata = (function(_this) {\n return function(text) {\n var s;\n s = ontext(text);\n if (s) {\n return s.cdata = true;\n }\n };\n })(this);\n };\n\n Parser.prototype.parseString = function(str, cb) {\n var err;\n if ((cb != null) && typeof cb === \"function\") {\n this.on(\"end\", function(result) {\n this.reset();\n return cb(null, result);\n });\n this.on(\"error\", function(err) {\n this.reset();\n return cb(err);\n });\n }\n try {\n str = str.toString();\n if (str.trim() === '') {\n this.emit(\"end\", null);\n return true;\n }\n str = bom.stripBOM(str);\n if (this.options.async) {\n this.remaining = str;\n setImmediate(this.processAsync);\n return this.saxParser;\n }\n return this.saxParser.write(str).close();\n } catch (error1) {\n err = error1;\n if (!(this.saxParser.errThrown || this.saxParser.ended)) {\n this.emit('error', err);\n return this.saxParser.errThrown = true;\n } else if (this.saxParser.ended) {\n throw err;\n }\n }\n };\n\n Parser.prototype.parseStringPromise = function(str) {\n return new Promise((function(_this) {\n return function(resolve, reject) {\n return _this.parseString(str, function(err, value) {\n if (err) {\n return reject(err);\n } else {\n return resolve(value);\n }\n });\n };\n })(this));\n };\n\n return Parser;\n\n })(events);\n\n exports.parseString = function(str, a, b) {\n var cb, options, parser;\n if (b != null) {\n if (typeof b === 'function') {\n cb = b;\n }\n if (typeof a === 'object') {\n options = a;\n }\n } else {\n if (typeof a === 'function') {\n cb = a;\n }\n options = {};\n }\n parser = new exports.Parser(options);\n return parser.parseString(str, cb);\n };\n\n exports.parseStringPromise = function(str, a) {\n var options, parser;\n if (typeof a === 'object') {\n options = a;\n }\n parser = new exports.Parser(options);\n return parser.parseStringPromise(str);\n };\n\n}).call(this);\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // \n SCRIPT: S++, //