@drincs/pixi-vn 1.5.17 → 1.5.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/canvas.cjs +3 -2
  2. package/dist/canvas.d.cts +25 -2
  3. package/dist/canvas.d.ts +25 -2
  4. package/dist/canvas.mjs +3 -2
  5. package/dist/characters.cjs +2 -1
  6. package/dist/characters.mjs +2 -1
  7. package/dist/chunk-46QBDRUK.mjs +2 -0
  8. package/dist/chunk-52EK6LYW.mjs +2 -0
  9. package/dist/chunk-INJYRMJ3.mjs +2 -0
  10. package/dist/{chunk-TTRUPDAB.mjs → chunk-JJFD2BVW.mjs} +2 -1
  11. package/dist/chunk-JJFD2BVW.mjs.map +1 -0
  12. package/dist/chunk-OXRIVLY2.mjs +2 -0
  13. package/dist/chunk-SOFV7YZ5.mjs +2 -0
  14. package/dist/chunk-XZMYXKAY.mjs +2 -0
  15. package/dist/core.d.cts +1 -0
  16. package/dist/core.d.ts +1 -0
  17. package/dist/history.cjs +2 -1
  18. package/dist/history.mjs +2 -1
  19. package/dist/index.cjs +3 -2
  20. package/dist/index.cjs.map +1 -0
  21. package/dist/index.d.cts +16 -1
  22. package/dist/index.d.ts +16 -1
  23. package/dist/index.mjs +3 -2
  24. package/dist/index.mjs.map +1 -0
  25. package/dist/motion.cjs +2 -1
  26. package/dist/motion.cjs.map +1 -0
  27. package/dist/motion.mjs +2 -1
  28. package/dist/motion.mjs.map +1 -0
  29. package/dist/narration.cjs +3 -2
  30. package/dist/narration.mjs +3 -2
  31. package/dist/pixi/browser.js +170 -167
  32. package/dist/sound.cjs +2 -1
  33. package/dist/sound.mjs +2 -1
  34. package/dist/storage.cjs +2 -1
  35. package/dist/storage.mjs +2 -1
  36. package/dist/vite-listener.cjs +2 -1
  37. package/dist/vite-listener.cjs.map +1 -0
  38. package/dist/vite-listener.mjs +2 -1
  39. package/dist/vite-listener.mjs.map +1 -0
  40. package/dist/vite.cjs +2 -1
  41. package/dist/vite.cjs.map +1 -0
  42. package/dist/vite.mjs +2 -1
  43. package/dist/vite.mjs.map +1 -0
  44. package/package.json +3 -1
  45. package/dist/chunk-6GO4XVS7.mjs +0 -1
  46. package/dist/chunk-D45QSSXG.mjs +0 -1
  47. package/dist/chunk-L4IHQ3VT.mjs +0 -1
  48. package/dist/chunk-PGCK6PIK.mjs +0 -1
  49. package/dist/chunk-XSN6P5JL.mjs +0 -0
  50. package/dist/chunk-Z646UWLT.mjs +0 -1
package/dist/canvas.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var Ce=require('@drincs/pixi-vn/pixi.js'),core=require('@drincs/pixi-vn/core'),devtools=require('@pixi/devtools');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ce__default=/*#__PURE__*/_interopDefault(Ce);var Ea=Object.create;var Ii=Object.defineProperty;var Ma=Object.getOwnPropertyDescriptor;var Oa=Object.getOwnPropertyNames;var za=Object.getPrototypeOf,Ba=Object.prototype.hasOwnProperty;var $i=a=>{throw TypeError(a)};var Ra=(a,e,i)=>e in a?Ii(a,e,{enumerable:true,configurable:true,writable:true,value:i}):a[e]=i;var _i=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(e,i)=>(typeof require<"u"?require:e)[i]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var ai=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports);var Da=(a,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Oa(e))!Ba.call(a,t)&&t!==i&&Ii(a,t,{get:()=>e[t],enumerable:!(n=Ma(e,t))||n.enumerable});return a};var Ci=(a,e,i)=>(i=a!=null?Ea(za(a)):{},Da(Ii(i,"default",{value:a,enumerable:true}),a));var b=(a,e,i)=>Ra(a,typeof e!="symbol"?e+"":e,i),ji=(a,e,i)=>e.has(a)||$i("Cannot "+i);var s=(a,e,i)=>(ji(a,e,"read from private field"),i?i.call(a):e.get(a)),O=(a,e,i)=>e.has(a)?$i("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,i),_=(a,e,i,n)=>(ji(a,e,"write to private field"),e.set(a,i),i),S=(a,e,i)=>(ji(a,e,"access private method"),i);var ni=(a,e,i,n)=>({set _(t){_(a,e,t);},get _(){return s(a,e,n)}});var Ki=ai((si,Xi)=>{(function(a,e){typeof si=="object"?Xi.exports=si=e():typeof define=="function"&&define.amd?define([],e):a.CryptoJS=e();})(si,function(){var a=a||(function(e,i){var n;if(typeof window<"u"&&window.crypto&&(n=window.crypto),typeof self<"u"&&self.crypto&&(n=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(n=globalThis.crypto),!n&&typeof window<"u"&&window.msCrypto&&(n=window.msCrypto),!n&&typeof global<"u"&&global.crypto&&(n=global.crypto),!n&&typeof _i=="function")try{n=_i("crypto");}catch{}var t=function(){if(n){if(typeof n.getRandomValues=="function")try{return n.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof n.randomBytes=="function")try{return n.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function m(){}return function(w){var E;return m.prototype=w,E=new m,m.prototype=null,E}})(),r={},u=r.lib={},l=u.Base=(function(){return {extend:function(m){var w=o(this);return m&&w.mixIn(m),(!w.hasOwnProperty("init")||this.init===w.init)&&(w.init=function(){w.$super.init.apply(this,arguments);}),w.init.prototype=w,w.$super=this,w},create:function(){var m=this.extend();return m.init.apply(m,arguments),m},init:function(){},mixIn:function(m){for(var w in m)m.hasOwnProperty(w)&&(this[w]=m[w]);m.hasOwnProperty("toString")&&(this.toString=m.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),c=u.WordArray=l.extend({init:function(m,w){m=this.words=m||[],w!=i?this.sigBytes=w:this.sigBytes=m.length*4;},toString:function(m){return (m||d).stringify(this)},concat:function(m){var w=this.words,E=m.words,A=this.sigBytes,M=m.sigBytes;if(this.clamp(),A%4)for(var R=0;R<M;R++){var fe=E[R>>>2]>>>24-R%4*8&255;w[A+R>>>2]|=fe<<24-(A+R)%4*8;}else for(var H=0;H<M;H+=4)w[A+H>>>2]=E[H>>>2];return this.sigBytes+=M,this},clamp:function(){var m=this.words,w=this.sigBytes;m[w>>>2]&=4294967295<<32-w%4*8,m.length=e.ceil(w/4);},clone:function(){var m=l.clone.call(this);return m.words=this.words.slice(0),m},random:function(m){for(var w=[],E=0;E<m;E+=4)w.push(t());return new c.init(w,m)}}),p=r.enc={},d=p.Hex={stringify:function(m){for(var w=m.words,E=m.sigBytes,A=[],M=0;M<E;M++){var R=w[M>>>2]>>>24-M%4*8&255;A.push((R>>>4).toString(16)),A.push((R&15).toString(16));}return A.join("")},parse:function(m){for(var w=m.length,E=[],A=0;A<w;A+=2)E[A>>>3]|=parseInt(m.substr(A,2),16)<<24-A%8*4;return new c.init(E,w/2)}},x=p.Latin1={stringify:function(m){for(var w=m.words,E=m.sigBytes,A=[],M=0;M<E;M++){var R=w[M>>>2]>>>24-M%4*8&255;A.push(String.fromCharCode(R));}return A.join("")},parse:function(m){for(var w=m.length,E=[],A=0;A<w;A++)E[A>>>2]|=(m.charCodeAt(A)&255)<<24-A%4*8;return new c.init(E,w)}},g=p.Utf8={stringify:function(m){try{return decodeURIComponent(escape(x.stringify(m)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(m){return x.parse(unescape(encodeURIComponent(m)))}},T=u.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new c.init,this._nDataBytes=0;},_append:function(m){typeof m=="string"&&(m=g.parse(m)),this._data.concat(m),this._nDataBytes+=m.sigBytes;},_process:function(m){var w,E=this._data,A=E.words,M=E.sigBytes,R=this.blockSize,fe=R*4,H=M/fe;m?H=e.ceil(H):H=e.max((H|0)-this._minBufferSize,0);var se=H*R,Be=e.min(se*4,M);if(se){for(var Si=0;Si<se;Si+=R)this._doProcessBlock(A,Si);w=A.splice(0,se),E.sigBytes-=Be;}return new c.init(w,Be)},clone:function(){var m=l.clone.call(this);return m._data=this._data.clone(),m},_minBufferSize:0});u.Hasher=T.extend({cfg:l.extend(),init:function(m){this.cfg=this.cfg.extend(m),this.reset();},reset:function(){T.reset.call(this),this._doReset();},update:function(m){return this._append(m),this._process(),this},finalize:function(m){m&&this._append(m);var w=this._doFinalize();return w},blockSize:512/32,_createHelper:function(m){return function(w,E){return new m.init(E).finalize(w)}},_createHmacHelper:function(m){return function(w,E){return new I.HMAC.init(m,E).finalize(w)}}});var I=r.algo={};return r})(Math);return a});});var Mi=ai((oi,Ji)=>{(function(a,e){typeof oi=="object"?Ji.exports=oi=e(Ki()):typeof define=="function"&&define.amd?define(["./core"],e):e(a.CryptoJS);})(oi,function(a){return (function(){var e=a,i=e.lib,n=i.WordArray,t=i.Hasher,o=e.algo,r=[],u=o.SHA1=t.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(l,c){for(var p=this._hash.words,d=p[0],x=p[1],g=p[2],T=p[3],k=p[4],I=0;I<80;I++){if(I<16)r[I]=l[c+I]|0;else {var m=r[I-3]^r[I-8]^r[I-14]^r[I-16];r[I]=m<<1|m>>>31;}var w=(d<<5|d>>>27)+k+r[I];I<20?w+=(x&g|~x&T)+1518500249:I<40?w+=(x^g^T)+1859775393:I<60?w+=(x&g|x&T|g&T)-1894007588:w+=(x^g^T)-899497514,k=T,T=g,g=x<<30|x>>>2,x=d,d=w;}p[0]=p[0]+d|0,p[1]=p[1]+x|0,p[2]=p[2]+g|0,p[3]=p[3]+T|0,p[4]=p[4]+k|0;},_doFinalize:function(){var l=this._data,c=l.words,p=this._nDataBytes*8,d=l.sigBytes*8;return c[d>>>5]|=128<<24-d%32,c[(d+64>>>9<<4)+14]=Math.floor(p/4294967296),c[(d+64>>>9<<4)+15]=p,l.sigBytes=c.length*4,this._process(),this._hash},clone:function(){var l=t.clone.call(this);return l._hash=this._hash.clone(),l}});e.SHA1=t._createHelper(u),e.HmacSHA1=t._createHmacHelper(u);})(),a.SHA1});});var va=ai((fs,sn)=>{sn.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/3gpp-ims+xml":{source:"iana",compressible:true},"application/3gpphal+json":{source:"iana",compressible:true},"application/3gpphalforms+json":{source:"iana",compressible:true},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/ace+json":{source:"iana",compressible:true},"application/ace-groupcomm+cbor":{source:"iana"},"application/ace-trl+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:true},"application/aif+cbor":{source:"iana"},"application/aif+json":{source:"iana",compressible:true},"application/alto-cdni+json":{source:"iana",compressible:true},"application/alto-cdnifilter+json":{source:"iana",compressible:true},"application/alto-costmap+json":{source:"iana",compressible:true},"application/alto-costmapfilter+json":{source:"iana",compressible:true},"application/alto-directory+json":{source:"iana",compressible:true},"application/alto-endpointcost+json":{source:"iana",compressible:true},"application/alto-endpointcostparams+json":{source:"iana",compressible:true},"application/alto-endpointprop+json":{source:"iana",compressible:true},"application/alto-endpointpropparams+json":{source:"iana",compressible:true},"application/alto-error+json":{source:"iana",compressible:true},"application/alto-networkmap+json":{source:"iana",compressible:true},"application/alto-networkmapfilter+json":{source:"iana",compressible:true},"application/alto-propmap+json":{source:"iana",compressible:true},"application/alto-propmapparams+json":{source:"iana",compressible:true},"application/alto-tips+json":{source:"iana",compressible:true},"application/alto-tipsparams+json":{source:"iana",compressible:true},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:true},"application/alto-updatestreamparams+json":{source:"iana",compressible:true},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/appinstaller":{compressible:false,extensions:["appinstaller"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/appx":{compressible:false,extensions:["appx"]},"application/appxbundle":{compressible:false,extensions:["appxbundle"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:true,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:true,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:true,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:true,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:true,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:true,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:true},"application/atsc-rsat+xml":{source:"iana",compressible:true,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:true},"application/automationml-aml+xml":{source:"iana",compressible:true,extensions:["aml"]},"application/automationml-amlx+zip":{source:"iana",compressible:false,extensions:["amlx"]},"application/bacnet-xdd+zip":{source:"iana",compressible:false},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:false,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/bufr":{source:"iana"},"application/c2pa":{source:"iana"},"application/calendar+json":{source:"iana",compressible:true},"application/calendar+xml":{source:"iana",compressible:true,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:true},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:true},"application/ccxml+xml":{source:"iana",compressible:true,extensions:["ccxml"]},"application/cda+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/cdfx+xml":{source:"iana",compressible:true,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/ce+cbor":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:true},"application/cellml+xml":{source:"iana",compressible:true},"application/cfw":{source:"iana"},"application/cid-edhoc+cbor-seq":{source:"iana"},"application/city+json":{source:"iana",compressible:true},"application/city+json-seq":{source:"iana"},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:true},"application/clue_info+xml":{source:"iana",compressible:true},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:true},"application/coap-eap":{source:"iana"},"application/coap-group+json":{source:"iana",compressible:true},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/concise-problem-details+cbor":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:true},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cose-x509":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:true,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:true},"application/cstadata+xml":{source:"iana",compressible:true},"application/csvm+json":{source:"iana",compressible:true},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwl":{source:"iana",extensions:["cwl"]},"application/cwl+json":{source:"iana",compressible:true},"application/cwl+yaml":{source:"iana"},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:true},"application/dash+xml":{source:"iana",compressible:true,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:true,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:true,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:true},"application/dicom":{source:"iana",extensions:["dcm"]},"application/dicom+json":{source:"iana",compressible:true},"application/dicom+xml":{source:"iana",compressible:true},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:true},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:true,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dpop+jwt":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:true},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:true,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/eat+cwt":{source:"iana"},"application/eat+jwt":{source:"iana"},"application/eat-bun+cbor":{source:"iana"},"application/eat-bun+json":{source:"iana",compressible:true},"application/eat-ucs+cbor":{source:"iana"},"application/eat-ucs+json":{source:"iana",compressible:true},"application/ecmascript":{source:"apache",compressible:true,extensions:["ecma"]},"application/edhoc+cbor-seq":{source:"iana"},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:false},"application/edifact":{source:"iana",compressible:false},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:true},"application/elm+xml":{source:"iana",compressible:true},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/emergencycalldata.comment+xml":{source:"iana",compressible:true},"application/emergencycalldata.control+xml":{source:"iana",compressible:true},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.legacyesn+json":{source:"iana",compressible:true},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.veds+xml":{source:"iana",compressible:true},"application/emma+xml":{source:"iana",compressible:true,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:true,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/entity-statement+jwt":{source:"iana"},"application/epp+xml":{source:"iana",compressible:true},"application/epub+zip":{source:"iana",compressible:false,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:true},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdf":{source:"iana",extensions:["fdf"]},"application/fdt+xml":{source:"iana",compressible:true,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:true},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/fido.trusted-apps+json":{compressible:true},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:false},"application/framework-attributes+xml":{source:"iana",compressible:true},"application/geo+json":{source:"iana",compressible:true,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geopose+json":{source:"iana",compressible:true},"application/geoxacml+json":{source:"iana",compressible:true},"application/geoxacml+xml":{source:"iana",compressible:true},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:true,extensions:["gml"]},"application/gnap-binding-jws":{source:"iana"},"application/gnap-binding-jwsd":{source:"iana"},"application/gnap-binding-rotation-jws":{source:"iana"},"application/gnap-binding-rotation-jwsd":{source:"iana"},"application/gpx+xml":{source:"apache",compressible:true,extensions:["gpx"]},"application/grib":{source:"iana"},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:false,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:true},"application/hjson":{extensions:["hjson"]},"application/hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:true},"application/ibe-pkg-reply+xml":{source:"iana",compressible:true},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:true,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:true,extensions:["its"]},"application/java-archive":{source:"iana",compressible:false,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:false,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:false,extensions:["class"]},"application/javascript":{source:"apache",charset:"UTF-8",compressible:true,extensions:["js"]},"application/jf2feed+json":{source:"iana",compressible:true},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:true},"application/jrd+json":{source:"iana",compressible:true},"application/jscalendar+json":{source:"iana",compressible:true},"application/jscontact+json":{source:"iana",compressible:true},"application/json":{source:"iana",charset:"UTF-8",compressible:true,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:true},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:true,extensions:["jsonml"]},"application/jsonpath":{source:"iana"},"application/jwk+json":{source:"iana",compressible:true},"application/jwk-set+json":{source:"iana",compressible:true},"application/jwk-set+jwt":{source:"iana"},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:true},"application/kpml-response+xml":{source:"iana",compressible:true},"application/ld+json":{source:"iana",compressible:true,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:true,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/linkset":{source:"iana"},"application/linkset+json":{source:"iana",compressible:true},"application/load-control+xml":{source:"iana",compressible:true},"application/logout+jwt":{source:"iana"},"application/lost+xml":{source:"iana",compressible:true,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:true},"application/lpf+zip":{source:"iana",compressible:false},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:true,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:true,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:true,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:true,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:true},"application/mathml-presentation+xml":{source:"iana",compressible:true},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:true},"application/mbms-deregister+xml":{source:"iana",compressible:true},"application/mbms-envelope+xml":{source:"iana",compressible:true},"application/mbms-msk+xml":{source:"iana",compressible:true},"application/mbms-msk-response+xml":{source:"iana",compressible:true},"application/mbms-protection-description+xml":{source:"iana",compressible:true},"application/mbms-reception-report+xml":{source:"iana",compressible:true},"application/mbms-register+xml":{source:"iana",compressible:true},"application/mbms-register-response+xml":{source:"iana",compressible:true},"application/mbms-schedule+xml":{source:"iana",compressible:true},"application/mbms-user-service-description+xml":{source:"iana",compressible:true},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:true,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:true},"application/mediaservercontrol+xml":{source:"iana",compressible:true,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:true},"application/metalink+xml":{source:"apache",compressible:true,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:true,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:true,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:true,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:true,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:true,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4","mpg4","mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:true},"application/mrb-publish+xml":{source:"iana",compressible:true},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/msix":{compressible:false,extensions:["msix"]},"application/msixbundle":{compressible:false,extensions:["msixbundle"]},"application/msword":{source:"iana",compressible:false,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:true},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:true},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:true,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:true},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:true,extensions:["opf"]},"application/ogg":{source:"iana",compressible:false,extensions:["ogx"]},"application/ohttp-keys":{source:"iana"},"application/omdoc+xml":{source:"apache",compressible:true,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg","one","onea"]},"application/opc-nodeset+xml":{source:"iana",compressible:true},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:false},"application/p2p-overlay+xml":{source:"iana",compressible:true,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:true,extensions:["xer"]},"application/pdf":{source:"iana",compressible:false,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:false,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["sig","asc"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:true,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/postscript":{source:"iana",compressible:true,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:true},"application/private-token-issuer-directory":{source:"iana"},"application/private-token-request":{source:"iana"},"application/private-token-response":{source:"iana"},"application/problem+json":{source:"iana",compressible:true},"application/problem+xml":{source:"iana",compressible:true},"application/provenance+xml":{source:"iana",compressible:true,extensions:["provx"]},"application/provided-claims+jwt":{source:"iana"},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:false},"application/prs.implied-document+xml":{source:"iana",compressible:true},"application/prs.implied-executable":{source:"iana"},"application/prs.implied-object+json":{source:"iana",compressible:true},"application/prs.implied-object+json-seq":{source:"iana"},"application/prs.implied-object+yaml":{source:"iana"},"application/prs.implied-structure":{source:"iana"},"application/prs.mayfile":{source:"iana"},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.vcfbzip2":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:true,extensions:["xsf"]},"application/pskc+xml":{source:"iana",compressible:true,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:true},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:true,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:true},"application/rdf+xml":{source:"iana",compressible:true,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:true,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"apache"},"application/reputon+json":{source:"iana",compressible:true},"application/resolve-response+jwt":{source:"iana"},"application/resource-lists+xml":{source:"iana",compressible:true,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:true,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:true},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:true},"application/rls-services+xml":{source:"iana",compressible:true,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:true,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:true,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:true,extensions:["rusd"]},"application/rpki-checklist":{source:"iana"},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-signed-tal":{source:"iana"},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:true,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:true,extensions:["rss"]},"application/rtf":{source:"iana",compressible:true,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:true},"application/samlmetadata+xml":{source:"iana",compressible:true},"application/sarif+json":{source:"iana",compressible:true},"application/sarif-external-properties+json":{source:"iana",compressible:true},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:true,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:true},"application/scim+json":{source:"iana",compressible:true},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:true},"application/senml+xml":{source:"iana",compressible:true,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:true},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:true},"application/sensml+xml":{source:"iana",compressible:true,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:true},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:true,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:true},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"apache"},"application/smil+xml":{source:"iana",compressible:true,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:true},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:true,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:true},"application/spirits-event+xml":{source:"iana",compressible:true},"application/sql":{source:"iana",extensions:["sql"]},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:true,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:true,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:true,extensions:["ssdl"]},"application/sslkeylogfile":{source:"iana"},"application/ssml+xml":{source:"iana",compressible:true,extensions:["ssml"]},"application/st2110-41":{source:"iana"},"application/stix+json":{source:"iana",compressible:true},"application/stratum":{source:"iana"},"application/swid+cbor":{source:"iana"},"application/swid+xml":{source:"iana",compressible:true,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:true},"application/taxii+json":{source:"iana",compressible:true},"application/td+json":{source:"iana",compressible:true},"application/tei+xml":{source:"iana",compressible:true,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:true,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:true},"application/tm+json":{source:"iana",compressible:true},"application/tnauthlist":{source:"iana"},"application/toc+cbor":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{source:"iana",compressible:true,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/trust-chain+json":{source:"iana",compressible:true},"application/trust-mark+jwt":{source:"iana"},"application/trust-mark-delegation+jwt":{source:"iana"},"application/ttml+xml":{source:"iana",compressible:true,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:false,extensions:["ubj"]},"application/uccs+cbor":{source:"iana"},"application/ujcs+json":{source:"iana",compressible:true},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:true},"application/urc-ressheet+xml":{source:"iana",compressible:true,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:true,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:true},"application/vc":{source:"iana"},"application/vc+cose":{source:"iana"},"application/vc+jwt":{source:"iana"},"application/vcard+json":{source:"iana",compressible:true},"application/vcard+xml":{source:"iana",compressible:true},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:true,extensions:["1km"]},"application/vnd.1ob":{source:"iana"},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3a+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3ach+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc8+xml":{source:"iana",compressible:true},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.5gsa2x":{source:"iana"},"application/vnd.3gpp.5gsa2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gsv2x":{source:"iana"},"application/vnd.3gpp.5gsv2x-local-service-information":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:true},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:true},"application/vnd.3gpp.crs+xml":{source:"iana",compressible:true},"application/vnd.3gpp.current-location-discovery+xml":{source:"iana",compressible:true},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:true},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-regroup+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-regroup+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-regroup+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:true},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.pinapp-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.seal-group-doc+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-network-qos-management-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-ue-config-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-unicast-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-user-profile-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:true},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:true},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:true},"application/vnd.3gpp.v2x":{source:"iana"},"application/vnd.3gpp.vae-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:true},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acm.addressxfer+json":{source:"iana",compressible:true},"application/vnd.acm.chatbot+json":{source:"iana",compressible:true},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:false,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:true,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"apache",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"apache"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:true},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:true},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:false,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.parquet":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.apexlang":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:true},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:true},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:true},"application/vnd.apple.installer+xml":{source:"iana",compressible:true,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:false,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"apache"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:true},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autodesk.fbx":{extensions:["fbx"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:true},"application/vnd.avistar+xml":{source:"iana",compressible:true},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:true,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:true},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:true},"application/vnd.belightsoft.lhzd+zip":{source:"iana",compressible:false},"application/vnd.belightsoft.lhzl+zip":{source:"iana",compressible:false},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:true},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:true},"application/vnd.bzip3":{source:"iana"},"application/vnd.c3voc.schedule+xml":{source:"iana",compressible:true},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:true},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:true,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:true,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.cncf.helm.chart.content.v1.tar+gzip":{source:"iana"},"application/vnd.cncf.helm.chart.provenance.v1.prov":{source:"iana"},"application/vnd.cncf.helm.config.v1+json":{source:"iana",compressible:true},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:true},"application/vnd.collection.doc+json":{source:"iana",compressible:true},"application/vnd.collection.next+json":{source:"iana",compressible:true},"application/vnd.comicbook+zip":{source:"iana",compressible:false},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:true},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:true,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:true},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:true},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:true},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:true},"application/vnd.cyclonedx+xml":{source:"iana",compressible:true},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:false},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:true,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datalog":{source:"iana"},"application/vnd.datapackage+json":{source:"iana",compressible:true},"application/vnd.dataresource+json":{source:"iana",compressible:true},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.dcmp+xml":{source:"iana",compressible:true,extensions:["dcmp"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:true,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:true},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:true},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:true},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:true},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:true},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:true},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.eln+zip":{source:"iana",compressible:false},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:true},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:true},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.erofs":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:false},"application/vnd.eszigno3+xml":{source:"iana",compressible:true,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:true},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:false},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:false},"application/vnd.etsi.cug+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:true},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:true},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:true},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:true},"application/vnd.etsi.sci+xml":{source:"iana",compressible:true},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:true},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:true},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:true},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:false},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:false},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"apache",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.fdsn.stationxml+xml":{source:"iana",charset:"XML-BASED",compressible:true},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:false},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.freelog.comic":{source:"iana"},"application/vnd.frogans.fnc":{source:"apache",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"apache",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:true},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:true},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.ga4gh.passport+jwt":{source:"iana"},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.genozip":{source:"iana"},"application/vnd.gentics.grd+json":{source:"iana",compressible:true},"application/vnd.gentoo.catmetadata+xml":{source:"iana",compressible:true},"application/vnd.gentoo.ebuild":{source:"iana"},"application/vnd.gentoo.eclass":{source:"iana"},"application/vnd.gentoo.gpkg":{source:"iana"},"application/vnd.gentoo.manifest":{source:"iana"},"application/vnd.gentoo.pkgmetadata+xml":{source:"iana",compressible:true},"application/vnd.gentoo.xpak":{source:"iana"},"application/vnd.geo+json":{source:"apache",compressible:true},"application/vnd.geocube+xml":{source:"apache",compressible:true},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.pinboard":{source:"iana"},"application/vnd.geogebra.slides":{source:"iana",extensions:["ggs"]},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.gnu.taler.exchange+json":{source:"iana",compressible:true},"application/vnd.gnu.taler.merchant+json":{source:"iana",compressible:true},"application/vnd.google-apps.audio":{},"application/vnd.google-apps.document":{compressible:false,extensions:["gdoc"]},"application/vnd.google-apps.drawing":{compressible:false,extensions:["gdraw"]},"application/vnd.google-apps.drive-sdk":{compressible:false},"application/vnd.google-apps.file":{},"application/vnd.google-apps.folder":{compressible:false},"application/vnd.google-apps.form":{compressible:false,extensions:["gform"]},"application/vnd.google-apps.fusiontable":{},"application/vnd.google-apps.jam":{compressible:false,extensions:["gjam"]},"application/vnd.google-apps.mail-layout":{},"application/vnd.google-apps.map":{compressible:false,extensions:["gmap"]},"application/vnd.google-apps.photo":{},"application/vnd.google-apps.presentation":{compressible:false,extensions:["gslides"]},"application/vnd.google-apps.script":{compressible:false,extensions:["gscript"]},"application/vnd.google-apps.shortcut":{},"application/vnd.google-apps.site":{compressible:false,extensions:["gsite"]},"application/vnd.google-apps.spreadsheet":{compressible:false,extensions:["gsheet"]},"application/vnd.google-apps.unknown":{},"application/vnd.google-apps.video":{},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:true,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:false,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"apache",compressible:true},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:false},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:true,extensions:["xdcf"]},"application/vnd.gpxsee.map+xml":{source:"iana",compressible:true},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:true},"application/vnd.hal+xml":{source:"iana",compressible:true,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:true,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:true},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:true},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.hsl":{source:"iana"},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:true},"application/vnd.hyper-item+json":{source:"iana",compressible:true},"application/vnd.hyperdrive+json":{source:"iana",compressible:true},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"apache"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"apache",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:false},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:false},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:true},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:true},"application/vnd.informix-visionary":{source:"apache"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:true},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.ipfs.ipns-record":{source:"iana"},"application/vnd.ipld.car":{source:"iana"},"application/vnd.ipld.dag-cbor":{source:"iana"},"application/vnd.ipld.dag-json":{source:"iana"},"application/vnd.ipld.raw":{source:"iana"},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:true},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:true,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:false},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kdl":{source:"iana"},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.keyman.kmp+zip":{source:"iana",compressible:false},"application/vnd.keyman.kmx":{source:"iana"},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:true},"application/vnd.las.las+xml":{source:"iana",compressible:true,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.ldev.productlicensing":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:true},"application/vnd.liberty-request+xml":{source:"iana",compressible:true},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:true,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:false},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:true},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:false},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.mdl":{source:"iana"},"application/vnd.mdl-mbsdf":{source:"iana"},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.medicalholodeck.recordxr":{source:"iana"},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mermaid":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:true},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:true},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.modl":{source:"iana"},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:true,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:false,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:true,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:true},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:true},"application/vnd.ms-outlook":{compressible:false,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:true},"application/vnd.ms-powerpoint":{source:"iana",compressible:false,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:true},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:true},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:true},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-visio.viewer":{extensions:["vdx"]},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:false,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msgpack":{source:"iana"},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:true},"application/vnd.nato.bindingdataobject+cbor":{source:"iana"},"application/vnd.nato.bindingdataobject+json":{source:"iana",compressible:true},"application/vnd.nato.bindingdataobject+xml":{source:"iana",compressible:true,extensions:["bdo"]},"application/vnd.nato.openxmlformats-package.iepd+zip":{source:"iana",compressible:false},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:true},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:true},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:true},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:true},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:true},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:true,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"apache",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:true},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oai.workflows":{source:"iana"},"application/vnd.oai.workflows+json":{source:"iana",compressible:true},"application/vnd.oai.workflows+yaml":{source:"iana"},"application/vnd.oasis.opendocument.base":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"apache",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:false,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:false,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:false,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:false,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-master-template":{source:"iana"},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:true},"application/vnd.oftn.l10n+json":{source:"iana",compressible:true},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:true},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:true},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:true},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:true},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:true},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:true},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:true},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:true},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:true},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.drm-trigger+xml":{source:"apache",compressible:true},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"apache",compressible:true},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:true},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:true,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:true},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:true},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:true},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:true},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:true},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:true},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.onvif.metadata":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:true,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:true,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openvpi.dspx+json":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:false,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:false,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:false,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:true},"application/vnd.oracle.resource+json":{source:"iana",compressible:true},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:true},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:true},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:true},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.procrate.brushset":{extensions:["brushset"]},"application/vnd.procreate.brush":{extensions:["brush"]},"application/vnd.procreate.dream":{extensions:["drm"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.pt.mundusmundi":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:true,extensions:["xhtm"]},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:true},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:true,extensions:["musicxml"]},"application/vnd.relpipe":{source:"iana"},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:true},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:true,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:true},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:true},"application/vnd.shopkick+json":{source:"iana",compressible:true},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:true},"application/vnd.sketchometry":{source:"iana"},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.smintio.portals.archive":{source:"iana"},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:true,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:true,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:true,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sybyl.mol2":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:true},"application/vnd.syft+json":{source:"iana",compressible:true},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:true},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:true},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:true},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uic.osdm+json":{source:"iana",compressible:true},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:true,extensions:["uoml","uo"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:true},"application/vnd.veraison.tsm-report+cbor":{source:"iana"},"application/vnd.veraison.tsm-report+json":{source:"iana",compressible:true},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:true},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw","vsdx","vtx"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vocalshaper.vsp4":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.wasmflow.wafl":{source:"iana"},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordlift":{source:"iana"},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:true},"application/vnd.wv.ssp+xml":{source:"iana",compressible:true},"application/vnd.xacml+json":{source:"iana",compressible:true},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xarin.cpj":{source:"iana"},"application/vnd.xecrets-encrypted":{source:"iana"},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:true},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:true,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:true,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:true,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:true},"application/voucher-jws+json":{source:"iana",compressible:true},"application/vp":{source:"iana"},"application/vp+cose":{source:"iana"},"application/vp+jwt":{source:"iana"},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:true,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:true,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:true},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:true,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:true,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:false,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:false,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:false,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blender":{extensions:["blend"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:false,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:false,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-compressed":{extensions:["rar"]},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:false},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:true,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:true,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:true,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:false,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:true,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-ipynb+json":{compressible:true,extensions:["ipynb"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:false,extensions:["jnlp"]},"application/x-javascript":{compressible:true},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:false,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:false},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:true,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:false,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:false,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:true,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:false,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:false,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:true,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:true,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:true,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:true,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:true,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:false,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:true,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:true,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:true,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:true,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:true},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:true,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:false,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zip-compressed":{extensions:["zip"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:true},"application/xaml+xml":{source:"apache",compressible:true,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:true,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:true,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:true,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:true,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:true},"application/xcap-ns+xml":{source:"iana",compressible:true,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:true},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:true},"application/xenc+xml":{source:"iana",compressible:true,extensions:["xenc"]},"application/xfdf":{source:"iana",extensions:["xfdf"]},"application/xhtml+xml":{source:"iana",compressible:true,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:true},"application/xliff+xml":{source:"iana",compressible:true,extensions:["xlf"]},"application/xml":{source:"iana",compressible:true,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:true,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:true},"application/xmpp+xml":{source:"iana",compressible:true},"application/xop+xml":{source:"iana",compressible:true,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:true,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:true,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:true,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:true,extensions:["mxml","xhvml","xvml","xvm"]},"application/yaml":{source:"iana"},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+cbor":{source:"iana"},"application/yang-data+json":{source:"iana",compressible:true},"application/yang-data+xml":{source:"iana",compressible:true},"application/yang-patch+json":{source:"iana",compressible:true},"application/yang-patch+xml":{source:"iana",compressible:true},"application/yang-sid+json":{source:"iana",compressible:true},"application/yin+xml":{source:"iana",compressible:true,extensions:["yin"]},"application/zip":{source:"iana",compressible:false,extensions:["zip"]},"application/zip+dotlottie":{extensions:["lottie"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:false,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana",extensions:["adts","aac"]},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:false,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flac":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:false},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/matroska":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/midi-clip":{source:"iana"},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:false,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:false,extensions:["m4a","mp4a","m4b"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:false,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:false,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"apache"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:false},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:false},"audio/vorbis":{source:"iana",compressible:false},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:false,extensions:["wav"]},"audio/wave":{compressible:false,extensions:["wav"]},"audio/webm":{source:"apache",compressible:false,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:false,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:false,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:true,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:true,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{source:"iana",compressible:false,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:false,extensions:["avif"]},"image/bmp":{source:"iana",compressible:true,extensions:["bmp","dib"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/dpx":{source:"iana",extensions:["dpx"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:false,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/j2c":{source:"iana"},"image/jaii":{source:"iana",extensions:["jaii"]},"image/jais":{source:"iana",extensions:["jais"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:false,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:false,extensions:["jpg","jpeg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:false,extensions:["jpm","jpgm"]},"image/jpx":{source:"iana",compressible:false,extensions:["jpx","jpf"]},"image/jxl":{source:"iana",extensions:["jxl"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:false,extensions:["jfif"]},"image/png":{source:"iana",compressible:false,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif","btf"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:true,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:false,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:true,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.clip":{source:"iana"},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:true,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:true,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"iana",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-adobe-dng":{extensions:["dng"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-emf":{source:"iana"},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:true,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:true,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-wmf":{source:"iana"},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:false},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/bhttp":{source:"iana"},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:false},"message/imdn+xml":{source:"iana",compressible:true},"message/mls":{source:"iana"},"message/news":{source:"apache"},"message/ohttp-req":{source:"iana"},"message/ohttp-res":{source:"iana"},"message/partial":{source:"iana",compressible:false},"message/rfc822":{source:"iana",compressible:true,extensions:["eml","mime","mht","mhtml"]},"message/s-http":{source:"apache"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"apache"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:true,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:true,extensions:["glb"]},"model/iges":{source:"iana",compressible:false,extensions:["igs","iges"]},"model/jt":{source:"iana",extensions:["jt"]},"model/mesh":{source:"iana",compressible:false,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/prc":{source:"iana",extensions:["prc"]},"model/step":{source:"iana",extensions:["step","stp","stpnc","p21","210"]},"model/step+xml":{source:"iana",compressible:true,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:false,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:false,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/u3d":{source:"iana",extensions:["u3d"]},"model/vnd.bary":{source:"iana",extensions:["bary"]},"model/vnd.cld":{source:"iana",extensions:["cld"]},"model/vnd.collada+xml":{source:"iana",compressible:true,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:true},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana",extensions:["pyo","pyox"]},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usda":{source:"iana",extensions:["usda"]},"model/vnd.usdz+zip":{source:"iana",compressible:false,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:false,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:false,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:false,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:true,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:false},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:false},"multipart/form-data":{source:"iana",compressible:false},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:false},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:false},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:true,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:true},"text/cmd":{compressible:true},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:true,extensions:["css"]},"text/csv":{source:"iana",compressible:true,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"apache"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/hl7v2":{source:"iana"},"text/html":{source:"iana",compressible:true,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",charset:"UTF-8",compressible:true,extensions:["js","mjs"]},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:true,extensions:["jsx"]},"text/less":{compressible:true,extensions:["less"]},"text/markdown":{source:"iana",compressible:true,extensions:["md","markdown"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:true,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:true,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:true,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/prs.texi":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:true,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:true,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:true,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:true,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:true,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.exchangeable":{source:"iana"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"apache"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.vcf":{source:"iana"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vnd.zoo.kcl":{source:"iana"},"text/vtt":{source:"iana",charset:"UTF-8",compressible:true,extensions:["vtt"]},"text/wgsl":{source:"iana",extensions:["wgsl"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:true},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:true},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:true,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:true,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:true,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:true,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:true,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:true,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/evc":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/h266":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/lottie+json":{source:"iana",compressible:true},"video/matroska":{source:"iana"},"video/matroska-3d":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts","m2t","m2ts","mts"]},"video/mp4":{source:"iana",compressible:false,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:false,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:false,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:false,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.planar":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"apache"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:false,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:false,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:false,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:false,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:true},"x-shader/x-vertex":{compressible:true}};});var ba=ai((hs,ga)=>{ga.exports=va();});var $e="repeat";var oe="__game_layer__",Re="Container",ti="ImageContainer",Ai="Image",De="Sprite",qe="Text",Ei="Video";var P;(t=>(t.log=(o,...r)=>console.log(`[Pixi\u2019VN] ${o}`,...r),t.warn=(o,...r)=>console.warn(`[Pixi\u2019VN] ${o}`,...r),t.error=(o,...r)=>console.error(`[Pixi\u2019VN] ${o}`,...r),t.info=(o,...r)=>console.info(`[Pixi\u2019VN] ${o}`,...r)))(P||(P={}));function ee(a){try{if(typeof a>"u")return a;let e=JSON.stringify(a);return JSON.parse(e)}catch(e){throw P.error("Error creating exportable element",a,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}var aa=Ci(Mi());function Zi(a,e){let i=0;return async(...n)=>{let t=Date.now();if(t-i>=e)return i=t,await a(...n)}}var La={extension:{type:"sceneProperties",name:"additional-positions"},testNode(a){return "xAlign"in a||"yAlign"in a||"percentageX"in a||"percentageY"in a||"positionType"in a},testProp(a){switch(a){case "xAlign":case "yAlign":case "percentageX":case "percentageY":case "positionType":return true;default:return false}},setProperty(a,e,i){switch(e){case "xAlign":"xAlign"in a&&(a.xAlign=i/100);break;case "yAlign":"yAlign"in a&&(a.yAlign=i/100);break;case "percentageX":"percentageX"in a&&(a.percentageX=i/100);break;case "percentageY":"percentageY"in a&&(a.percentageY=i/100);break}},getProperties(a){return [{value:a.positionType,prop:"positionType",entry:{section:"Transform",type:"text",label:"Position Type"}},{value:a.xAlign*100,prop:"xAlign",entry:{section:"Transform",type:"range",label:"X Align",tooltip:"0% is left, 100% is right",options:{min:0,max:100}}},{value:a.yAlign*100,prop:"yAlign",entry:{section:"Transform",type:"range",label:"Y Align",tooltip:"0% is top, 100% is bottom",options:{min:0,max:100}}},{value:a.percentageX*100,prop:"percentageX",entry:{section:"Transform",type:"range",label:"X Percentage Position",tooltip:"0% is left, 100% is right",options:{min:0,max:100}}},{value:a.percentageY*100,prop:"percentageY",entry:{section:"Transform",type:"range",label:"Y Percentage Position",tooltip:"0% is top, 100% is bottom",options:{min:0,max:100}}}]}},Qi=La;var C=class C{constructor(){}static get app(){if(!C._app)throw P.error("The canvas is not initialized"),new core.PixiError("invalid_usage","CanvasManagerStatic.app is undefined");return C._app}static get gameLayer(){let e=this.app.stage.getChildByLabel(oe);return e||(e=new Ce__default.default.Container,e.label=oe,this.app.stage.addChild(e)),e}static async init(e,i,n){let{id:t="pixi-vn-canvas",width:o=800,height:r=600,resolution:u=1,autoDensity:l=true,resizeMode:c="contain",...p}=i||{};return C.canvasWidth=o,C.canvasHeight=r,C._app=new Ce__default.default.Application,C.app.init({width:o,height:r,resolution:u,autoDensity:l,...p}).then(()=>{let{app:d=C.app,extensions:x=[],...g}=n||{};if(devtools.initDevtools({app:d,extensions:[Qi,...x],...g}),C._isInitialized=true,C.addCanvasIntoHTMLElement(e,t),c==="contain"){let T=Zi(()=>C.resize(),10);new ResizeObserver(T).observe(e),C.resize();}C.gameLayer;})}static addCanvasIntoHTMLElement(e,i){C._isInitialized?(e.appendChild(C.app.canvas),C.app.canvas.id=i):P.error("GameWindowManager is not initialized");}static addHtmlLayer(e,i,n={position:"absolute",pointerEvents:"none"}){let t=document.createElement("div");t.setAttribute("id",e),t.style.position=n.position,t.style.pointerEvents=n.pointerEvents;let o=i.appendChild(t);return C.htmlLayers.push(t),C.resize(),o}static removeHtmlLayer(e){let i=C.htmlLayers.find(n=>n.id===e);i&&(i.remove(),C.htmlLayers=C.htmlLayers.filter(n=>n.id!==e));}static getHtmlLayer(e){return C.htmlLayers.find(i=>i.id===e)}static async resize(){let e=C.canvasWidth,i=C.canvasHeight,n=C.app.resizeTo,t=C.app.canvas.style;n instanceof HTMLElement||(n=document.documentElement);let o,r;if(n===document.body||n===document.documentElement)o=document.documentElement.clientWidth||window.innerWidth,r=document.documentElement.clientHeight||window.innerHeight;else {let g=n.getBoundingClientRect();o=g.width||n.clientWidth,r=g.height||n.clientHeight;}let u=Math.min(o/e,r/i),l=Math.floor(u*e),c=Math.floor(u*i);t.width=`${l}px`,t.height=`${c}px`;let p=(o-l)/2,d=(r-c)/2;t.marginLeft=`${p}px`,t.marginRight=`${p}px`,t.marginTop=`${d}px`,t.marginBottom=`${d}px`;let x=C.htmlLayers.map(g=>{g.style.width=`${l}px`,g.style.height=`${c}px`,g.style.marginLeft=`${p}px`,g.style.marginRight=`${p}px`,g.style.marginTop=`${d}px`,g.style.marginBottom=`${d}px`;});await Promise.all(x);}static get childrenAliasesOrder(){return C.gameLayer.children.filter(e=>e.label).sort((e,i)=>C.gameLayer.getChildIndex(e)-C.gameLayer.getChildIndex(i)).map(e=>e.label)}static get currentTickersWithoutCreatedBySteps(){return Object.fromEntries(Object.entries(C._currentTickers).filter(([e,i])=>!i.createdByTicketSteps).map(([e,i])=>[e,{id:i.ticker.alias,args:i.ticker.args,canvasElementAliases:i.ticker.canvasElementAliases,priority:i.ticker.priority,duration:i.ticker.duration,paused:i.ticker.paused}]))}static generateTickerId(...e){try{return (0,aa.default)(JSON.stringify(e)).toString()+"_"+Math.random().toString(36).substring(7)}catch(i){throw new core.PixiError("not_json_serializable",`Error to generate ticker id: ${i}`)}}static addTickerTimeoutInfo(e,i,n,t){typeof e=="string"&&(e=[e]),C._currentTickersTimeouts[n]={aliases:e,ticker:i,canBeDeletedBeforeEnd:t};}static removeTickerTimeoutInfo(e){typeof e!="string"&&(e=e.toString()),C._currentTickersTimeouts[e]&&delete C._currentTickersTimeouts[e];}static removeTickerTimeout(e){typeof e!="string"&&(e=e.toString()),clearTimeout(Number(e)),C.removeTickerTimeoutInfo(e);}static removeTickerTimeoutsByAlias(e,i){Object.entries(C._currentTickersTimeouts).forEach(([n,t])=>{let o=t.aliases.filter(r=>r!==e);if(o.length===0){let r=t.canBeDeletedBeforeEnd;(!i||r)&&C.removeTickerTimeout(n);}else C._currentTickersTimeouts[n].aliases=o;});}};b(C,"_app"),b(C,"htmlLayers",[]),b(C,"canvasWidth",300),b(C,"canvasHeight",300),b(C,"_isInitialized",false),b(C,"_currentTickers",{}),b(C,"_currentTickersSequence",{}),b(C,"_currentTickersTimeouts",{}),b(C,"_tickersToCompleteOnStepEnd",{tikersIds:[],stepAlias:[]}),b(C,"_tickersOnPause",{});var f=C;var Wa=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,oa=new Set,Oi=typeof process=="object"&&process?process:{},ra=(a,e,i,n)=>{typeof Oi.emitWarning=="function"?Oi.emitWarning(a,e,i,n):console.error(`[${i}] ${e}: ${a}`);},li=globalThis.AbortController,na=globalThis.AbortSignal;if(typeof li>"u"){na=class{constructor(){b(this,"onabort");b(this,"_onabort",[]);b(this,"reason");b(this,"aborted",false);}addEventListener(i,n){this._onabort.push(n);}},li=class{constructor(){b(this,"signal",new na);e();}abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let n of this.signal._onabort)n(i);this.signal.onabort?.(i);}}};let a=Oi.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{a&&(a=false,ra("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var Ha=a=>!oa.has(a);var be=a=>a&&a===Math.floor(a)&&a>0&&isFinite(a),ca=a=>be(a)?a<=Math.pow(2,8)?Uint8Array:a<=Math.pow(2,16)?Uint16Array:a<=Math.pow(2,32)?Uint32Array:a<=Number.MAX_SAFE_INTEGER?ri:null:null,ri=class extends Array{constructor(a){super(a),this.fill(0);}},he,Le,Ua=(he=class{constructor(e,i){b(this,"heap");b(this,"length");if(!s(he,Le))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e),this.length=0;}static create(e){let i=ca(e);if(!i)return [];_(he,Le,true);let n=new he(e,i);return _(he,Le,false),n}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},Le=new WeakMap,O(he,Le,false),he),ta,sa,ie,X,re,Pe,ce,Fe,We,pe,L,le,q,B,j,G,K,N,F,ue,W,de,me,J,Z,xe,Te,Y,He,y,zi,Se,ge,Ke,Q,la,Ie,Ue,Je,ye,we,Bi,ci,pi,z,Ri,Xe,ke,Di,Ve,pa=(Ve=class{constructor(e){O(this,y);O(this,ie);O(this,X);O(this,re);O(this,Pe);O(this,ce);O(this,Fe);O(this,We);O(this,pe);b(this,"ttl");b(this,"ttlResolution");b(this,"ttlAutopurge");b(this,"updateAgeOnGet");b(this,"updateAgeOnHas");b(this,"allowStale");b(this,"noDisposeOnSet");b(this,"noUpdateTTL");b(this,"maxEntrySize");b(this,"sizeCalculation");b(this,"noDeleteOnFetchRejection");b(this,"noDeleteOnStaleGet");b(this,"allowStaleOnFetchAbort");b(this,"allowStaleOnFetchRejection");b(this,"ignoreFetchAbort");O(this,L);O(this,le);O(this,q);O(this,B);O(this,j);O(this,G);O(this,K);O(this,N);O(this,F);O(this,ue);O(this,W);O(this,de);O(this,me);O(this,J);O(this,Z);O(this,xe);O(this,Te);O(this,Y);O(this,He);O(this,Se,()=>{});O(this,ge,()=>{});O(this,Ke,()=>{});O(this,Q,()=>false);O(this,Ie,e=>{});O(this,Ue,(e,i,n)=>{});O(this,Je,(e,i,n,t)=>{if(n||t)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});b(this,ta,"LRUCache");let{max:i=0,ttl:n,ttlResolution:t=1,ttlAutopurge:o,updateAgeOnGet:r,updateAgeOnHas:u,allowStale:l,dispose:c,onInsert:p,disposeAfter:d,noDisposeOnSet:x,noUpdateTTL:g,maxSize:T=0,maxEntrySize:k=0,sizeCalculation:I,fetchMethod:m,memoMethod:w,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:A,allowStaleOnFetchRejection:M,allowStaleOnFetchAbort:R,ignoreFetchAbort:fe,perf:H}=e;if(H!==void 0&&typeof H?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(_(this,pe,H??Wa),i!==0&&!be(i))throw new TypeError("max option must be a nonnegative integer");let se=i?ca(i):Array;if(!se)throw new Error("invalid max value: "+i);if(_(this,ie,i),_(this,X,T),this.maxEntrySize=k||s(this,X),this.sizeCalculation=I,this.sizeCalculation){if(!s(this,X)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("memoMethod must be a function if defined");if(_(this,We,w),m!==void 0&&typeof m!="function")throw new TypeError("fetchMethod must be a function if specified");if(_(this,Fe,m),_(this,Te,!!m),_(this,q,new Map),_(this,B,new Array(i).fill(void 0)),_(this,j,new Array(i).fill(void 0)),_(this,G,new se(i)),_(this,K,new se(i)),_(this,N,0),_(this,F,0),_(this,ue,Ua.create(i)),_(this,L,0),_(this,le,0),typeof c=="function"&&_(this,re,c),typeof p=="function"&&_(this,Pe,p),typeof d=="function"?(_(this,ce,d),_(this,W,[])):(_(this,ce,void 0),_(this,W,void 0)),_(this,xe,!!s(this,re)),_(this,He,!!s(this,Pe)),_(this,Y,!!s(this,ce)),this.noDisposeOnSet=!!x,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!M,this.allowStaleOnFetchAbort=!!R,this.ignoreFetchAbort=!!fe,this.maxEntrySize!==0){if(s(this,X)!==0&&!be(s(this,X)))throw new TypeError("maxSize must be a positive integer if specified");if(!be(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");S(this,y,la).call(this);}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!A,this.updateAgeOnGet=!!r,this.updateAgeOnHas=!!u,this.ttlResolution=be(t)||t===0?t:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!be(this.ttl))throw new TypeError("ttl must be a positive integer if specified");S(this,y,zi).call(this);}if(s(this,ie)===0&&this.ttl===0&&s(this,X)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!s(this,ie)&&!s(this,X)){let Be="LRU_CACHE_UNBOUNDED";Ha(Be)&&(oa.add(Be),ra("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Be,Ve));}}get perf(){return s(this,pe)}static unsafeExposeInternals(e){return {starts:s(e,me),ttls:s(e,J),autopurgeTimers:s(e,Z),sizes:s(e,de),keyMap:s(e,q),keyList:s(e,B),valList:s(e,j),next:s(e,G),prev:s(e,K),get head(){return s(e,N)},get tail(){return s(e,F)},free:s(e,ue),isBackgroundFetch:i=>{var n;return S(n=e,y,z).call(n,i)},backgroundFetch:(i,n,t,o)=>{var r;return S(r=e,y,pi).call(r,i,n,t,o)},moveToTail:i=>{var n;return S(n=e,y,Xe).call(n,i)},indexes:i=>{var n;return S(n=e,y,ye).call(n,i)},rindexes:i=>{var n;return S(n=e,y,we).call(n,i)},isStale:i=>{var n;return s(n=e,Q).call(n,i)}}}get max(){return s(this,ie)}get maxSize(){return s(this,X)}get calculatedSize(){return s(this,le)}get size(){return s(this,L)}get fetchMethod(){return s(this,Fe)}get memoMethod(){return s(this,We)}get dispose(){return s(this,re)}get onInsert(){return s(this,Pe)}get disposeAfter(){return s(this,ce)}getRemainingTTL(e){return s(this,q).has(e)?1/0:0}*entries(){for(let e of S(this,y,ye).call(this))s(this,j)[e]!==void 0&&s(this,B)[e]!==void 0&&!S(this,y,z).call(this,s(this,j)[e])&&(yield [s(this,B)[e],s(this,j)[e]]);}*rentries(){for(let e of S(this,y,we).call(this))s(this,j)[e]!==void 0&&s(this,B)[e]!==void 0&&!S(this,y,z).call(this,s(this,j)[e])&&(yield [s(this,B)[e],s(this,j)[e]]);}*keys(){for(let e of S(this,y,ye).call(this)){let i=s(this,B)[e];i!==void 0&&!S(this,y,z).call(this,s(this,j)[e])&&(yield i);}}*rkeys(){for(let e of S(this,y,we).call(this)){let i=s(this,B)[e];i!==void 0&&!S(this,y,z).call(this,s(this,j)[e])&&(yield i);}}*values(){for(let e of S(this,y,ye).call(this))s(this,j)[e]!==void 0&&!S(this,y,z).call(this,s(this,j)[e])&&(yield s(this,j)[e]);}*rvalues(){for(let e of S(this,y,we).call(this))s(this,j)[e]!==void 0&&!S(this,y,z).call(this,s(this,j)[e])&&(yield s(this,j)[e]);}[(sa=Symbol.iterator,ta=Symbol.toStringTag,sa)](){return this.entries()}find(e,i={}){for(let n of S(this,y,ye).call(this)){let t=s(this,j)[n],o=S(this,y,z).call(this,t)?t.__staleWhileFetching:t;if(o!==void 0&&e(o,s(this,B)[n],this))return this.get(s(this,B)[n],i)}}forEach(e,i=this){for(let n of S(this,y,ye).call(this)){let t=s(this,j)[n],o=S(this,y,z).call(this,t)?t.__staleWhileFetching:t;o!==void 0&&e.call(i,o,s(this,B)[n],this);}}rforEach(e,i=this){for(let n of S(this,y,we).call(this)){let t=s(this,j)[n],o=S(this,y,z).call(this,t)?t.__staleWhileFetching:t;o!==void 0&&e.call(i,o,s(this,B)[n],this);}}purgeStale(){let e=false;for(let i of S(this,y,we).call(this,{allowStale:true}))s(this,Q).call(this,i)&&(S(this,y,ke).call(this,s(this,B)[i],"expire"),e=true);return e}info(e){let i=s(this,q).get(e);if(i===void 0)return;let n=s(this,j)[i],t=S(this,y,z).call(this,n)?n.__staleWhileFetching:n;if(t===void 0)return;let o={value:t};if(s(this,J)&&s(this,me)){let r=s(this,J)[i],u=s(this,me)[i];if(r&&u){let l=r-(s(this,pe).now()-u);o.ttl=l,o.start=Date.now();}}return s(this,de)&&(o.size=s(this,de)[i]),o}dump(){let e=[];for(let i of S(this,y,ye).call(this,{allowStale:true})){let n=s(this,B)[i],t=s(this,j)[i],o=S(this,y,z).call(this,t)?t.__staleWhileFetching:t;if(o===void 0||n===void 0)continue;let r={value:o};if(s(this,J)&&s(this,me)){r.ttl=s(this,J)[i];let u=s(this,pe).now()-s(this,me)[i];r.start=Math.floor(Date.now()-u);}s(this,de)&&(r.size=s(this,de)[i]),e.unshift([n,r]);}return e}load(e){this.clear();for(let[i,n]of e){if(n.start){let t=Date.now()-n.start;n.start=s(this,pe).now()-t;}this.set(i,n.value,n);}}set(e,i,n={}){var x,g,T,k;if(i===void 0)return this.delete(e),this;let{ttl:t=this.ttl,start:o,noDisposeOnSet:r=this.noDisposeOnSet,sizeCalculation:u=this.sizeCalculation,status:l}=n,{noUpdateTTL:c=this.noUpdateTTL}=n,p=s(this,Je).call(this,e,i,n.size||0,u);if(this.maxEntrySize&&p>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=true),S(this,y,ke).call(this,e,"set"),this;let d=s(this,L)===0?void 0:s(this,q).get(e);if(d===void 0)d=s(this,L)===0?s(this,F):s(this,ue).length!==0?s(this,ue).pop():s(this,L)===s(this,ie)?S(this,y,ci).call(this,false):s(this,L),s(this,B)[d]=e,s(this,j)[d]=i,s(this,q).set(e,d),s(this,G)[s(this,F)]=d,s(this,K)[d]=s(this,F),_(this,F,d),ni(this,L)._++,s(this,Ue).call(this,d,p,l),l&&(l.set="add"),c=false,s(this,He)&&((x=s(this,Pe))==null||x.call(this,i,e,"add"));else {S(this,y,Xe).call(this,d);let I=s(this,j)[d];if(i!==I){if(s(this,Te)&&S(this,y,z).call(this,I)){I.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:m}=I;m!==void 0&&!r&&(s(this,xe)&&((g=s(this,re))==null||g.call(this,m,e,"set")),s(this,Y)&&s(this,W)?.push([m,e,"set"]));}else r||(s(this,xe)&&((T=s(this,re))==null||T.call(this,I,e,"set")),s(this,Y)&&s(this,W)?.push([I,e,"set"]));if(s(this,Ie).call(this,d),s(this,Ue).call(this,d,p,l),s(this,j)[d]=i,l){l.set="replace";let m=I&&S(this,y,z).call(this,I)?I.__staleWhileFetching:I;m!==void 0&&(l.oldValue=m);}}else l&&(l.set="update");s(this,He)&&this.onInsert?.(i,e,i===I?"update":"replace");}if(t!==0&&!s(this,J)&&S(this,y,zi).call(this),s(this,J)&&(c||s(this,Ke).call(this,d,t,o),l&&s(this,ge).call(this,l,d)),!r&&s(this,Y)&&s(this,W)){let I=s(this,W),m;for(;m=I?.shift();)(k=s(this,ce))==null||k.call(this,...m);}return this}pop(){var e;try{for(;s(this,L);){let i=s(this,j)[s(this,N)];if(S(this,y,ci).call(this,!0),S(this,y,z).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(s(this,Y)&&s(this,W)){let i=s(this,W),n;for(;n=i?.shift();)(e=s(this,ce))==null||e.call(this,...n);}}}has(e,i={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:t}=i,o=s(this,q).get(e);if(o!==void 0){let r=s(this,j)[o];if(S(this,y,z).call(this,r)&&r.__staleWhileFetching===void 0)return false;if(s(this,Q).call(this,o))t&&(t.has="stale",s(this,ge).call(this,t,o));else return n&&s(this,Se).call(this,o),t&&(t.has="hit",s(this,ge).call(this,t,o)),true}else t&&(t.has="miss");return false}peek(e,i={}){let{allowStale:n=this.allowStale}=i,t=s(this,q).get(e);if(t===void 0||!n&&s(this,Q).call(this,t))return;let o=s(this,j)[t];return S(this,y,z).call(this,o)?o.__staleWhileFetching:o}async fetch(e,i={}){let{allowStale:n=this.allowStale,updateAgeOnGet:t=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:r=this.ttl,noDisposeOnSet:u=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:p=this.noUpdateTTL,noDeleteOnFetchRejection:d=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:x=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:T=this.allowStaleOnFetchAbort,context:k,forceRefresh:I=false,status:m,signal:w}=i;if(!s(this,Te))return m&&(m.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:t,noDeleteOnStaleGet:o,status:m});let E={allowStale:n,updateAgeOnGet:t,noDeleteOnStaleGet:o,ttl:r,noDisposeOnSet:u,size:l,sizeCalculation:c,noUpdateTTL:p,noDeleteOnFetchRejection:d,allowStaleOnFetchRejection:x,allowStaleOnFetchAbort:T,ignoreFetchAbort:g,status:m,signal:w},A=s(this,q).get(e);if(A===void 0){m&&(m.fetch="miss");let M=S(this,y,pi).call(this,e,A,E,k);return M.__returned=M}else {let M=s(this,j)[A];if(S(this,y,z).call(this,M)){let se=n&&M.__staleWhileFetching!==void 0;return m&&(m.fetch="inflight",se&&(m.returnedStale=true)),se?M.__staleWhileFetching:M.__returned=M}let R=s(this,Q).call(this,A);if(!I&&!R)return m&&(m.fetch="hit"),S(this,y,Xe).call(this,A),t&&s(this,Se).call(this,A),m&&s(this,ge).call(this,m,A),M;let fe=S(this,y,pi).call(this,e,A,E,k),H=fe.__staleWhileFetching!==void 0&&n;return m&&(m.fetch=R?"stale":"refresh",H&&R&&(m.returnedStale=true)),H?fe.__staleWhileFetching:fe.__returned=fe}}async forceFetch(e,i={}){let n=await this.fetch(e,i);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(e,i={}){let n=s(this,We);if(!n)throw new Error("no memoMethod provided to constructor");let{context:t,forceRefresh:o,...r}=i,u=this.get(e,r);if(!o&&u!==void 0)return u;let l=n(e,u,{options:r,context:t});return this.set(e,l,r),l}get(e,i={}){let{allowStale:n=this.allowStale,updateAgeOnGet:t=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:r}=i,u=s(this,q).get(e);if(u!==void 0){let l=s(this,j)[u],c=S(this,y,z).call(this,l);return r&&s(this,ge).call(this,r,u),s(this,Q).call(this,u)?(r&&(r.get="stale"),c?(r&&n&&l.__staleWhileFetching!==void 0&&(r.returnedStale=true),n?l.__staleWhileFetching:void 0):(o||S(this,y,ke).call(this,e,"expire"),r&&n&&(r.returnedStale=true),n?l:void 0)):(r&&(r.get="hit"),c?l.__staleWhileFetching:(S(this,y,Xe).call(this,u),t&&s(this,Se).call(this,u),l))}else r&&(r.get="miss");}delete(e){return S(this,y,ke).call(this,e,"delete")}clear(){return S(this,y,Di).call(this,"delete")}},ie=new WeakMap,X=new WeakMap,re=new WeakMap,Pe=new WeakMap,ce=new WeakMap,Fe=new WeakMap,We=new WeakMap,pe=new WeakMap,L=new WeakMap,le=new WeakMap,q=new WeakMap,B=new WeakMap,j=new WeakMap,G=new WeakMap,K=new WeakMap,N=new WeakMap,F=new WeakMap,ue=new WeakMap,W=new WeakMap,de=new WeakMap,me=new WeakMap,J=new WeakMap,Z=new WeakMap,xe=new WeakMap,Te=new WeakMap,Y=new WeakMap,He=new WeakMap,y=new WeakSet,zi=function(){let e=new ri(s(this,ie)),i=new ri(s(this,ie));_(this,J,e),_(this,me,i);let n=this.ttlAutopurge?new Array(s(this,ie)):void 0;_(this,Z,n),_(this,Ke,(r,u,l=s(this,pe).now())=>{if(i[r]=u!==0?l:0,e[r]=u,n?.[r]&&(clearTimeout(n[r]),n[r]=void 0),u!==0&&n){let c=setTimeout(()=>{s(this,Q).call(this,r)&&S(this,y,ke).call(this,s(this,B)[r],"expire");},u+1);c.unref&&c.unref(),n[r]=c;}}),_(this,Se,r=>{i[r]=e[r]!==0?s(this,pe).now():0;}),_(this,ge,(r,u)=>{if(e[u]){let l=e[u],c=i[u];if(!l||!c)return;r.ttl=l,r.start=c,r.now=t||o();let p=r.now-c;r.remainingTTL=l-p;}});let t=0,o=()=>{let r=s(this,pe).now();if(this.ttlResolution>0){t=r;let u=setTimeout(()=>t=0,this.ttlResolution);u.unref&&u.unref();}return r};this.getRemainingTTL=r=>{let u=s(this,q).get(r);if(u===void 0)return 0;let l=e[u],c=i[u];if(!l||!c)return 1/0;let p=(t||o())-c;return l-p},_(this,Q,r=>{let u=i[r],l=e[r];return !!l&&!!u&&(t||o())-u>l});},Se=new WeakMap,ge=new WeakMap,Ke=new WeakMap,Q=new WeakMap,la=function(){let e=new ri(s(this,ie));_(this,le,0),_(this,de,e),_(this,Ie,i=>{_(this,le,s(this,le)-e[i]),e[i]=0;}),_(this,Je,(i,n,t,o)=>{if(S(this,y,z).call(this,n))return 0;if(!be(t))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(t=o(n,i),!be(t))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return t}),_(this,Ue,(i,n,t)=>{if(e[i]=n,s(this,X)){let o=s(this,X)-e[i];for(;s(this,le)>o;)S(this,y,ci).call(this,true);}_(this,le,s(this,le)+e[i]),t&&(t.entrySize=n,t.totalCalculatedSize=s(this,le));});},Ie=new WeakMap,Ue=new WeakMap,Je=new WeakMap,ye=function*({allowStale:e=this.allowStale}={}){if(s(this,L))for(let i=s(this,F);!(!S(this,y,Bi).call(this,i)||((e||!s(this,Q).call(this,i))&&(yield i),i===s(this,N)));)i=s(this,K)[i];},we=function*({allowStale:e=this.allowStale}={}){if(s(this,L))for(let i=s(this,N);!(!S(this,y,Bi).call(this,i)||((e||!s(this,Q).call(this,i))&&(yield i),i===s(this,F)));)i=s(this,G)[i];},Bi=function(e){return e!==void 0&&s(this,q).get(s(this,B)[e])===e},ci=function(e){var o;let i=s(this,N),n=s(this,B)[i],t=s(this,j)[i];return s(this,Te)&&S(this,y,z).call(this,t)?t.__abortController.abort(new Error("evicted")):(s(this,xe)||s(this,Y))&&(s(this,xe)&&((o=s(this,re))==null||o.call(this,t,n,"evict")),s(this,Y)&&s(this,W)?.push([t,n,"evict"])),s(this,Ie).call(this,i),s(this,Z)?.[i]&&(clearTimeout(s(this,Z)[i]),s(this,Z)[i]=void 0),e&&(s(this,B)[i]=void 0,s(this,j)[i]=void 0,s(this,ue).push(i)),s(this,L)===1?(_(this,N,_(this,F,0)),s(this,ue).length=0):_(this,N,s(this,G)[i]),s(this,q).delete(n),ni(this,L)._--,i},pi=function(e,i,n,t){let o=i===void 0?void 0:s(this,j)[i];if(S(this,y,z).call(this,o))return o;let r=new li,{signal:u}=n;u?.addEventListener("abort",()=>r.abort(u.reason),{signal:r.signal});let l={signal:r.signal,options:n,context:t},c=(k,I=false)=>{let{aborted:m}=r.signal,w=n.ignoreFetchAbort&&k!==void 0,E=n.ignoreFetchAbort||!!(n.allowStaleOnFetchAbort&&k!==void 0);if(n.status&&(m&&!I?(n.status.fetchAborted=true,n.status.fetchError=r.signal.reason,w&&(n.status.fetchAbortIgnored=true)):n.status.fetchResolved=true),m&&!w&&!I)return d(r.signal.reason,E);let A=g,M=s(this,j)[i];return (M===g||w&&I&&M===void 0)&&(k===void 0?A.__staleWhileFetching!==void 0?s(this,j)[i]=A.__staleWhileFetching:S(this,y,ke).call(this,e,"fetch"):(n.status&&(n.status.fetchUpdated=true),this.set(e,k,l.options))),k},p=k=>(n.status&&(n.status.fetchRejected=true,n.status.fetchError=k),d(k,false)),d=(k,I)=>{let{aborted:m}=r.signal,w=m&&n.allowStaleOnFetchAbort,E=w||n.allowStaleOnFetchRejection,A=E||n.noDeleteOnFetchRejection,M=g;if(s(this,j)[i]===g&&(!A||!I&&M.__staleWhileFetching===void 0?S(this,y,ke).call(this,e,"fetch"):w||(s(this,j)[i]=M.__staleWhileFetching)),E)return n.status&&M.__staleWhileFetching!==void 0&&(n.status.returnedStale=true),M.__staleWhileFetching;if(M.__returned===M)throw k},x=(k,I)=>{var w;let m=(w=s(this,Fe))==null?void 0:w.call(this,e,o,l);m&&m instanceof Promise&&m.then(E=>k(E===void 0?void 0:E),I),r.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(k(void 0),n.allowStaleOnFetchAbort&&(k=E=>c(E,true)));});};n.status&&(n.status.fetchDispatched=true);let g=new Promise(x).then(c,p),T=Object.assign(g,{__abortController:r,__staleWhileFetching:o,__returned:void 0});return i===void 0?(this.set(e,T,{...l.options,status:void 0}),i=s(this,q).get(e)):s(this,j)[i]=T,T},z=function(e){if(!s(this,Te))return false;let i=e;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof li},Ri=function(e,i){s(this,K)[i]=e,s(this,G)[e]=i;},Xe=function(e){e!==s(this,F)&&(e===s(this,N)?_(this,N,s(this,G)[e]):S(this,y,Ri).call(this,s(this,K)[e],s(this,G)[e]),S(this,y,Ri).call(this,s(this,F),e),_(this,F,e));},ke=function(e,i){var t,o;let n=false;if(s(this,L)!==0){let r=s(this,q).get(e);if(r!==void 0)if(s(this,Z)?.[r]&&(clearTimeout(s(this,Z)?.[r]),s(this,Z)[r]=void 0),n=true,s(this,L)===1)S(this,y,Di).call(this,i);else {s(this,Ie).call(this,r);let u=s(this,j)[r];if(S(this,y,z).call(this,u)?u.__abortController.abort(new Error("deleted")):(s(this,xe)||s(this,Y))&&(s(this,xe)&&((t=s(this,re))==null||t.call(this,u,e,i)),s(this,Y)&&s(this,W)?.push([u,e,i])),s(this,q).delete(e),s(this,B)[r]=void 0,s(this,j)[r]=void 0,r===s(this,F))_(this,F,s(this,K)[r]);else if(r===s(this,N))_(this,N,s(this,G)[r]);else {let l=s(this,K)[r];s(this,G)[l]=s(this,G)[r];let c=s(this,G)[r];s(this,K)[c]=s(this,K)[r];}ni(this,L)._--,s(this,ue).push(r);}}if(s(this,Y)&&s(this,W)?.length){let r=s(this,W),u;for(;u=r?.shift();)(o=s(this,ce))==null||o.call(this,...u);}return n},Di=function(e){var i,n;for(let t of S(this,y,we).call(this,{allowStale:true})){let o=s(this,j)[t];if(S(this,y,z).call(this,o))o.__abortController.abort(new Error("deleted"));else {let r=s(this,B)[t];s(this,xe)&&((i=s(this,re))==null||i.call(this,o,r,e)),s(this,Y)&&s(this,W)?.push([o,r,e]);}}if(s(this,q).clear(),s(this,j).fill(void 0),s(this,B).fill(void 0),s(this,J)&&s(this,me)){s(this,J).fill(0),s(this,me).fill(0);for(let t of s(this,Z)??[])t!==void 0&&clearTimeout(t);s(this,Z)?.fill(void 0);}if(s(this,de)&&s(this,de).fill(0),_(this,N,0),_(this,F,0),s(this,ue).length=0,_(this,le,0),_(this,L,0),s(this,Y)&&s(this,W)){let t=s(this,W),o;for(;o=t?.shift();)(n=s(this,ce))==null||n.call(this,...o);}},Ve);var ae=class{constructor(e){b(this,"cache");b(this,"map",new Map);this.cache=new pa({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var qi=Symbol("SerializableEvent"),Ne=new ae({cacheSize:5});function Va(a){return function(e,i,n){let t=n.value;ui.add(t,a||`${i}`);}}var ui;(o=>{function a(r,u){r[qi]=u,Ne.get(u)&&P.info(`Event "${u}" already exists, it will be overwritten`),Ne.set(u,r);}o.add=a;function e(r){try{let u=Ne.get(r);if(!u){P.error(`Event "${r}" not found, did you forget to register it with the eventDecorator?`);return}return u}catch(u){P.error(`Error while getting Event "${r}"`,u);return}}o.get=e;function i(){return Array.from(Ne.values())}o.values=i;function n(r){return Ne.has(r)}o.has=n;function t(){return Array.from(Ne.keys())}o.keys=t;})(ui||(ui={}));var Li=ui;async function ua(a,e){if("onEvents"in e)for(let i in e.onEvents){let n=e.onEvents[i],t=Li.get(n);t&&a.on(i,t);}}function da(a){return "onEventsHandlers"in a?a.onEventsHandlers:{}}function _e(a,e,i){let n=i[qi];return n&&typeof n=="string"?(e.onEventsHandlers[a]=n,true):(P.warn(`The event handler for event "${a}" is not registered with the eventDecorator, it will not be saved in the memory and it will not work after loading the game. Please register the event handler with the eventDecorator to avoid this warning. Read more about it here: https://pixi-vn.web.app/start/canvas-functions#add-a-listener-to-an-event`),false)}var Ge=new ae({cacheSize:5}),ma=new ae({cacheSize:2}),xa=new ae({cacheSize:2});function Na(a={}){return function(e){di.add(e,a);}}async function ne(a,e,i){let n=i?.ignoreScale||false,t=i?.end;"isRenderGroup"in e&&e.isRenderGroup!==void 0&&(a.isRenderGroup=e.isRenderGroup),"blendMode"in e&&e.blendMode!==void 0&&(a.blendMode=e.blendMode),"tint"in e&&e.tint!==void 0&&(a.tint=e.tint),"alpha"in e&&e.alpha!==void 0&&(a.alpha=e.alpha),"angle"in e&&e.angle!==void 0&&(a.angle=e.angle),"renderable"in e&&e.renderable!==void 0&&(a.renderable=e.renderable),"rotation"in e&&e.rotation!==void 0&&(a.rotation=e.rotation),!n&&"scale"in e&&e.scale!==void 0&&(typeof e.scale=="number"?a.scale.set(e.scale,e.scale):a.scale.set(e.scale.x,e.scale.y)),"pivot"in e&&e.pivot!==void 0&&(typeof e.pivot=="number"?a.pivot.set(e.pivot,e.pivot):a.pivot.set(e.pivot.x,e.pivot.y)),"position"in e&&e.position!==void 0&&a.position.set(e.position.x,e.position.y),"skew"in e&&e.skew!==void 0&&a.skew.set(e.skew.x,e.skew.y),"visible"in e&&e.visible!==void 0&&(a.visible=e.visible),"x"in e&&e.x!==void 0&&(a.x=e.x),"y"in e&&e.y!==void 0&&(a.y=e.y),"boundsArea"in e&&e.boundsArea!==void 0&&(a.boundsArea=e.boundsArea),"cursor"in e&&e.cursor!==void 0&&(a.cursor=e.cursor),"eventMode"in e&&e.eventMode!==void 0&&(a.eventMode=e.eventMode),"interactive"in e&&e.interactive!==void 0&&(a.interactive=e.interactive),"interactiveChildren"in e&&e.interactiveChildren!==void 0&&(a.interactiveChildren=e.interactiveChildren),"hitArea"in e&&e.hitArea!==void 0&&(a.hitArea=e.hitArea),ua(a,e),"align"in e&&e.align!==void 0&&"align"in a&&(a.align=e.align),"percentagePosition"in e&&e.percentagePosition!==void 0&&"percentagePosition"in a&&(a.percentagePosition=e.percentagePosition),t&&await t(),n||("width"in e&&e.width!==void 0&&(a.width=e.width),"height"in e&&e.height!==void 0&&(a.height=e.height));}var di;(u=>{function a(l,c={}){let{name:p=l.name,getInstance:d=async(g,T)=>{let k=new g;return await k.setMemory(T),k},copyProperty:x=async(g,T)=>{await g.setMemory(T);}}=c;Ge.get(p)&&P.warn(`CanvasElement "${p}" already registered`),l.prototype.pixivnId=p,Ge.set(p,l),ma.set(p,d),xa.set(p,x);}u.add=a;function e(l){let c=Ge.get(l);if(!c){P.error(`CanvasElement "${l}" not found, did you forget to register it with the canvasComponentDecorator?`);return}return c}u.get=e;async function i(l,c){let p=e(l),d=ma.get(l);if(!p||!d){P.error(`CanvasElement "${l}" not found, did you forget to register it with the canvasComponentDecorator?`);return}try{return await d(p,c)}catch(x){P.error(`Error while getting CanvasElement instance "${l}"`,x);}}u.getInstance=i;async function n(l,c,p){let d=xa.get(l);if(!d){P.error(`CanvasElement "${l}" not found, did you forget to register it with the canvasComponentDecorator?`);return}try{await d(c,p);}catch(x){P.error(`Error while copying properties of CanvasElement "${l}"`,x);}}u.copyProperty=n;function t(){return Array.from(Ge.values())}u.values=t;function o(l){return Ge.has(l)}u.has=o;function r(){return Array.from(Ge.keys())}u.keys=r;})(di||(di={}));var U=di;async function mi(a){let e=await U.getInstance(a.pixivnId,a);if(!e)throw new core.PixiError("unregistered_element",`The element ${a.pixivnId} could not be created`);return e}function Wi(a){return "memory"in a?a.memory:a instanceof Ce__default.default.Text?Ui(a):a instanceof Ce__default.default.Sprite?Hi(a):je(a)}function Ya(a){return {width:a.width,height:a.height,isRenderGroup:a.isRenderGroup,blendMode:a.blendMode,tint:a.tint,alpha:a.alpha,angle:a.angle,renderable:a.renderable,rotation:a.rotation,scale:{x:a.scale.x,y:a.scale.y},pivot:{x:a.pivot.x,y:a.pivot.y},position:{x:a.position.x,y:a.position.y},skew:{x:a.skew.x,y:a.skew.y},visible:a.visible,x:a.x,y:a.y,boundsArea:a.boundsArea,cursor:a.cursor,eventMode:a.eventMode,interactive:a.interactive,interactiveChildren:a.interactiveChildren,hitArea:a.hitArea}}function Fi(a,e){return {url:a.source.label,alias:e===a.source.label?void 0:e}}function je(a,e){let i=$a(a,Re),t=e?.childrenExport||false?a.children.sort((o,r)=>a.getChildIndex(o)-a.getChildIndex(r)).map(o=>Wi(o)):[];return {pixivnId:i,elements:t,onEvents:da(a),...Ya(a)}}function Hi(a){let e=je(a),i=e.pixivnId??De,n="assetsAliases"in a&&Array.isArray(a.assetsAliases)?Fi(a.texture,a.assetsAliases[0]):"textureAlias"in a?Fi(a.texture,a.textureAlias):Fi(a.texture);return {...e,pixivnId:i,textureData:n,anchor:{x:a.anchor.x,y:a.anchor.y},roundPixels:a.roundPixels}}function Ui(a){let e=je(a),i=e.pixivnId??qe;return {...e,pixivnId:i,anchor:{x:a.anchor.x,y:a.anchor.y},text:a.text,resolution:a.resolution,style:Za(a.style),roundPixels:a.roundPixels}}function $a(a,e){return Object.prototype.hasOwnProperty.call(a,"pixivnId")?a.pixivnId:e}function xi(a){switch(a.type){case "linear":return {type:"linear",colorStops:a.colorStops,end:{x:a.end.x,y:a.end.y},start:{x:a.start.x,y:a.start.y},textureSpace:a.textureSpace,wrapMode:a.texture.source.wrapMode,textureSize:a.texture.source.width/a.texture.source.height};case "radial":return {type:"radial",colorStops:a.colorStops,textureSpace:a.textureSpace,center:{x:a.center.x,y:a.center.y},innerRadius:a.innerRadius,outerCenter:{x:a.outerCenter.x,y:a.outerCenter.y},outerRadius:a.outerRadius,rotation:a.rotation,scale:a.scale,wrapMode:a.texture.source.wrapMode,textureSize:a.texture.source.width/a.texture.source.height}}}function Xa(a){if(a!=null){{if(typeof a=="number")return a;if(typeof a=="string"||Array.isArray(a))return a;if(a instanceof Ce__default.default.FillGradient)return xi(a);if(typeof a=="object"&&"fill"in a&&typeof a.fill!="function"&&a.fill){if(!(a.fill instanceof Ce__default.default.FillPattern))return xi(a.fill)}}P.warn("Unsupported property type for Text.style.fill.",a);}}function Ka(a){if(typeof a=="number")return a;if(typeof a=="string")return a;if(Array.isArray(a))return a;if(a instanceof Ce__default.default.Color)return a.toNumber();P.warn("Unsupported color type.",a);}function Ja(a){if(a!=null){{if(typeof a=="number")return a;if(typeof a=="string"||Array.isArray(a))return a;if(a instanceof Ce__default.default.FillGradient)return xi(a);if(typeof a=="object"&&"alignment"in a)return {alignment:a.alignment,alpha:a.alpha,color:Ka(a.color),join:a.join,miterLimit:a.miterLimit,width:a.width,cap:a.cap,pixelLine:a.pixelLine,textureSpace:a.textureSpace};if(typeof a=="object"&&"fill"in a&&typeof a.fill!="function"&&a.fill){if(!(a.fill instanceof Ce__default.default.FillPattern))return xi(a.fill)}}P.warn("Unsupported property type for Text.style.stroke.",a);}}function Za(a){return {align:a.align,breakWords:a.breakWords,dropShadow:a.dropShadow,fill:Xa(a.fill),fontFamily:a.fontFamily,fontSize:a.fontSize,fontStyle:a.fontStyle,fontVariant:a.fontVariant,fontWeight:a.fontWeight,leading:a.leading,letterSpacing:a.letterSpacing,lineHeight:a.lineHeight,padding:a.padding,stroke:Ja(a.stroke),textBaseline:a.textBaseline,trim:a.trim,whiteSpace:a.whiteSpace,wordWrap:a.wordWrap,wordWrapWidth:a.wordWrapWidth}}var Ae=new ae({cacheSize:5});function Qa(a){return function(e){fi.add(e,a);}}var fi;(r=>{function a(u,l){l||(l=u.name),Ae.get(l)&&P.info(`Ticker "${l}" already exists, it will be overwritten`),u.prototype.id=l,Ae.set(l,u);}r.add=a;function e(u){try{let l=Ae.get(u);if(!l){P.error(`Event "${u}" not found, did you forget to register it with the tickerDecorator?`);return}return l}catch(l){P.error(`Error while getting Event "${u}"`,l);return}}r.get=e;function i(u,l,c){try{let p=Ae.get(u);if(!p){P.error(`Ticker "${u}" not found, did you forget to register it with the tickerDecorator?`);return}return new p(l,c)}catch(p){P.error(`Error while getting Ticker "${u}"`,p);return}}r.getInstance=i;function n(){return Array.from(Ae.values())}r.values=n;function t(u){return Ae.has(u)}r.has=t;function o(){return Array.from(Ae.keys())}r.keys=o;})(fi||(fi={}));var Ee=fi;var fa="aliasToRemoveAfter";var Ze=class{get app(){return f.app}get gameLayer(){return f.gameLayer}get isInitialized(){return f._isInitialized}get width(){return f.canvasWidth}get height(){return f.canvasHeight}set width(e){f.canvasWidth=e;}set height(e){f.canvasHeight=e;}get screen(){return this.app.screen}async init(e,i,n){return await f.init(e,i,n)}get children(){return f.gameLayer.children}async copyCanvasElementProperty(e,i){if(typeof i=="string"){let n=this.find(i);if(n)i=n;else {P.error(`Canvas element ${i} not found`);return}}if(typeof e=="string"){let n=this.find(e);if(n)e=n;else {P.error(`Canvas element ${e} not found`);return}}e instanceof Ce__default.default.Container&&(e=e.memory),"isRenderGroup"in e&&delete e.isRenderGroup,"scale"in e&&delete e.scale,"visible"in e&&delete e.visible,"boundsArea"in e&&delete e.boundsArea,"text"in e&&delete e.text,"resolution"in e&&delete e.resolution,"style"in e&&delete e.style,"height"in e&&delete e.height,"width"in e&&delete e.width,await U.copyProperty(i.pixivnId,i,e);}add(e,i,n={}){if(e===oe){P.error(`The alias ${oe} is reserved`);return}let t=this.find(e),o=n?.ignoreOldStyle;t&&!o&&this.copyCanvasElementProperty(t,i);let r=n.zIndex;t&&!this.gameLayer.children.includes(t)?P.error(`The canvas element ${e} exist in the memory but it is not on the canvas, so the zIndex is not set`):t&&(r===void 0&&(r=this.gameLayer.getChildIndex(t)),this.remove(e,{ignoreTickers:true})),r!==void 0?(i.label=e,this.gameLayer.addChildAt(i,r)):(i.label=e,this.gameLayer.addChild(i));}remove(e,i={}){if(e===oe){P.error(`The alias ${oe} is reserved`);return}let n=i.ignoreTickers;typeof e=="string"&&(e=[e]),e.forEach(t=>{this.gameLayer.getChildrenByLabel(t).forEach(o=>{this.gameLayer.removeChild(o),!n&&this.unlinkComponentFromTicker(t);});});}find(e){if(e===oe)return this.gameLayer;let i=this.gameLayer.getChildByLabel(e);if(i)return i}canvasElementIsOnCanvas(e){return this.gameLayer.children.includes(e)}removeAll(){this.gameLayer.removeChildren();}editAlias(e,i,n={}){let t=this.find(e);t&&(t.label=i),!n.ignoreTickers&&this.transferTickers(e,i,"move");}get currentTickers(){return f._currentTickers}get currentTickersSteps(){return f._currentTickersSequence}findTicker(e){let i=f._currentTickers[e];if(i)return i.ticker}addTicker(e,i){let n=i.id,t=i.alias;if(typeof e=="string"&&(e=[e]),i.canvasElementAliases=e,!Ee.has(t)){P.error(`Ticker ${t} not found`);return}let o={ticker:i};if(f._currentTickers[n]=o,o.ticker.start(),i.duration){let r=setTimeout(()=>{f.removeTickerTimeoutInfo(r),f._currentTickersTimeouts[r.toString()]&&o.ticker.complete({ignoreTickerSteps:true});},i.duration*1e3);f.addTickerTimeoutInfo(e,t,r.toString(),true);}return n}addTickersSequence(e,i,n=0){if(i.length==0){P.warn("The steps of the tickers is empty");return}e in f._currentTickersSequence||(f._currentTickersSequence[e]={});let t={currentStepNumber:n,steps:i.map(r=>r===$e||r.hasOwnProperty("type")&&r.type==="pause"?r:{ticker:r.alias,args:ee(r.args),duration:r.duration})},o=f.generateTickerId(t);return f._currentTickersSequence[e][o]=t,this.runTickersSequence(e,o),o}runTickersSequence(e,i){if(!f._currentTickersSequence[e]||!f._currentTickersSequence[e][i])return;let n=f._currentTickersSequence[e][i].steps[f._currentTickersSequence[e][i].currentStepNumber];if(n===$e&&(n=f._currentTickersSequence[e][i].steps[0],f._currentTickersSequence[e][i].currentStepNumber=0,n===$e)){P.error("TikersSteps has a RepeatType in the first step");return}if(n.hasOwnProperty("type")&&n.type==="pause"){let l=setTimeout(()=>{let c=f._currentTickersTimeouts[l.toString()];c&&c.aliases.forEach(p=>{this.nextTickerStep(p,i);}),f.removeTickerTimeoutInfo(l);},n.duration*1e3);f.addTickerTimeoutInfo(e,"steps",l.toString(),false);return}let t=Ee.getInstance(n.ticker,n.args,{canvasElementAliases:[e],duration:n.duration,priority:n.priority});if(!t){P.error(`Ticker ${n.ticker} not found`);return}let o=t.alias,r=t.id;t.canvasElementAliases=[e];let u={createdByTicketSteps:{canvasElementAlias:e,id:i},ticker:t};if(f._currentTickers[r]=u,u.ticker.start(),t.duration){let l=setTimeout(()=>{let c=f._currentTickersTimeouts[l.toString()];c&&(u.ticker.complete({ignoreTickerSteps:true}),c.aliases.forEach(p=>{this.nextTickerStep(p,i);})),f.removeTickerTimeoutInfo(l);},t.duration*1e3);f.addTickerTimeoutInfo(e,o,l.toString(),false);}}nextTickerStep(e,i){if(f._currentTickersSequence[e]&&f._currentTickersSequence[e][i]){let n=f._currentTickersSequence[e][i];n.currentStepNumber+1<n.steps.length?(n.currentStepNumber++,f._currentTickersSequence[e][i]=n,this.runTickersSequence(e,i)):i&&f._currentTickersSequence[e]&&f._currentTickersSequence[e][i]&&(delete f._currentTickersSequence[e][i],Object.entries(f._currentTickers).forEach(([t,o])=>{o.createdByTicketSteps?.canvasElementAlias===e&&o.createdByTicketSteps.id===i&&this.removeTicker(t);}));}}onTickerComplete(e,i){let{stopTicker:n=true,aliasToRemoveAfter:t,tickerAliasToResume:o,tickerIdToResume:r}=i,u=f._currentTickers[e],l=i.ignoreTickerSteps||false;this.remove(t),o.forEach(c=>this.resumeTicker({canvasAlias:c})),this.resumeTicker({id:r}),u&&(this.removeTicker(e,{stopTicker:n}),!l&&u.ticker.duration==null&&u.createdByTicketSteps&&this.nextTickerStep(u.createdByTicketSteps.canvasElementAlias,u.createdByTicketSteps.id));}unlinkComponentFromTicker(e,i){if(typeof e=="string"&&(e=[e]),!i){e.forEach(t=>{Object.entries(f._currentTickers).forEach(([o,r])=>{r.ticker.canvasElementAliases.includes(t)&&(r.ticker.canvasElementAliases.length===1?this.removeTicker(o):r.ticker.canvasElementAliases=r.ticker.canvasElementAliases.filter(u=>u!==t));}),f._currentTickersSequence[t]&&delete f._currentTickersSequence[t],f.removeTickerTimeoutsByAlias(t,false);});return}let n;typeof i=="string"?n=i:n=i.prototype.id,e.forEach(t=>{f._currentTickersSequence[t]&&Object.entries(f._currentTickersSequence[t]).forEach(([o,r])=>{r.steps.find(u=>typeof u=="object"&&"ticker"in u&&u.ticker===n)&&delete f._currentTickersSequence[t][o];});}),Object.entries(f._currentTickers).forEach(([t,o])=>{o.ticker.alias===n&&(f._currentTickers[t].ticker.canvasElementAliases=o.ticker.canvasElementAliases.filter(r=>!e.includes(r)));}),Object.entries(f._currentTickersTimeouts).forEach(([t,o])=>{o.ticker===n&&o.canBeDeletedBeforeEnd&&(f._currentTickersTimeouts[t].aliases=o.aliases.filter(r=>!e.includes(r)));}),this.removeTickersWithoutAssociatedCanvasElement();}removeTickersWithoutAssociatedCanvasElement(){Object.entries(f._currentTickers).forEach(([e,i])=>{i.ticker.canvasElementAliases=i.ticker.canvasElementAliases.filter(n=>this.find(n)),i.ticker.canvasElementAliases.length===0&&i.ticker.complete({ignoreTickerSteps:true});}),Object.entries(f._currentTickersSequence).forEach(([e,i])=>{i===void 0&&delete f._currentTickersSequence[e];}),Object.entries(f._currentTickersTimeouts).forEach(([e,{aliases:i}])=>{i.length===0&&f.removeTickerTimeout(e);});}removeAllTickers(){f._currentTickersSequence={},Object.keys(f._currentTickers).forEach(e=>{this.removeTicker(e);}),f._currentTickers={};for(let e in f._currentTickersTimeouts)f.removeTickerTimeout(e);f._tickersToCompleteOnStepEnd={tikersIds:[],stepAlias:[]},f._tickersOnPause={};}removeTicker(e,i={stopTicker:true}){typeof e=="string"&&(e=[e]),e.forEach(n=>{let t=f._currentTickers[n];t&&(i.stopTicker&&t.ticker.stop(),delete f._currentTickers[n]);});}pauseTicker(e){let i=[];if("canvasAlias"in e){let{canvasAlias:n,tickerIdsExcluded:t=[]}=e;Object.entries(f._currentTickers).forEach(([o,r])=>{r.ticker.canvasElementAliases.includes(n)&&!t.includes(r.ticker.alias)&&r.ticker.paused===false&&(r.ticker.pause(),i.push(o));});}else if("id"in e){let{id:n}=e;typeof n=="string"&&(n=[n]),[...new Set(n)].forEach(t=>{let o=f._currentTickers[t];o?o.ticker.paused===false&&(o.ticker.pause(),i.push(t)):P.error(`Ticker with id ${t} not found`);});}return i}resumeTicker(e){if("canvasAlias"in e){let{canvasAlias:i}=e;Object.values(f._currentTickers).forEach(n=>{n.ticker.canvasElementAliases.includes(i)&&n.ticker.play();}),delete f._tickersOnPause[i];}else if("id"in e){let{id:i}=e;typeof i=="string"&&(i=[i]),[...new Set(i)].forEach(n=>{let t=f._currentTickers[n];t?t.ticker.play():P.error(`Ticker with id ${n} not found`);});}}isTickerPaused(e,i){let n=f._tickersOnPause[e];if(n){if(i){if("tickerIdsIncluded"in n&&n.tickerIdsIncluded)return n.tickerIdsIncluded.includes(i);if("tickerIdsExcluded"in n&&n.tickerIdsExcluded)return !n.tickerIdsExcluded.includes(i)}return true}return false}transferTickers(e,i,n="move"){f._currentTickersSequence[e]&&(n==="move"?f._currentTickersSequence[i]=ee(f._currentTickersSequence[e]):n==="duplicate"&&(f._currentTickersSequence[i]=ee(f._currentTickersSequence[e]))),Object.entries(f._currentTickers).forEach(([t,o])=>{if(o.createdByTicketSteps?.canvasElementAlias===e&&this.removeTicker(t),o.ticker.canvasElementAliases.includes(e)){let r=Ee.getInstance(o.ticker.alias,ee(o.ticker.args),{duration:o.ticker.duration,priority:o.ticker.priority,canvasElementAliases:[i]});if(r?(this.addTicker(i,r),o.ticker.paused&&r.pause()):P.error(`Ticker ${o.ticker.alias} not found`),n==="move"&&(o.ticker.canvasElementAliases=o.ticker.canvasElementAliases.filter(u=>u!==e)),o.ticker.args.hasOwnProperty(fa)){let u=o.ticker.args.aliasToRemoveAfter;typeof u=="string"&&(u=[u]),Array.isArray(u)&&(n==="move"?o.ticker.args.aliasToRemoveAfter=u.map(l=>l===e?i:l):n==="duplicate"&&u.find(l=>l===e)&&(o.ticker.args.aliasToRemoveAfter=[...u,i]));}}}),Object.values(f._currentTickersTimeouts).forEach(t=>{t.aliases.includes(e)&&(n==="move"?t.aliases=t.aliases.map(o=>o===e?i:o):n==="duplicate"&&t.aliases.find(o=>o===e)&&t.aliases.push(i));}),f._currentTickersSequence[i]&&Object.keys(f._currentTickersSequence[i]).forEach(t=>{this.runTickersSequence(i,t);}),n==="duplicate"&&f._currentTickersSequence[e]&&Object.keys(f._currentTickersSequence[e]).forEach(t=>{this.runTickersSequence(e,t);});}completeTickerOnStepEnd(e){e.alias?f._tickersToCompleteOnStepEnd.stepAlias.push({id:e.id,alias:e.alias}):f._tickersToCompleteOnStepEnd.tikersIds.push({id:e.id});}async forceCompletionOfTicker(e,i){if(i){let n=f._currentTickersSequence[i];if(n&&n[e])if(n[e].steps.includes($e))P.error(`The ticker alias: ${i} id: ${e} contains a RepeatType, so it can't be forced to complete`,n[e]);else {let t=n[e].steps.map(o=>{if(typeof o=="object"&&"ticker"in o){let r=Ee.getInstance(o.ticker,o.args,{duration:o.duration,canvasElementAliases:[i],priority:o.priority});if(r)return r.complete()}});await Promise.all(t);}}else {let n=f._currentTickers[e];n&&await n.ticker.complete();}}animate(e,i,n,t){return core.GameUnifier.animate(e,i,n,t)}addLayer(e,i){if(e===oe){P.error(`The alias ${oe} is reserved`);return}return i.label=e,f.app.stage.addChild(i)}getLayer(e){return f.app.stage.getChildByLabel(e)}removeLayer(e){let i=f.app.stage.getChildByLabel(e);i&&f.app.stage.removeChild(i);}addHtmlLayer(e,i,n){return f.addHtmlLayer(e,i,n)}removeHtmlLayer(e){return f.removeHtmlLayer(e)}getHtmlLayer(e){return f.getHtmlLayer(e)}async extractImage(){return (await this.app.renderer.extract.image(this.app.stage)).src}clear(){this.removeAllTickers(),this.removeAll();}export(){let e={};return this.children.forEach(i=>{i.label&&(e[i.label]=Wi(i));}),{tickers:ee(f.currentTickersWithoutCreatedBySteps),tickersSteps:ee(f._currentTickersSequence),elements:ee(e),stage:ee(je(this.gameLayer)),elementAliasesOrder:ee(f.childrenAliasesOrder),tickersOnPause:ee(f._tickersOnPause),tickersToCompleteOnStepEnd:ee(f._tickersToCompleteOnStepEnd)}}async restore(e){this.clear();try{if(e.hasOwnProperty("elementAliasesOrder")&&e.hasOwnProperty("elements")){let i=e.elementAliasesOrder,n={},t=Object.entries(e.elements).map(async([o,r])=>{n[o]=await mi(r);});await Promise.all(t),i.forEach(o=>{let r=n[o];r&&this.add(o,r);});}else {P.error("The data does not have the properties elementAliasesOrder and elements");return}if(e.hasOwnProperty("stage")&&e.hasOwnProperty("stage")?ne(this.gameLayer,e.stage,{ignoreScale:!0}):P.error("The data does not have the properties stage"),e.hasOwnProperty("tickers")){let i=e.tickers;Object.entries(i).forEach(([n,t])=>{let o=t.canvasElementAliases;if(o.length!==0){let r=Ee.getInstance(t.id,t.args,{duration:t.duration,priority:t.priority,id:n,canvasElementAliases:o});r?(r.canvasElementAliases=o,this.addTicker(o,r),t.paused&&r.pause()):P.error(`Ticker ${t.id} not found`);}});}if(e.hasOwnProperty("tickersSteps")){let i=e.tickersSteps;Object.entries(i).forEach(([n,t])=>{f._currentTickersSequence[n]=t,Object.keys(t).forEach(o=>{this.runTickersSequence(n,o);});});}if(e.hasOwnProperty("tickersOnPause")){let i=e.tickersOnPause;Object.keys(i).forEach(n=>{let t=i[n];"tickerIdsExcluded"in t&&t.tickerIdsExcluded&&(i[n].tickerIdsExcluded=t.tickerIdsExcluded),"tickerIdsIncluded"in t&&t.tickerIdsIncluded&&(i[n].tickerIdsIncluded=t.tickerIdsIncluded);}),f._tickersOnPause=i;}if(e.hasOwnProperty("tickersToCompleteOnStepEnd")){let i=e.tickersToCompleteOnStepEnd,n=i.tikersIds,t=i.stepAlias.map(o=>({id:o.id,alias:o.alias}));f._tickersToCompleteOnStepEnd={tikersIds:n,stepAlias:t};}}catch(i){P.error("Error importing data",i);}}};var Qe=class Qe{static init(e){Qe._getScreen=e.getScreen;}static get screen(){return Qe._getScreen()}};b(Qe,"_getScreen");var $=Qe;async function Ye(a){if(a!=="EMPTY"){if(!a){P.error("Texture not found",a);return}if(Ce__default.default.Assets.cache.has(a)){let e=Ce__default.default.Assets.get(a);if(e)return e}return Ce__default.default.Assets.load(a).then(e=>{if(!e){P.error("Texture not found",a);return}if(!(e instanceof Ce__default.default.Texture)){P.error("File not is a file",a);return}return e}).catch(e=>{P.error("Error loading file",e);})}}exports.CanvasPropertyUtility=void 0;(l=>{function a(c,p,d,x,g,T=0){return x=x*(g?-1:1),c==="width"?p*($.screen.width-d)+x+T*d+(g?d:0):p*($.screen.height-d)+x+T*d+(g?d:0)}l.calculatePositionByAlign=a;function e(c,p,d,x,g,T=0){return x=x*(g?-1:1),c==="width"?(p-x-T*d-(g?d:0))/($.screen.width-d):(p-x-T*d-(g?d:0))/($.screen.height-d)}l.calculateAlignByPosition=e;function i(c,p){return c==="width"?p*$.screen.width:p*$.screen.height}l.calculatePositionByPercentagePosition=i;function n(c,p){return c==="width"?p/$.screen.width:p/$.screen.height}l.calculatePercentagePositionByPosition=n;function t(c,p){if(p=p%360,p<0&&(p+=360),p===0)return {x:c.x,y:c.y};if(p===90)return {x:-c.y,y:c.x};if(p===180)return {x:-c.x,y:-c.y};if(p===270)return {x:c.y,y:-c.x};if(p>0&&p<90){let d=p*Math.PI/180,x=Math.cos(d),g=Math.sin(d),T=c.x*x-c.y*g,k=c.x*g+c.y*x;return c.x!==0&&Math.sign(T)!==Math.sign(c.x)&&(T=-T),c.y!==0&&Math.sign(k)!==Math.sign(c.y)&&(k=-k),{x:T,y:k}}else if(p>90&&p<180){let d=(p-90)*Math.PI/180,x=Math.cos(d),g=Math.sin(d),T=-c.y*g-c.x*x,k=c.y*x-c.x*g;return c.x!==0&&Math.sign(T)!==Math.sign(c.x)&&(T=-T),c.y!==0&&Math.sign(k)!==Math.sign(c.y)&&(k=-k),{x:T,y:k}}else if(p>180&&p<270){let d=(p-180)*Math.PI/180,x=Math.cos(d),g=Math.sin(d),T=-c.x*x+c.y*g,k=-c.x*g-c.y*x;return c.x!==0&&Math.sign(T)!==Math.sign(c.x)&&(T=-T),c.y!==0&&Math.sign(k)!==Math.sign(c.y)&&(k=-k),{x:T,y:k}}else if(p>270&&p<360){let d=(p-270)*Math.PI/180,x=Math.cos(d),g=Math.sin(d),T=c.y*g-c.x*x,k=-c.y*x-c.x*g;return c.x!==0&&Math.sign(T)!==Math.sign(c.x)&&(T=-T),c.y!==0&&Math.sign(k)!==Math.sign(c.y)&&(k=-k),{x:T,y:k}}return {x:0,y:0}}l.getSuperPoint=t;function o(c,p){if(p=p%360,p<0&&(p+=360),p===0)return {x:c.x,y:c.y};if(p===90)return {x:c.y,y:-c.x};if(p===180)return {x:-c.x,y:-c.y};if(p===270)return {x:-c.y,y:c.x};if(p>0&&p<90){let d=p*Math.PI/180,x=Math.cos(d),g=Math.sin(d);return {x:c.x*x+c.y*g,y:-c.x*g+c.y*x}}else if(p>90&&p<180){let d=(p-90)*Math.PI/180,x=Math.cos(d),g=Math.sin(d);return {x:c.y*x-c.x*g,y:-c.y*g-c.x*x}}else if(p>180&&p<270){let d=(p-180)*Math.PI/180,x=Math.cos(d),g=Math.sin(d);return {x:-c.x*x-c.y*g,y:c.x*g-c.y*x}}else if(p>270&&p<360){let d=(p-270)*Math.PI/180,x=Math.cos(d),g=Math.sin(d);return {x:-c.y*x+c.x*g,y:c.y*g+c.x*x}}return {x:0,y:0}}l.getPointBySuperPoint=o;function r(c){let p=c.width,d=c.height,x=c.angle%360;return x<0&&(x+=360),x===0||x===180?p:x===90||x===270?d:Math.abs(p*Math.cos(x*Math.PI/180))+Math.abs(d*Math.sin(x*Math.PI/180))}l.getSuperWidth=r;function u(c){let p=c.width,d=c.height,x=c.angle%360;return x<0&&(x+=360),x===0||x===180?d:x===90||x===270?p:Math.abs(d*Math.cos(x*Math.PI/180))+Math.abs(p*Math.sin(x*Math.PI/180))}l.getSuperHeight=u;})(exports.CanvasPropertyUtility||(exports.CanvasPropertyUtility={}));function te(a){return a&&(typeof a.align!="number"&&(a.xAlign!=null&&(a.align===void 0?(a.align={x:a.xAlign},delete a.xAlign):(a.align.x=a.xAlign,delete a.xAlign)),a.yAlign!=null&&(a.align===void 0?(a.align={y:a.yAlign},delete a.yAlign):(a.align.y=a.yAlign,delete a.yAlign))),typeof a.percentagePosition!="number"&&(a.percentageX!=null&&(a.percentagePosition===void 0?(a.percentagePosition={x:a.percentageX},delete a.percentageX):(a.percentagePosition.x=a.percentageX,delete a.percentageX)),a.percentageY!=null&&(a.percentagePosition===void 0?(a.percentagePosition={y:a.percentageY},delete a.percentageY):(a.percentagePosition.y=a.percentageY,delete a.percentageY))),a)}var Me=class a extends Ce__default.default.Sprite{constructor(i){i=te(i);let n,t;i&&"align"in i&&i?.align!==void 0&&(n=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(t=i.percentagePosition,delete i.percentagePosition);super(i);b(this,"pixivnId",De);b(this,"onEventsHandlers",{});b(this,"_align");b(this,"_percentagePosition");this.pixivnId=this.constructor.prototype.pixivnId||De,n&&(this.align=n),t&&(this.percentagePosition=t);}get memory(){return {...Hi(this),pixivnId:this.pixivnId,align:this._align,percentagePosition:this._percentagePosition}}async setMemory(i){return await vi(this,i)}static from(i,n){let t=Ce__default.default.Sprite.from(i,n),o=new a;return o.texture=t.texture,o}on(i,n,t){return _e(i,this,n),super.on(i,(...o)=>n(...o,this),t)}set align(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),typeof i=="number"?(this._align.x=i,this._align.y=i):(i.x!==void 0&&(this._align.x=i.x),i.y!==void 0&&(this._align.y=i.y)),this.reloadPosition();}get align(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return {x:exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x),y:exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}}set xAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.x=i,this.reloadPosition();}get xAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)}set yAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.y=i,this.reloadPosition();}get yAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}set percentagePosition(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),typeof i=="number"?(this._percentagePosition.x=i,this._percentagePosition.y=i):(i.x!==void 0&&(this._percentagePosition.x=i.x),i.y!==void 0&&(this._percentagePosition.y=i.y)),this.reloadPosition();}get percentagePosition(){return {x:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x),y:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}}get percentageX(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x)}set percentageX(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.x=i,this.reloadPosition();}get percentageY(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}set percentageY(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.y=i,this.reloadPosition();}get positionType(){return this._align?"align":this._percentagePosition?"percentage":"pixel"}get positionInfo(){return this._align?{x:this._align.x||0,y:this._align.y||0,type:"align"}:this._percentagePosition?{x:this._percentagePosition.x||0,y:this._percentagePosition.y||0,type:"percentage"}:{x:this.x,y:this.y,type:"pixel"}}set positionInfo(i){i.type==="align"?this.align={x:i.x,y:i.y}:i.type==="percentage"?this.percentagePosition={x:i.x,y:i.y}:this.position.set(i.x,i.y);}reloadPosition(){if(this._align){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);this._align.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",this._align.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)),this._align.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",this._align.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y));}else this._percentagePosition&&(this._percentagePosition.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",this._percentagePosition.x)),this._percentagePosition.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",this._percentagePosition.y)));}get position(){return super.position}set position(i){this._align=void 0,this._percentagePosition=void 0,super.position=i;}get x(){return super.x}set x(i){this._align=void 0,this._percentagePosition=void 0,super.x=i;}get y(){return super.y}set y(i){this._align=void 0,this._percentagePosition=void 0,super.y=i;}};U.add(Me,{name:De,copyProperty:async(a,e)=>{await vi(a,e,{ignoreTexture:true});}});async function vi(a,e,i){e=te(e);let n=i?.ignoreTexture||false;if(await ne(a,e),!n){if("textureImage"in e&&e.textureImage&&e.textureImage.image){let r=await Ye(e.textureImage.image);r&&(a.texture=r);}let o;if("textureData"in e&&e.textureData&&(o=e.textureData),o&&o.url!=="EMPTY"){let r=o.url;o.alias&&Ce__default.default.Assets.resolver.hasKey(o.alias)&&(r=o.alias);let u=await Ye(r);u&&(a.texture=u);}}let t=i?.half;t&&await t(),"anchor"in e&&e.anchor!==void 0&&(typeof e.anchor=="number"?a.anchor.set(e.anchor,e.anchor):a.anchor.set(e.anchor.x,e.anchor.y)),"align"in e&&e.align!==void 0&&(a.align=e.align),"percentagePosition"in e&&e.percentagePosition!==void 0&&(a.percentagePosition=e.percentagePosition),"roundPixels"in e&&e.roundPixels!==void 0&&(a.roundPixels=e.roundPixels);}var D=class a extends Me{constructor(i,n){super(i);b(this,"_textureAlias");b(this,"pixivnId",Ai);b(this,"_loadIsStarted",false);n&&(this._textureAlias=n);}get textureAlias(){return this._textureAlias?this._textureAlias:this.texture.source.label}get memory(){return {...super.memory,pixivnId:this.pixivnId,loadIsStarted:this._loadIsStarted}}async setMemory(i){let n;"textureData"in i&&i.textureData&&(n=i.textureData),"assetsData"in i&&Array.isArray(i.assetsData)&&i.assetsData.length>0&&(n=i.assetsData[0]),n&&n.alias&&(this._textureAlias=n.alias),await gi(this,i),this.reloadPosition();}static from(i,n){let t=Ce__default.default.Sprite.from(i,n),o=new a;return o.texture=t.texture,o}get loadIsStarted(){return this._loadIsStarted}async load(){return this._loadIsStarted=true,Ye(this.textureAlias).then(i=>{this._loadIsStarted=false,i&&(this.texture=i);}).catch(i=>{this._loadIsStarted=false,P.error("Error into ImageSprite.load()",i);})}set texture(i){super.texture=i,this.reloadPosition();}get texture(){return super.texture}get haveEmptyTexture(){return this.texture._source.label==="EMPTY"}};U.add(D,{name:Ai,copyProperty:async(a,e)=>{await gi(a,e,{ignoreTexture:true});}});async function gi(a,e,i){return await vi(a,e,{half:async()=>{"loadIsStarted"in e&&e.loadIsStarted&&await a.load();},ignoreTexture:i?.ignoreTexture})}var ve=class a extends D{constructor(i,n){let t,o,r;i&&"loop"in i&&i?.loop!==void 0&&(t=i.loop,delete i.loop),i&&"paused"in i&&i?.paused!==void 0&&(o=i.paused,delete i.paused),i&&"currentTime"in i&&i?.currentTime!==void 0&&(r=i.currentTime,delete i.currentTime);super(i,n);b(this,"pixivnId",Ei);b(this,"_looop",false);b(this,"_paused",false);b(this,"_currentTime",0);t&&(this.loop=t),o&&(this.paused=o),r&&(this.currentTime=r);}get memory(){return {...super.memory,pixivnId:this.pixivnId,loop:this.loop,paused:this._paused,currentTime:this.currentTime}}async setMemory(i){await ha(this,i),this.reloadPosition();}static from(i,n){let t=Ce__default.default.Sprite.from(i,n),o=new a;return o.texture=t.texture,o}async load(){await super.load(),this.loop=this._looop,this.currentTime=this._currentTime,this.paused=this._paused;}get loop(){return this.texture?.source?.resource?.loop||false}set loop(i){this._looop=i,this.texture?.source?.resource&&(this.texture.source.resource.loop=i);}get paused(){return this.texture?.source?.resource?.paused||false}set paused(i){i?this.pause():this.play();}pause(){this._paused=true,this.texture?.source?.resource&&this.texture.source.resource.pause();}play(){this._paused=false,this.texture?.source?.resource?.play&&typeof this.texture.source.resource.play=="function"&&this.texture.source.resource.play();}get currentTime(){return this.texture?.source?.resource?.currentTime||0}set currentTime(i){let n=this.duration;n&&i>=n&&(i=0),this._currentTime=i,this.texture?.source?.resource&&(this.texture.source.resource.currentTime=i);}restart(){this.currentTime=0;}get duration(){if(this.texture?.source?.resource)return this.texture.source.resource.duration||0}};U.add(ve,{name:Ei,getInstance:async(a,e)=>{let i;"textureData"in e&&e.textureData&&(i=e.textureData);let n=new a(void 0,i?.alias);return await n.setMemory(e),n},copyProperty:async(a,e)=>{await ha(a,e,{ignoreTexture:true});}});async function ha(a,e,i){await gi(a,e,{ignoreTexture:i?.ignoreTexture}),"loop"in e&&e.loop!==void 0&&(a.loop=e.loop),"currentTime"in e&&e.currentTime!==void 0&&(a.currentTime=e.currentTime),"paused"in e&&e.paused!==void 0&&(a.paused=e.paused);}var ya=Ci(ba());function ei(a){let e=Ce__default.default.Assets.cache.has(a)?Ce__default.default.Assets.get(a):null;return e instanceof Ce__default.default.Texture&&(a=e.source?.label||a),on(a)}function on(a){let e=a.split(".").pop()?.toLowerCase();if(!e)return false;for(let[i,n]of Object.entries(ya.default))if(n.extensions?.includes(e)&&i.startsWith("video/"))return true;return false}var Oe=class extends Ce.Container{constructor(i){i=te(i);let n,t,o;i&&"anchor"in i&&i?.anchor!==void 0&&(o=i.anchor,delete i.anchor),i&&"align"in i&&i?.align!==void 0&&(n=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(t=i.percentagePosition,delete i.percentagePosition);super(i);b(this,"pixivnId",Re);b(this,"onEventsHandlers",{});b(this,"_anchor");b(this,"_align");b(this,"_percentagePosition");this.pixivnId=this.constructor.prototype.pixivnId||Re,o&&(this.anchor=o),n&&(this.align=n),t&&(this.percentagePosition=t);}get memory(){return {...je(this,{childrenExport:true}),anchor:this._anchor?this.anchor:void 0,align:this._align,percentagePosition:this._percentagePosition}}async setMemory(i){await this.importChildren(i),await ne(this,i),this.reloadAnchor(),this.reloadPosition();}async importChildren(i){for(let n=0;n<i.elements.length;n++){let t=i.elements[n],o=await mi(t);this.addChild(o);}}on(i,n,t){return _e(i,this,n),super.on(i,(...o)=>n(...o,this),t)}get anchor(){let i=super.pivot.x/this.width,n=super.pivot.y/this.height;return {x:i,y:n}}set anchor(i){typeof i=="number"?this._anchor={x:i,y:i}:this._anchor=i,this.reloadAnchor();}reloadAnchor(){this._anchor&&super.pivot.set(this._anchor.x*this.width,this._anchor.y*this.height);}get pivot(){return super.pivot}set pivot(i){this._anchor=void 0,super.pivot=i;}set align(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),typeof i=="number"?(this._align.x=i,this._align.y=i):(i.x!==void 0&&(this._align.x=i.x),i.y!==void 0&&(this._align.y=i.y)),this.reloadPosition();}get align(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return {x:exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x),y:exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}}set xAlign(i){this._percentagePosition&&(this._percentagePosition=void 0),this._align===void 0&&(this._align={}),this._align.x=i,this.reloadPosition();}get xAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)}set yAlign(i){this._percentagePosition&&(this._percentagePosition=void 0),this._align===void 0&&(this._align={}),this._align.y=i,this.reloadPosition();}get yAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}set percentagePosition(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),typeof i=="number"?(this._percentagePosition.x=i,this._percentagePosition.y=i):(i.x!==void 0&&(this._percentagePosition.x=i.x),i.y!==void 0&&(this._percentagePosition.y=i.y)),this.reloadPosition();}get percentagePosition(){return {x:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x),y:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}}set percentageX(i){this._align&&(this._align=void 0),this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.x=i,this.reloadPosition();}get percentageX(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x)}set percentageY(i){this._align&&(this._align=void 0),this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.y=i,this.reloadPosition();}get percentageY(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}get positionType(){return this._align?"align":this._percentagePosition?"percentage":"pixel"}get positionInfo(){return this._align?{x:this._align.x||0,y:this._align.y||0,type:"align"}:this._percentagePosition?{x:this._percentagePosition.x||0,y:this._percentagePosition.y||0,type:"percentage"}:{x:this.x,y:this.y,type:"pixel"}}set positionInfo(i){i.type==="align"?this.align={x:i.x,y:i.y}:i.type==="percentage"?this.percentagePosition={x:i.x,y:i.y}:this.position.set(i.x,i.y);}reloadPosition(){if(this._align){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);this._align.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",this._align.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0)),this._align.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",this._align.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0));}else this._percentagePosition&&(this._percentagePosition.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",this._percentagePosition.x)),this._percentagePosition.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",this._percentagePosition.y)));}get position(){return super.position}set position(i){this._align=void 0,this._percentagePosition=void 0,super.position=i;}get x(){return super.x}set x(i){this._align=void 0,this._percentagePosition=void 0,super.x=i;}get y(){return super.y}set y(i){this._align=void 0,this._percentagePosition=void 0,super.y=i;}};U.add(Oe,{name:Re,copyProperty:async(a,e)=>await ne(a,e)});var V=class extends Oe{constructor(i,n=[]){i=te(i);let t,o,r;i&&"anchor"in i&&i?.anchor!==void 0&&(r=i.anchor,delete i.anchor),i&&"align"in i&&i?.align!==void 0&&(t=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(o=i.percentagePosition,delete i.percentagePosition);super(i);b(this,"pixivnId",ti);b(this,"_loadIsStarted",false);i=te(i),n&&n.forEach(u=>{let l;ei(u)?l=new ve(void 0,u):l=new D(void 0,u),this.addChild(l);}),r&&(this.anchor=r),t&&(this.align=t),o&&(this.percentagePosition=o);}get memory(){return {...super.memory,pixivnId:ti,loadIsStarted:this._loadIsStarted}}async setMemory(i){await this.importChildren(i),await wa(this,i),this.reloadAnchor(),this.reloadPosition();}get loadIsStarted(){return this._loadIsStarted}async load(){this._loadIsStarted=true;let i=Array(this.children.length);for(let n=0;n<this.children.length;n++)i[n]=this.children[n].load();return Promise.all(i).then(()=>{this._loadIsStarted=false,this.reloadAnchor(),this.reloadPosition();}).catch(n=>{this._loadIsStarted=false,P.error("Error into ImageContainer.load()",n);})}get texture(){return this.children.length>0?this.children[0].texture:new Ce__default.default.Texture}get haveEmptyTexture(){return this.children.some(i=>i.texture._source.label==="EMPTY")}};U.add(V,{name:ti,copyProperty:async(a,e)=>await wa(a,e)});async function wa(a,e){e=te(e),ne(a,e,{end:async()=>{"loadIsStarted"in e&&e.loadIsStarted&&await a.load();}});}var bi=class{constructor(...e){b(this,"pixivnId","canvas_element_id_not_set");}get memory(){throw new core.PixiError("not_implemented","The method CanvasBaseItem.memory must be overridden")}setMemory(e){throw new core.PixiError("not_implemented","The method CanvasBaseItem.setMemory must be overridden")}};var ze=class extends Ce__default.default.Text{constructor(i){i=te(i);let n,t;i&&"align"in i&&i?.align!==void 0&&(n=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(t=i.percentagePosition,delete i.percentagePosition);super(i);b(this,"pixivnId",qe);b(this,"onEventsHandlers",{});b(this,"_align");b(this,"_percentagePosition");this.pixivnId=this.constructor.prototype.pixivnId||qe,n&&(this.align=n),t&&(this.percentagePosition=t);}get memory(){return {...Ui(this),pixivnId:this.pixivnId,align:this._align,percentagePosition:this._percentagePosition}}async setMemory(i){await ln(this,i),this.reloadPosition();}on(i,n,t){return _e(i,this,n),super.on(i,(...o)=>n(...o,this),t)}set align(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),typeof i=="number"?(this._align.x=i,this._align.y=i):(i.x!==void 0&&(this._align.x=i.x),i.y!==void 0&&(this._align.y=i.y)),this.reloadPosition();}get align(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return {x:exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x),y:exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}}set xAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.x=i,this.reloadPosition();}get xAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)}set yAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.y=i,this.reloadPosition();}get yAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}set percentagePosition(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),typeof i=="number"?(this._percentagePosition.x=i,this._percentagePosition.y=i):(i.x!==void 0&&(this._percentagePosition.x=i.x),i.y!==void 0&&(this._percentagePosition.y=i.y)),this.reloadPosition();}get percentagePosition(){return {x:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x),y:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}}get percentageX(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x)}set percentageX(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.x=i,this.reloadPosition();}get percentageY(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}set percentageY(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.y=i,this.reloadPosition();}get positionType(){return this._align?"align":this._percentagePosition?"percentage":"pixel"}get positionInfo(){return this._align?{x:this._align.x||0,y:this._align.y||0,type:"align"}:this._percentagePosition?{x:this._percentagePosition.x||0,y:this._percentagePosition.y||0,type:"percentage"}:{x:this.x,y:this.y,type:"pixel"}}set positionInfo(i){i.type==="align"?this.align={x:i.x,y:i.y}:i.type==="percentage"?this.percentagePosition={x:i.x,y:i.y}:this.position.set(i.x,i.y);}reloadPosition(){if(this._align){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);this._align.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",this._align.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)),this._align.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",this._align.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y));}else this._percentagePosition&&(this._percentagePosition.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",this._percentagePosition.x)),this._percentagePosition.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",this._percentagePosition.y)));}get position(){return super.position}set position(i){this._align=void 0,this._percentagePosition=void 0,super.position=i;}get x(){return super.x}set x(i){this._align=void 0,this._percentagePosition=void 0,super.x=i;}get y(){return super.y}set y(i){this._align=void 0,this._percentagePosition=void 0,super.y=i;}};U.add(ze,{name:qe});async function ln(a,e){"text"in e&&e.text!==void 0&&(a.text=e.text),await ne(a,e,{end:()=>{"style"in e&&e.style!==void 0&&(a.style=e.style);}}),"anchor"in e&&e.anchor!==void 0&&(typeof e.anchor=="number"?a.anchor.set(e.anchor,e.anchor):a.anchor.set(e.anchor.x,e.anchor.y)),"resolution"in e&&e.resolution!==void 0&&(a.resolution=e.resolution),"anchor"in e&&e.anchor!==void 0&&(typeof e.anchor=="number"?a.anchor.set(e.anchor,e.anchor):a.anchor.set(e.anchor.x,e.anchor.y)),"align"in e&&e.align!==void 0&&(a.align=e.align),"percentagePosition"in e&&e.percentagePosition!==void 0&&(a.percentagePosition=e.percentagePosition),"roundPixels"in e&&e.roundPixels!==void 0&&(a.roundPixels=e.roundPixels);}async function un(a,e={},i){let n=h.find(a);if(!n){P.error(`The element with the alias ${a} does not exist. So the shake effect can't be applied.`);return}let t={x:n.position.x,y:n.position.y},{shakeType:o="horizontal",maxShockSize:r=10,shocksNumber:u=10,...l}=e,c=u-1;if(c<2){P.error("The number of shocks must be at least 3.");return}let p=Math.floor(c/2),d=Math.ceil(c/2),x=[];for(let k=0;k<p;k++){let I=r*(k+1)/p;o==="horizontal"?k%2!==0?x.push(t.x+I):x.push(t.x-I):k%2!==0?x.push(t.y+I):x.push(t.y-I);}let g=p%2===0;for(let k=d;k>0;k--){let I=r*(k+1)/(d-1);o==="horizontal"?k%2===0&&!g||k%2!==0&&g?x.push(t.x-I):x.push(t.x+I):k%2===0&&!g||k%2!==0&&g?x.push(t.y-I):x.push(t.y+I);}let T;if(o==="horizontal"?(x.push(t.x),T=h.animate(a,{x},l,i)):(x.push(t.y),T=h.animate(a,{y:x},l,i)),T)return [T]}function yi(a,e,i){let n={...h.find(a)?.memory,...i},t=new V(i,e);return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}async function dn(a,e,i){let n={...h.find(a)?.memory,...i},t=new V(i,e);return await t.load(),n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}function wi(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The image ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new D(i,e);return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}async function mn(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The image ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new D(i,e);return await t.load(),n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}function ki(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The video ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new ve(i,e);return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}async function xn(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The video ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new ve(i,e);return await t.load(),n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}function Gi(a,e){if(a.type==="align"){let i,n;e instanceof Ce__default.default.Sprite&&(i=e.anchor.x,n=e.anchor.y);let t=exports.CanvasPropertyUtility.getSuperPoint(e.pivot,e.angle),o=exports.CanvasPropertyUtility.getSuperPoint(e.scale,e.angle);a.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",a.x,exports.CanvasPropertyUtility.getSuperWidth(e),t.x,o.x<0,i),a.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",a.y,exports.CanvasPropertyUtility.getSuperHeight(e),t.y,o.y<0,n);}return a.type==="percentage"&&(a.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",a.x),a.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",a.y)),{x:a.x,y:a.y}}function ii(a,e,i){if(typeof e=="string")return ei(e)?ki(a,e,i):wi(a,e,i);if(Array.isArray(e))return yi(a,e,i);if(typeof e=="object"&&"value"in e&&"options"in e){if(typeof e.value=="string")return ei(e.value)?ki(a,e.value,{...e.options,zIndex:i.zIndex}):wi(a,e.value,{...e.options,zIndex:i.zIndex});if(Array.isArray(e.value))return yi(a,e.value,{...e.options,zIndex:i.zIndex})}return h.add(a,e,i),e}async function _a(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{completeOnContinue:o=t,tickerIdToResume:r=[],...u}=i,l=[];e||(e=a),typeof r=="string"&&(r=[r]);let c,p=h.find(a);if(p&&(c=a+"_temp_disolve",h.editAlias(a,c)),e=ii(a,e,{zIndex:p?h.gameLayer.getChildIndex(p):void 0}),c&&h.copyCanvasElementProperty(c,a),c&&h.transferTickers(c,a,"duplicate"),e.alpha=0,c){let x=Ti(c,{...i,autoplay:false,completeOnContinue:o},n);x&&(l.push(...x),r.push(...x));}let d=h.animate(a,{alpha:1},{...u,tickerIdToResume:r,completeOnContinue:o},n);if(d&&l.push(d),(e instanceof D||e instanceof V)&&e.haveEmptyTexture&&await e.load(),l.length>0)return l}function Ti(a,e={},i){let{forceCompleteBeforeNext:n=true}=e,{completeOnContinue:t=n,aliasToRemoveAfter:o=[],...r}=e;typeof o=="string"&&(o=[o]),o.push(a);let u=h.animate(a,{alpha:0},{...r,aliasToRemoveAfter:o,completeOnContinue:t},i);if(u)return [u]}async function hn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{completeOnContinue:o=t,aliasToRemoveAfter:r=[],...u}=i,l=[];e||(e=a),typeof r=="string"&&(r=[r]);let c=h.find(a);if(!c)return _a(a,e,i,n);let p=a+"_temp_fade";h.editAlias(a,p),r.push(p),e=ii(a,e,{zIndex:c?h.gameLayer.getChildIndex(c):void 0}),p&&h.copyCanvasElementProperty(p,a),p&&h.transferTickers(p,a,"duplicate"),e.alpha=0;let d=h.animate(a,{alpha:1},{...u,aliasToRemoveAfter:r,completeOnContinue:o},n);if(d){let x=Ti(p,{...i,tickerIdToResume:d,completeOnContinue:o},n);x&&l.push(...x),l.push(d),h.pauseTicker({id:d});}if((e instanceof D||e instanceof V)&&e.haveEmptyTexture&&await e.load(),l.length>0)return l}function vn(a,e={},i){return Ti(a,e,i)}async function gn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{direction:o="right",completeOnContinue:r=t,tickerIdToResume:u=[],aliasToRemoveAfter:l=[],removeOldComponentWithMoveOut:c,...p}=i,d=[];e||(e=a),typeof u=="string"&&(u=[u]),typeof l=="string"&&(l=[l]);let x,g=h.find(a);g&&(x=a+"_temp_movein",h.editAlias(a,x)),e=ii(a,e,{zIndex:g?h.gameLayer.getChildIndex(g):void 0}),x&&h.copyCanvasElementProperty(x,a),x&&h.transferTickers(x,a,"move");let T;if(e instanceof D||e instanceof V?T=e.positionInfo:T={x:e.x,y:e.y,type:"pixel"},x)if(c){let m=Yi(x,{...i,autoplay:false,completeOnContinue:r},n);m&&(d.push(...m),u.push(...m));}else l.push(x);switch((e instanceof D||e instanceof V)&&e.haveEmptyTexture&&await e.load(),o){case "up":e.y=h.height+e.height;break;case "down":e.y=-e.height;break;case "left":e.x=h.width+e.width;break;case "right":e.x=-e.width;break}let k=h.pauseTicker({canvasAlias:a});u.push(...k);let I=h.animate(a,Gi(T,e),{...p,tickerIdToResume:u,aliasToRemoveAfter:l,completeOnContinue:r},n);if(I&&d.push(I),d.length>0)return d}function Yi(a,e={},i){let{forceCompleteBeforeNext:n=true}=e,{direction:t="right",completeOnContinue:o=n,aliasToRemoveAfter:r=[],...u}=e;typeof r=="string"&&(r=[r]),r.push(a);let l=h.find(a);if(!l){P.warn(`The canvas component "${a}" is not found.`);return}let c={x:l.x,y:l.y};switch(t){case "up":c.y=-l.height;break;case "down":c.y=h.height+l.height;break;case "left":c.x=-l.width;break;case "right":c.x=h.width+l.width;break}h.pauseTicker({canvasAlias:a});let p=h.animate(a,c,{...u,aliasToRemoveAfter:r,completeOnContinue:o},i);if(p)return [p]}async function bn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{direction:o="right",completeOnContinue:r=t,tickerIdToResume:u=[],aliasToRemoveAfter:l=[],...c}=i,p=[];e||(e=a),typeof u=="string"&&(u=[u]),typeof l=="string"&&(l=[l]);let d,x=h.find(a);x&&(d=a+"_temp_zoom",h.editAlias(a,d)),e=ii(a,e,{zIndex:x?h.gameLayer.getChildIndex(x):void 0}),d&&h.copyCanvasElementProperty(d,a),d&&h.transferTickers(d,a,"move");let g;e instanceof D||e instanceof V?g=e.positionInfo:g={x:e.x,y:e.y,type:"pixel"};let T={x:e.pivot.x,y:e.pivot.y},k={x:e.scale.x,y:e.scale.y};if(d)if(i.removeOldComponentWithZoomOut){let w=Ca(d,{...i,autoplay:false,completeOnContinue:r},n);w&&(p.push(...w),u.push(...w));}else l.push(d);(e instanceof D||e instanceof V)&&e.haveEmptyTexture&&await e.load(),o=="up"?(e.pivot.y=h.height-e.y,e.pivot.x=h.width/2-e.x,e.y=h.height,e.x=h.width/2):o=="down"?(e.pivot.y=0-e.y,e.pivot.x=h.width/2-e.x,e.y=0,e.x=h.width/2):o=="left"?(e.pivot.x=h.width-e.x,e.pivot.y=h.height/2-e.y,e.x=h.width,e.y=h.height/2):o=="right"&&(e.pivot.x=0-e.x,e.pivot.y=h.height/2-e.y,e.x=0,e.y=h.height/2),e.pivot=exports.CanvasPropertyUtility.getPointBySuperPoint(e.pivot,e.angle),e.scale.set(0);let I=h.pauseTicker({canvasAlias:a});u.push(...I);let m=h.animate(a,{...Gi(g,e),pivotX:T.x,pivotY:T.y,scaleX:k.x,scaleY:k.y},{...c,tickerIdToResume:u,aliasToRemoveAfter:l,completeOnContinue:r},n);if(m&&p.push(m),p.length>0)return p}function Ca(a,e={},i){let{forceCompleteBeforeNext:n=true}=e,{direction:t="right",completeOnContinue:o=n,aliasToRemoveAfter:r=[],...u}=e;typeof r=="string"&&(r=[r]),r.push(a);let l=h.find(a);if(!l){P.warn(`The canvas component "${a}" is not found.`);return}let c={x:l.x,y:l.y},p={x:l.pivot.x,y:l.pivot.y};t=="down"?(c.y=h.height,c.x=h.width/2,p.y=h.height-c.y,p.x=h.width/2-c.x):t=="up"?(c.y=0,c.x=h.width/2,p.y=0-c.y,p.x=h.width/2-c.x):t=="right"?(c.x=h.width,c.y=h.height/2,p.x=h.width-c.x,p.y=h.height/2-c.y):t=="left"&&(c.x=0,c.y=h.height/2,p.x=0-c.x,p.y=h.height/2-c.y),p=exports.CanvasPropertyUtility.getPointBySuperPoint(p,l.angle),h.pauseTicker({canvasAlias:a});let d=h.animate(a,{...c,pivotX:p.x,pivotY:p.y,scaleX:0,scaleY:0},{...u,aliasToRemoveAfter:r,completeOnContinue:o},i);if(d)return [d]}async function yn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{direction:o="right",completeOnContinue:r=t,tickerIdToResume:u=[],...l}=i,c=[];e||(e=a),typeof u=="string"&&(u=[u]);let p,d=h.find(a);d&&(p=a+"_temp_push",h.editAlias(a,p)),e=ii(a,e,{zIndex:d?h.gameLayer.getChildIndex(d):void 0}),p&&h.copyCanvasElementProperty(p,a),p&&h.transferTickers(p,a,"move");let x;switch((e instanceof D||e instanceof V)&&e.haveEmptyTexture?x=e.positionInfo:x={x:e.x,y:e.y,type:"pixel"},o){case "up":e.y=h.height+e.height;break;case "down":e.y=-e.height;break;case "left":e.x=h.width+e.width;break;case "right":e.x=-e.width;break}let g=h.pauseTicker({canvasAlias:a});if(u.push(...g),p){let k=ja(p,{...i,direction:o,completeOnContinue:r});k&&c.push(...k);}let T=h.animate(a,Gi(x,e),{...l,tickerIdToResume:u,completeOnContinue:r},n);if(T&&c.push(T),(e instanceof D||e instanceof V)&&e.haveEmptyTexture&&await e.load(),c.length>0)return c}function ja(a,e={direction:"right"},i){return Yi(a,e,i)}function wn(a,e,i){let n={...h.find(a)?.memory,...i},t=new ze({text:e,...i});return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}var Aa=Ci(Mi());var Pi=class{constructor(e,i){b(this,"alias");b(this,"id");b(this,"args");b(this,"duration");b(this,"priority");b(this,"ticker",new Ce__default.default.Ticker);b(this,"canvasElementAliases",[]);b(this,"fnValue");this.alias=this.constructor.prototype.id;let{duration:n,priority:t,id:o=this.generateTickerId(this.alias,i),canvasElementAliases:r=[]}=i||{};this.args=e,this.duration=n,this.priority=t,this.id=o,this.canvasElementAliases=r;}generateTickerId(...e){try{return (0,Aa.default)(JSON.stringify(e)).toString()+"_"+Math.random().toString(36).substring(7)}catch(i){throw new core.PixiError("not_json_serializable",`Error to generate ticker id: ${i}`)}}complete(e){this.stop();}stop(){let e=this.fnValue;if(!e){P.warn("TickerBase.stop() called without fnValue set. This may cause issues.");return}this.ticker.remove(e,null);}start(){let e=this.id,i=()=>{let{createdByTicketSteps:n}=f._currentTickers[e],t=this.canvasElementAliases;if(n){if(h.isTickerPaused(n.canvasElementAlias,n.id))return}else t=t.filter(o=>!h.isTickerPaused(o,e));return this.fn(this.ticker,this.args,t,e)};this.fnValue=i,this.ticker.add(i,null,this.priority),this.ticker.start();}pause(){this.ticker.stop();}play(){this.ticker.start();}get paused(){return !this.ticker.started}};var {Assets:nr,Color:tr,Rectangle:sr,TextStyle:or,Texture:rr,UPDATE_PRIORITY:cr}=Ce__default.default,h=new Ze;$.init({getScreen:()=>h.screen});/*! Bundled license information:
1
+ 'use strict';var Ce=require('@drincs/pixi-vn/pixi.js'),core=require('@drincs/pixi-vn/core'),devtools=require('@pixi/devtools');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ce__default=/*#__PURE__*/_interopDefault(Ce);var Ea=Object.create;var Ii=Object.defineProperty;var Ma=Object.getOwnPropertyDescriptor;var Oa=Object.getOwnPropertyNames;var za=Object.getPrototypeOf,Ba=Object.prototype.hasOwnProperty;var $i=a=>{throw TypeError(a)};var Ra=(a,e,i)=>e in a?Ii(a,e,{enumerable:true,configurable:true,writable:true,value:i}):a[e]=i;var _i=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(e,i)=>(typeof require<"u"?require:e)[i]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var ai=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports);var Da=(a,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Oa(e))!Ba.call(a,t)&&t!==i&&Ii(a,t,{get:()=>e[t],enumerable:!(n=Ma(e,t))||n.enumerable});return a};var Ci=(a,e,i)=>(i=a!=null?Ea(za(a)):{},Da(Ii(i,"default",{value:a,enumerable:true}),a));var y=(a,e,i)=>Ra(a,typeof e!="symbol"?e+"":e,i),ji=(a,e,i)=>e.has(a)||$i("Cannot "+i);var s=(a,e,i)=>(ji(a,e,"read from private field"),i?i.call(a):e.get(a)),O=(a,e,i)=>e.has(a)?$i("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,i),_=(a,e,i,n)=>(ji(a,e,"write to private field"),e.set(a,i),i),S=(a,e,i)=>(ji(a,e,"access private method"),i);var ni=(a,e,i,n)=>({set _(t){_(a,e,t);},get _(){return s(a,e,n)}});var Ki=ai((si,Xi)=>{(function(a,e){typeof si=="object"?Xi.exports=si=e():typeof define=="function"&&define.amd?define([],e):a.CryptoJS=e();})(si,function(){var a=a||(function(e,i){var n;if(typeof window<"u"&&window.crypto&&(n=window.crypto),typeof self<"u"&&self.crypto&&(n=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(n=globalThis.crypto),!n&&typeof window<"u"&&window.msCrypto&&(n=window.msCrypto),!n&&typeof global<"u"&&global.crypto&&(n=global.crypto),!n&&typeof _i=="function")try{n=_i("crypto");}catch{}var t=function(){if(n){if(typeof n.getRandomValues=="function")try{return n.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof n.randomBytes=="function")try{return n.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function x(){}return function(k){var E;return x.prototype=k,E=new x,x.prototype=null,E}})(),r={},u=r.lib={},p=u.Base=(function(){return {extend:function(x){var k=o(this);return x&&k.mixIn(x),(!k.hasOwnProperty("init")||this.init===k.init)&&(k.init=function(){k.$super.init.apply(this,arguments);}),k.init.prototype=k,k.$super=this,k},create:function(){var x=this.extend();return x.init.apply(x,arguments),x},init:function(){},mixIn:function(x){for(var k in x)x.hasOwnProperty(k)&&(this[k]=x[k]);x.hasOwnProperty("toString")&&(this.toString=x.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),c=u.WordArray=p.extend({init:function(x,k){x=this.words=x||[],k!=i?this.sigBytes=k:this.sigBytes=x.length*4;},toString:function(x){return (x||d).stringify(this)},concat:function(x){var k=this.words,E=x.words,A=this.sigBytes,M=x.sigBytes;if(this.clamp(),A%4)for(var D=0;D<M;D++){var fe=E[D>>>2]>>>24-D%4*8&255;k[A+D>>>2]|=fe<<24-(A+D)%4*8;}else for(var V=0;V<M;V+=4)k[A+V>>>2]=E[V>>>2];return this.sigBytes+=M,this},clamp:function(){var x=this.words,k=this.sigBytes;x[k>>>2]&=4294967295<<32-k%4*8,x.length=e.ceil(k/4);},clone:function(){var x=p.clone.call(this);return x.words=this.words.slice(0),x},random:function(x){for(var k=[],E=0;E<x;E+=4)k.push(t());return new c.init(k,x)}}),l=r.enc={},d=l.Hex={stringify:function(x){for(var k=x.words,E=x.sigBytes,A=[],M=0;M<E;M++){var D=k[M>>>2]>>>24-M%4*8&255;A.push((D>>>4).toString(16)),A.push((D&15).toString(16));}return A.join("")},parse:function(x){for(var k=x.length,E=[],A=0;A<k;A+=2)E[A>>>3]|=parseInt(x.substr(A,2),16)<<24-A%8*4;return new c.init(E,k/2)}},m=l.Latin1={stringify:function(x){for(var k=x.words,E=x.sigBytes,A=[],M=0;M<E;M++){var D=k[M>>>2]>>>24-M%4*8&255;A.push(String.fromCharCode(D));}return A.join("")},parse:function(x){for(var k=x.length,E=[],A=0;A<k;A++)E[A>>>2]|=(x.charCodeAt(A)&255)<<24-A%4*8;return new c.init(E,k)}},v=l.Utf8={stringify:function(x){try{return decodeURIComponent(escape(m.stringify(x)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(x){return m.parse(unescape(encodeURIComponent(x)))}},b=u.BufferedBlockAlgorithm=p.extend({reset:function(){this._data=new c.init,this._nDataBytes=0;},_append:function(x){typeof x=="string"&&(x=v.parse(x)),this._data.concat(x),this._nDataBytes+=x.sigBytes;},_process:function(x){var k,E=this._data,A=E.words,M=E.sigBytes,D=this.blockSize,fe=D*4,V=M/fe;x?V=e.ceil(V):V=e.max((V|0)-this._minBufferSize,0);var se=V*D,Be=e.min(se*4,M);if(se){for(var Si=0;Si<se;Si+=D)this._doProcessBlock(A,Si);k=A.splice(0,se),E.sigBytes-=Be;}return new c.init(k,Be)},clone:function(){var x=p.clone.call(this);return x._data=this._data.clone(),x},_minBufferSize:0});u.Hasher=b.extend({cfg:p.extend(),init:function(x){this.cfg=this.cfg.extend(x),this.reset();},reset:function(){b.reset.call(this),this._doReset();},update:function(x){return this._append(x),this._process(),this},finalize:function(x){x&&this._append(x);var k=this._doFinalize();return k},blockSize:512/32,_createHelper:function(x){return function(k,E){return new x.init(E).finalize(k)}},_createHmacHelper:function(x){return function(k,E){return new I.HMAC.init(x,E).finalize(k)}}});var I=r.algo={};return r})(Math);return a});});var Mi=ai((oi,Ji)=>{(function(a,e){typeof oi=="object"?Ji.exports=oi=e(Ki()):typeof define=="function"&&define.amd?define(["./core"],e):e(a.CryptoJS);})(oi,function(a){return (function(){var e=a,i=e.lib,n=i.WordArray,t=i.Hasher,o=e.algo,r=[],u=o.SHA1=t.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(p,c){for(var l=this._hash.words,d=l[0],m=l[1],v=l[2],b=l[3],T=l[4],I=0;I<80;I++){if(I<16)r[I]=p[c+I]|0;else {var x=r[I-3]^r[I-8]^r[I-14]^r[I-16];r[I]=x<<1|x>>>31;}var k=(d<<5|d>>>27)+T+r[I];I<20?k+=(m&v|~m&b)+1518500249:I<40?k+=(m^v^b)+1859775393:I<60?k+=(m&v|m&b|v&b)-1894007588:k+=(m^v^b)-899497514,T=b,b=v,v=m<<30|m>>>2,m=d,d=k;}l[0]=l[0]+d|0,l[1]=l[1]+m|0,l[2]=l[2]+v|0,l[3]=l[3]+b|0,l[4]=l[4]+T|0;},_doFinalize:function(){var p=this._data,c=p.words,l=this._nDataBytes*8,d=p.sigBytes*8;return c[d>>>5]|=128<<24-d%32,c[(d+64>>>9<<4)+14]=Math.floor(l/4294967296),c[(d+64>>>9<<4)+15]=l,p.sigBytes=c.length*4,this._process(),this._hash},clone:function(){var p=t.clone.call(this);return p._hash=this._hash.clone(),p}});e.SHA1=t._createHelper(u),e.HmacSHA1=t._createHmacHelper(u);})(),a.SHA1});});var va=ai((xs,sn)=>{sn.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/3gpp-ims+xml":{source:"iana",compressible:true},"application/3gpphal+json":{source:"iana",compressible:true},"application/3gpphalforms+json":{source:"iana",compressible:true},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/ace+json":{source:"iana",compressible:true},"application/ace-groupcomm+cbor":{source:"iana"},"application/ace-trl+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:true},"application/aif+cbor":{source:"iana"},"application/aif+json":{source:"iana",compressible:true},"application/alto-cdni+json":{source:"iana",compressible:true},"application/alto-cdnifilter+json":{source:"iana",compressible:true},"application/alto-costmap+json":{source:"iana",compressible:true},"application/alto-costmapfilter+json":{source:"iana",compressible:true},"application/alto-directory+json":{source:"iana",compressible:true},"application/alto-endpointcost+json":{source:"iana",compressible:true},"application/alto-endpointcostparams+json":{source:"iana",compressible:true},"application/alto-endpointprop+json":{source:"iana",compressible:true},"application/alto-endpointpropparams+json":{source:"iana",compressible:true},"application/alto-error+json":{source:"iana",compressible:true},"application/alto-networkmap+json":{source:"iana",compressible:true},"application/alto-networkmapfilter+json":{source:"iana",compressible:true},"application/alto-propmap+json":{source:"iana",compressible:true},"application/alto-propmapparams+json":{source:"iana",compressible:true},"application/alto-tips+json":{source:"iana",compressible:true},"application/alto-tipsparams+json":{source:"iana",compressible:true},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:true},"application/alto-updatestreamparams+json":{source:"iana",compressible:true},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/appinstaller":{compressible:false,extensions:["appinstaller"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/appx":{compressible:false,extensions:["appx"]},"application/appxbundle":{compressible:false,extensions:["appxbundle"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:true,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:true,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:true,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:true,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:true,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:true,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:true},"application/atsc-rsat+xml":{source:"iana",compressible:true,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:true},"application/automationml-aml+xml":{source:"iana",compressible:true,extensions:["aml"]},"application/automationml-amlx+zip":{source:"iana",compressible:false,extensions:["amlx"]},"application/bacnet-xdd+zip":{source:"iana",compressible:false},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:false,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/bufr":{source:"iana"},"application/c2pa":{source:"iana"},"application/calendar+json":{source:"iana",compressible:true},"application/calendar+xml":{source:"iana",compressible:true,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:true},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:true},"application/ccxml+xml":{source:"iana",compressible:true,extensions:["ccxml"]},"application/cda+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/cdfx+xml":{source:"iana",compressible:true,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/ce+cbor":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:true},"application/cellml+xml":{source:"iana",compressible:true},"application/cfw":{source:"iana"},"application/cid-edhoc+cbor-seq":{source:"iana"},"application/city+json":{source:"iana",compressible:true},"application/city+json-seq":{source:"iana"},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:true},"application/clue_info+xml":{source:"iana",compressible:true},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:true},"application/coap-eap":{source:"iana"},"application/coap-group+json":{source:"iana",compressible:true},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/concise-problem-details+cbor":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:true},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cose-x509":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:true,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:true},"application/cstadata+xml":{source:"iana",compressible:true},"application/csvm+json":{source:"iana",compressible:true},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwl":{source:"iana",extensions:["cwl"]},"application/cwl+json":{source:"iana",compressible:true},"application/cwl+yaml":{source:"iana"},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:true},"application/dash+xml":{source:"iana",compressible:true,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:true,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:true,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:true},"application/dicom":{source:"iana",extensions:["dcm"]},"application/dicom+json":{source:"iana",compressible:true},"application/dicom+xml":{source:"iana",compressible:true},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:true},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:true,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dpop+jwt":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:true},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:true,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/eat+cwt":{source:"iana"},"application/eat+jwt":{source:"iana"},"application/eat-bun+cbor":{source:"iana"},"application/eat-bun+json":{source:"iana",compressible:true},"application/eat-ucs+cbor":{source:"iana"},"application/eat-ucs+json":{source:"iana",compressible:true},"application/ecmascript":{source:"apache",compressible:true,extensions:["ecma"]},"application/edhoc+cbor-seq":{source:"iana"},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:false},"application/edifact":{source:"iana",compressible:false},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:true},"application/elm+xml":{source:"iana",compressible:true},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/emergencycalldata.comment+xml":{source:"iana",compressible:true},"application/emergencycalldata.control+xml":{source:"iana",compressible:true},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.legacyesn+json":{source:"iana",compressible:true},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.veds+xml":{source:"iana",compressible:true},"application/emma+xml":{source:"iana",compressible:true,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:true,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/entity-statement+jwt":{source:"iana"},"application/epp+xml":{source:"iana",compressible:true},"application/epub+zip":{source:"iana",compressible:false,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:true},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdf":{source:"iana",extensions:["fdf"]},"application/fdt+xml":{source:"iana",compressible:true,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:true},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/fido.trusted-apps+json":{compressible:true},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:false},"application/framework-attributes+xml":{source:"iana",compressible:true},"application/geo+json":{source:"iana",compressible:true,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geopose+json":{source:"iana",compressible:true},"application/geoxacml+json":{source:"iana",compressible:true},"application/geoxacml+xml":{source:"iana",compressible:true},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:true,extensions:["gml"]},"application/gnap-binding-jws":{source:"iana"},"application/gnap-binding-jwsd":{source:"iana"},"application/gnap-binding-rotation-jws":{source:"iana"},"application/gnap-binding-rotation-jwsd":{source:"iana"},"application/gpx+xml":{source:"apache",compressible:true,extensions:["gpx"]},"application/grib":{source:"iana"},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:false,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:true},"application/hjson":{extensions:["hjson"]},"application/hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:true},"application/ibe-pkg-reply+xml":{source:"iana",compressible:true},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:true,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:true,extensions:["its"]},"application/java-archive":{source:"iana",compressible:false,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:false,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:false,extensions:["class"]},"application/javascript":{source:"apache",charset:"UTF-8",compressible:true,extensions:["js"]},"application/jf2feed+json":{source:"iana",compressible:true},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:true},"application/jrd+json":{source:"iana",compressible:true},"application/jscalendar+json":{source:"iana",compressible:true},"application/jscontact+json":{source:"iana",compressible:true},"application/json":{source:"iana",charset:"UTF-8",compressible:true,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:true},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:true,extensions:["jsonml"]},"application/jsonpath":{source:"iana"},"application/jwk+json":{source:"iana",compressible:true},"application/jwk-set+json":{source:"iana",compressible:true},"application/jwk-set+jwt":{source:"iana"},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:true},"application/kpml-response+xml":{source:"iana",compressible:true},"application/ld+json":{source:"iana",compressible:true,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:true,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/linkset":{source:"iana"},"application/linkset+json":{source:"iana",compressible:true},"application/load-control+xml":{source:"iana",compressible:true},"application/logout+jwt":{source:"iana"},"application/lost+xml":{source:"iana",compressible:true,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:true},"application/lpf+zip":{source:"iana",compressible:false},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:true,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:true,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:true,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:true,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:true},"application/mathml-presentation+xml":{source:"iana",compressible:true},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:true},"application/mbms-deregister+xml":{source:"iana",compressible:true},"application/mbms-envelope+xml":{source:"iana",compressible:true},"application/mbms-msk+xml":{source:"iana",compressible:true},"application/mbms-msk-response+xml":{source:"iana",compressible:true},"application/mbms-protection-description+xml":{source:"iana",compressible:true},"application/mbms-reception-report+xml":{source:"iana",compressible:true},"application/mbms-register+xml":{source:"iana",compressible:true},"application/mbms-register-response+xml":{source:"iana",compressible:true},"application/mbms-schedule+xml":{source:"iana",compressible:true},"application/mbms-user-service-description+xml":{source:"iana",compressible:true},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:true,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:true},"application/mediaservercontrol+xml":{source:"iana",compressible:true,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:true},"application/metalink+xml":{source:"apache",compressible:true,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:true,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:true,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:true,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:true,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:true,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4","mpg4","mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:true},"application/mrb-publish+xml":{source:"iana",compressible:true},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/msix":{compressible:false,extensions:["msix"]},"application/msixbundle":{compressible:false,extensions:["msixbundle"]},"application/msword":{source:"iana",compressible:false,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:true},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:true},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:true,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:true},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:true,extensions:["opf"]},"application/ogg":{source:"iana",compressible:false,extensions:["ogx"]},"application/ohttp-keys":{source:"iana"},"application/omdoc+xml":{source:"apache",compressible:true,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg","one","onea"]},"application/opc-nodeset+xml":{source:"iana",compressible:true},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:false},"application/p2p-overlay+xml":{source:"iana",compressible:true,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:true,extensions:["xer"]},"application/pdf":{source:"iana",compressible:false,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:false,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["sig","asc"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:true,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/postscript":{source:"iana",compressible:true,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:true},"application/private-token-issuer-directory":{source:"iana"},"application/private-token-request":{source:"iana"},"application/private-token-response":{source:"iana"},"application/problem+json":{source:"iana",compressible:true},"application/problem+xml":{source:"iana",compressible:true},"application/provenance+xml":{source:"iana",compressible:true,extensions:["provx"]},"application/provided-claims+jwt":{source:"iana"},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:false},"application/prs.implied-document+xml":{source:"iana",compressible:true},"application/prs.implied-executable":{source:"iana"},"application/prs.implied-object+json":{source:"iana",compressible:true},"application/prs.implied-object+json-seq":{source:"iana"},"application/prs.implied-object+yaml":{source:"iana"},"application/prs.implied-structure":{source:"iana"},"application/prs.mayfile":{source:"iana"},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.vcfbzip2":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:true,extensions:["xsf"]},"application/pskc+xml":{source:"iana",compressible:true,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:true},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:true,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:true},"application/rdf+xml":{source:"iana",compressible:true,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:true,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"apache"},"application/reputon+json":{source:"iana",compressible:true},"application/resolve-response+jwt":{source:"iana"},"application/resource-lists+xml":{source:"iana",compressible:true,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:true,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:true},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:true},"application/rls-services+xml":{source:"iana",compressible:true,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:true,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:true,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:true,extensions:["rusd"]},"application/rpki-checklist":{source:"iana"},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-signed-tal":{source:"iana"},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:true,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:true,extensions:["rss"]},"application/rtf":{source:"iana",compressible:true,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:true},"application/samlmetadata+xml":{source:"iana",compressible:true},"application/sarif+json":{source:"iana",compressible:true},"application/sarif-external-properties+json":{source:"iana",compressible:true},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:true,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:true},"application/scim+json":{source:"iana",compressible:true},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:true},"application/senml+xml":{source:"iana",compressible:true,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:true},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:true},"application/sensml+xml":{source:"iana",compressible:true,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:true},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:true,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:true},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"apache"},"application/smil+xml":{source:"iana",compressible:true,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:true},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:true,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:true},"application/spirits-event+xml":{source:"iana",compressible:true},"application/sql":{source:"iana",extensions:["sql"]},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:true,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:true,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:true,extensions:["ssdl"]},"application/sslkeylogfile":{source:"iana"},"application/ssml+xml":{source:"iana",compressible:true,extensions:["ssml"]},"application/st2110-41":{source:"iana"},"application/stix+json":{source:"iana",compressible:true},"application/stratum":{source:"iana"},"application/swid+cbor":{source:"iana"},"application/swid+xml":{source:"iana",compressible:true,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:true},"application/taxii+json":{source:"iana",compressible:true},"application/td+json":{source:"iana",compressible:true},"application/tei+xml":{source:"iana",compressible:true,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:true,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:true},"application/tm+json":{source:"iana",compressible:true},"application/tnauthlist":{source:"iana"},"application/toc+cbor":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{source:"iana",compressible:true,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/trust-chain+json":{source:"iana",compressible:true},"application/trust-mark+jwt":{source:"iana"},"application/trust-mark-delegation+jwt":{source:"iana"},"application/ttml+xml":{source:"iana",compressible:true,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:false,extensions:["ubj"]},"application/uccs+cbor":{source:"iana"},"application/ujcs+json":{source:"iana",compressible:true},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:true},"application/urc-ressheet+xml":{source:"iana",compressible:true,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:true,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:true},"application/vc":{source:"iana"},"application/vc+cose":{source:"iana"},"application/vc+jwt":{source:"iana"},"application/vcard+json":{source:"iana",compressible:true},"application/vcard+xml":{source:"iana",compressible:true},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:true,extensions:["1km"]},"application/vnd.1ob":{source:"iana"},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3a+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3ach+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc8+xml":{source:"iana",compressible:true},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.5gsa2x":{source:"iana"},"application/vnd.3gpp.5gsa2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gsv2x":{source:"iana"},"application/vnd.3gpp.5gsv2x-local-service-information":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:true},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:true},"application/vnd.3gpp.crs+xml":{source:"iana",compressible:true},"application/vnd.3gpp.current-location-discovery+xml":{source:"iana",compressible:true},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:true},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-regroup+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-regroup+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-regroup+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:true},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.pinapp-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.seal-group-doc+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-network-qos-management-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-ue-config-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-unicast-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.seal-user-profile-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:true},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:true},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:true},"application/vnd.3gpp.v2x":{source:"iana"},"application/vnd.3gpp.vae-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:true},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acm.addressxfer+json":{source:"iana",compressible:true},"application/vnd.acm.chatbot+json":{source:"iana",compressible:true},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:false,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:true,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"apache",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"apache"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:true},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:true},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:false,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.parquet":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.apexlang":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:true},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:true},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:true},"application/vnd.apple.installer+xml":{source:"iana",compressible:true,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:false,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"apache"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:true},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autodesk.fbx":{extensions:["fbx"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:true},"application/vnd.avistar+xml":{source:"iana",compressible:true},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:true,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:true},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:true},"application/vnd.belightsoft.lhzd+zip":{source:"iana",compressible:false},"application/vnd.belightsoft.lhzl+zip":{source:"iana",compressible:false},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:true},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:true},"application/vnd.bzip3":{source:"iana"},"application/vnd.c3voc.schedule+xml":{source:"iana",compressible:true},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:true},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:true,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:true,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.cncf.helm.chart.content.v1.tar+gzip":{source:"iana"},"application/vnd.cncf.helm.chart.provenance.v1.prov":{source:"iana"},"application/vnd.cncf.helm.config.v1+json":{source:"iana",compressible:true},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:true},"application/vnd.collection.doc+json":{source:"iana",compressible:true},"application/vnd.collection.next+json":{source:"iana",compressible:true},"application/vnd.comicbook+zip":{source:"iana",compressible:false},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:true},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:true,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:true},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:true},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:true},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:true},"application/vnd.cyclonedx+xml":{source:"iana",compressible:true},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:false},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:true,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datalog":{source:"iana"},"application/vnd.datapackage+json":{source:"iana",compressible:true},"application/vnd.dataresource+json":{source:"iana",compressible:true},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.dcmp+xml":{source:"iana",compressible:true,extensions:["dcmp"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:true,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:true},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:true},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:true},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:true},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:true},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:true},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.eln+zip":{source:"iana",compressible:false},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:true},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:true},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.erofs":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:false},"application/vnd.eszigno3+xml":{source:"iana",compressible:true,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:true},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:false},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:false},"application/vnd.etsi.cug+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:true},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:true},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:true},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:true},"application/vnd.etsi.sci+xml":{source:"iana",compressible:true},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:true},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:true},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:true},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:false},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:false},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"apache",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.fdsn.stationxml+xml":{source:"iana",charset:"XML-BASED",compressible:true},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:false},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.freelog.comic":{source:"iana"},"application/vnd.frogans.fnc":{source:"apache",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"apache",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:true},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:true},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.ga4gh.passport+jwt":{source:"iana"},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.genozip":{source:"iana"},"application/vnd.gentics.grd+json":{source:"iana",compressible:true},"application/vnd.gentoo.catmetadata+xml":{source:"iana",compressible:true},"application/vnd.gentoo.ebuild":{source:"iana"},"application/vnd.gentoo.eclass":{source:"iana"},"application/vnd.gentoo.gpkg":{source:"iana"},"application/vnd.gentoo.manifest":{source:"iana"},"application/vnd.gentoo.pkgmetadata+xml":{source:"iana",compressible:true},"application/vnd.gentoo.xpak":{source:"iana"},"application/vnd.geo+json":{source:"apache",compressible:true},"application/vnd.geocube+xml":{source:"apache",compressible:true},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.pinboard":{source:"iana"},"application/vnd.geogebra.slides":{source:"iana",extensions:["ggs"]},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.gnu.taler.exchange+json":{source:"iana",compressible:true},"application/vnd.gnu.taler.merchant+json":{source:"iana",compressible:true},"application/vnd.google-apps.audio":{},"application/vnd.google-apps.document":{compressible:false,extensions:["gdoc"]},"application/vnd.google-apps.drawing":{compressible:false,extensions:["gdraw"]},"application/vnd.google-apps.drive-sdk":{compressible:false},"application/vnd.google-apps.file":{},"application/vnd.google-apps.folder":{compressible:false},"application/vnd.google-apps.form":{compressible:false,extensions:["gform"]},"application/vnd.google-apps.fusiontable":{},"application/vnd.google-apps.jam":{compressible:false,extensions:["gjam"]},"application/vnd.google-apps.mail-layout":{},"application/vnd.google-apps.map":{compressible:false,extensions:["gmap"]},"application/vnd.google-apps.photo":{},"application/vnd.google-apps.presentation":{compressible:false,extensions:["gslides"]},"application/vnd.google-apps.script":{compressible:false,extensions:["gscript"]},"application/vnd.google-apps.shortcut":{},"application/vnd.google-apps.site":{compressible:false,extensions:["gsite"]},"application/vnd.google-apps.spreadsheet":{compressible:false,extensions:["gsheet"]},"application/vnd.google-apps.unknown":{},"application/vnd.google-apps.video":{},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:true,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:false,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"apache",compressible:true},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:false},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:true,extensions:["xdcf"]},"application/vnd.gpxsee.map+xml":{source:"iana",compressible:true},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:true},"application/vnd.hal+xml":{source:"iana",compressible:true,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:true,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:true},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:true},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.hsl":{source:"iana"},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:true},"application/vnd.hyper-item+json":{source:"iana",compressible:true},"application/vnd.hyperdrive+json":{source:"iana",compressible:true},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"apache"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"apache",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:false},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:false},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:true},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:true},"application/vnd.informix-visionary":{source:"apache"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:true},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.ipfs.ipns-record":{source:"iana"},"application/vnd.ipld.car":{source:"iana"},"application/vnd.ipld.dag-cbor":{source:"iana"},"application/vnd.ipld.dag-json":{source:"iana"},"application/vnd.ipld.raw":{source:"iana"},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:true},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:true,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:false},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kdl":{source:"iana"},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.keyman.kmp+zip":{source:"iana",compressible:false},"application/vnd.keyman.kmx":{source:"iana"},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:true},"application/vnd.las.las+xml":{source:"iana",compressible:true,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.ldev.productlicensing":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:true},"application/vnd.liberty-request+xml":{source:"iana",compressible:true},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:true,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:false},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:true},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:false},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.mdl":{source:"iana"},"application/vnd.mdl-mbsdf":{source:"iana"},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.medicalholodeck.recordxr":{source:"iana"},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mermaid":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:true},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:true},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.modl":{source:"iana"},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:true,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:false,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:true,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:true},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:true},"application/vnd.ms-outlook":{compressible:false,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:true},"application/vnd.ms-powerpoint":{source:"iana",compressible:false,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:true},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:true},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:true},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-visio.viewer":{extensions:["vdx"]},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:false,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msgpack":{source:"iana"},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:true},"application/vnd.nato.bindingdataobject+cbor":{source:"iana"},"application/vnd.nato.bindingdataobject+json":{source:"iana",compressible:true},"application/vnd.nato.bindingdataobject+xml":{source:"iana",compressible:true,extensions:["bdo"]},"application/vnd.nato.openxmlformats-package.iepd+zip":{source:"iana",compressible:false},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:true},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:true},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:true},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:true},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:true},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:true,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"apache",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:true},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oai.workflows":{source:"iana"},"application/vnd.oai.workflows+json":{source:"iana",compressible:true},"application/vnd.oai.workflows+yaml":{source:"iana"},"application/vnd.oasis.opendocument.base":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"apache",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:false,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:false,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:false,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:false,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-master-template":{source:"iana"},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:true},"application/vnd.oftn.l10n+json":{source:"iana",compressible:true},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:true},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:true},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:true},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:true},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:true},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:true},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:true},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:true},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:true},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.drm-trigger+xml":{source:"apache",compressible:true},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"apache",compressible:true},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:true},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:true,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:true},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:true},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:true},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:true},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:true},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:true},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.onvif.metadata":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:true,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:true,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openvpi.dspx+json":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:false,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:false,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:false,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:true},"application/vnd.oracle.resource+json":{source:"iana",compressible:true},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:true},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:true},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:true},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.procrate.brushset":{extensions:["brushset"]},"application/vnd.procreate.brush":{extensions:["brush"]},"application/vnd.procreate.dream":{extensions:["drm"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.pt.mundusmundi":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:true,extensions:["xhtm"]},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:true},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:true,extensions:["musicxml"]},"application/vnd.relpipe":{source:"iana"},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:true},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:true,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:true},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:true},"application/vnd.shopkick+json":{source:"iana",compressible:true},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:true},"application/vnd.sketchometry":{source:"iana"},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.smintio.portals.archive":{source:"iana"},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:true,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:true,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:true,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sybyl.mol2":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:true},"application/vnd.syft+json":{source:"iana",compressible:true},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:true},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:true},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:true},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uic.osdm+json":{source:"iana",compressible:true},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:true,extensions:["uoml","uo"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:true},"application/vnd.veraison.tsm-report+cbor":{source:"iana"},"application/vnd.veraison.tsm-report+json":{source:"iana",compressible:true},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:true},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw","vsdx","vtx"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vocalshaper.vsp4":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.wasmflow.wafl":{source:"iana"},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordlift":{source:"iana"},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:true},"application/vnd.wv.ssp+xml":{source:"iana",compressible:true},"application/vnd.xacml+json":{source:"iana",compressible:true},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xarin.cpj":{source:"iana"},"application/vnd.xecrets-encrypted":{source:"iana"},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:true},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:true,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:true,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:true,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:true},"application/voucher-jws+json":{source:"iana",compressible:true},"application/vp":{source:"iana"},"application/vp+cose":{source:"iana"},"application/vp+jwt":{source:"iana"},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:true,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:true,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:true},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:true,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:true,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:false,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:false,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:false,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blender":{extensions:["blend"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:false,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:false,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-compressed":{extensions:["rar"]},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:false},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:true,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:true,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:true,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:false,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:true,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-ipynb+json":{compressible:true,extensions:["ipynb"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:false,extensions:["jnlp"]},"application/x-javascript":{compressible:true},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:false,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:false},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:true,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:false,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:false,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:true,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:false,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:false,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:true,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:true,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:true,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:true,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:true,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:false,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:true,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:true,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:true,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:true,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:true},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:true,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:false,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zip-compressed":{extensions:["zip"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:true},"application/xaml+xml":{source:"apache",compressible:true,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:true,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:true,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:true,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:true,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:true},"application/xcap-ns+xml":{source:"iana",compressible:true,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:true},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:true},"application/xenc+xml":{source:"iana",compressible:true,extensions:["xenc"]},"application/xfdf":{source:"iana",extensions:["xfdf"]},"application/xhtml+xml":{source:"iana",compressible:true,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:true},"application/xliff+xml":{source:"iana",compressible:true,extensions:["xlf"]},"application/xml":{source:"iana",compressible:true,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:true,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:true},"application/xmpp+xml":{source:"iana",compressible:true},"application/xop+xml":{source:"iana",compressible:true,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:true,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:true,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:true,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:true,extensions:["mxml","xhvml","xvml","xvm"]},"application/yaml":{source:"iana"},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+cbor":{source:"iana"},"application/yang-data+json":{source:"iana",compressible:true},"application/yang-data+xml":{source:"iana",compressible:true},"application/yang-patch+json":{source:"iana",compressible:true},"application/yang-patch+xml":{source:"iana",compressible:true},"application/yang-sid+json":{source:"iana",compressible:true},"application/yin+xml":{source:"iana",compressible:true,extensions:["yin"]},"application/zip":{source:"iana",compressible:false,extensions:["zip"]},"application/zip+dotlottie":{extensions:["lottie"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:false,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana",extensions:["adts","aac"]},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:false,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flac":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:false},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/matroska":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/midi-clip":{source:"iana"},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:false,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:false,extensions:["m4a","mp4a","m4b"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:false,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:false,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"apache"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:false},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:false},"audio/vorbis":{source:"iana",compressible:false},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:false,extensions:["wav"]},"audio/wave":{compressible:false,extensions:["wav"]},"audio/webm":{source:"apache",compressible:false,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:false,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:false,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:true,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:true,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{source:"iana",compressible:false,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:false,extensions:["avif"]},"image/bmp":{source:"iana",compressible:true,extensions:["bmp","dib"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/dpx":{source:"iana",extensions:["dpx"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:false,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/j2c":{source:"iana"},"image/jaii":{source:"iana",extensions:["jaii"]},"image/jais":{source:"iana",extensions:["jais"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:false,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:false,extensions:["jpg","jpeg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:false,extensions:["jpm","jpgm"]},"image/jpx":{source:"iana",compressible:false,extensions:["jpx","jpf"]},"image/jxl":{source:"iana",extensions:["jxl"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:false,extensions:["jfif"]},"image/png":{source:"iana",compressible:false,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif","btf"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:true,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:false,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:true,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.clip":{source:"iana"},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:true,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:true,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"iana",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-adobe-dng":{extensions:["dng"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-emf":{source:"iana"},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:true,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:true,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-wmf":{source:"iana"},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:false},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/bhttp":{source:"iana"},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:false},"message/imdn+xml":{source:"iana",compressible:true},"message/mls":{source:"iana"},"message/news":{source:"apache"},"message/ohttp-req":{source:"iana"},"message/ohttp-res":{source:"iana"},"message/partial":{source:"iana",compressible:false},"message/rfc822":{source:"iana",compressible:true,extensions:["eml","mime","mht","mhtml"]},"message/s-http":{source:"apache"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"apache"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:true,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:true,extensions:["glb"]},"model/iges":{source:"iana",compressible:false,extensions:["igs","iges"]},"model/jt":{source:"iana",extensions:["jt"]},"model/mesh":{source:"iana",compressible:false,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/prc":{source:"iana",extensions:["prc"]},"model/step":{source:"iana",extensions:["step","stp","stpnc","p21","210"]},"model/step+xml":{source:"iana",compressible:true,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:false,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:false,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/u3d":{source:"iana",extensions:["u3d"]},"model/vnd.bary":{source:"iana",extensions:["bary"]},"model/vnd.cld":{source:"iana",extensions:["cld"]},"model/vnd.collada+xml":{source:"iana",compressible:true,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:true},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana",extensions:["pyo","pyox"]},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usda":{source:"iana",extensions:["usda"]},"model/vnd.usdz+zip":{source:"iana",compressible:false,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:false,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:false,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:false,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:true,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:false},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:false},"multipart/form-data":{source:"iana",compressible:false},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:false},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:false},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:true,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:true},"text/cmd":{compressible:true},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:true,extensions:["css"]},"text/csv":{source:"iana",compressible:true,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"apache"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/hl7v2":{source:"iana"},"text/html":{source:"iana",compressible:true,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",charset:"UTF-8",compressible:true,extensions:["js","mjs"]},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:true,extensions:["jsx"]},"text/less":{compressible:true,extensions:["less"]},"text/markdown":{source:"iana",compressible:true,extensions:["md","markdown"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:true,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:true,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:true,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/prs.texi":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:true,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:true,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:true,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:true,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:true,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.exchangeable":{source:"iana"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"apache"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.vcf":{source:"iana"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vnd.zoo.kcl":{source:"iana"},"text/vtt":{source:"iana",charset:"UTF-8",compressible:true,extensions:["vtt"]},"text/wgsl":{source:"iana",extensions:["wgsl"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:true},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:true},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:true,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:true,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:true,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:true,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:true,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:true,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/evc":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/h266":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/lottie+json":{source:"iana",compressible:true},"video/matroska":{source:"iana"},"video/matroska-3d":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts","m2t","m2ts","mts"]},"video/mp4":{source:"iana",compressible:false,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:false,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:false,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:false,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.planar":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"apache"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:false,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:false,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:false,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:false,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:true},"x-shader/x-vertex":{compressible:true}};});var ba=ai((fs,ga)=>{ga.exports=va();});var $e="repeat";var oe="__game_layer__",Re="Container",ti="ImageContainer",Ai="Image",De="Sprite",qe="Text",Ei="Video";var P;(t=>(t.log=(o,...r)=>console.log(`[Pixi\u2019VN] ${o}`,...r),t.warn=(o,...r)=>console.warn(`[Pixi\u2019VN] ${o}`,...r),t.error=(o,...r)=>console.error(`[Pixi\u2019VN] ${o}`,...r),t.info=(o,...r)=>console.info(`[Pixi\u2019VN] ${o}`,...r)))(P||(P={}));function ee(a){try{if(typeof a>"u")return a;let e=JSON.stringify(a);return JSON.parse(e)}catch(e){throw P.error("Error creating exportable element",a,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}var aa=Ci(Mi());function Zi(a,e){let i=0;return async(...n)=>{let t=Date.now();if(t-i>=e)return i=t,await a(...n)}}var La={extension:{type:"sceneProperties",name:"additional-positions"},testNode(a){return "xAlign"in a||"yAlign"in a||"percentageX"in a||"percentageY"in a||"positionType"in a},testProp(a){switch(a){case "xAlign":case "yAlign":case "percentageX":case "percentageY":case "positionType":return true;default:return false}},setProperty(a,e,i){switch(e){case "xAlign":"xAlign"in a&&(a.xAlign=i/100);break;case "yAlign":"yAlign"in a&&(a.yAlign=i/100);break;case "percentageX":"percentageX"in a&&(a.percentageX=i/100);break;case "percentageY":"percentageY"in a&&(a.percentageY=i/100);break}},getProperties(a){return [{value:a.positionType,prop:"positionType",entry:{section:"Transform",type:"text",label:"Position Type"}},{value:a.xAlign*100,prop:"xAlign",entry:{section:"Transform",type:"range",label:"X Align",tooltip:"0% is left, 100% is right",options:{min:0,max:100}}},{value:a.yAlign*100,prop:"yAlign",entry:{section:"Transform",type:"range",label:"Y Align",tooltip:"0% is top, 100% is bottom",options:{min:0,max:100}}},{value:a.percentageX*100,prop:"percentageX",entry:{section:"Transform",type:"range",label:"X Percentage Position",tooltip:"0% is left, 100% is right",options:{min:0,max:100}}},{value:a.percentageY*100,prop:"percentageY",entry:{section:"Transform",type:"range",label:"Y Percentage Position",tooltip:"0% is top, 100% is bottom",options:{min:0,max:100}}}]}},Qi=La;var C=class C{constructor(){}static get app(){if(!C._app)throw P.error("The canvas is not initialized"),new core.PixiError("invalid_usage","CanvasManagerStatic.app is undefined");return C._app}static get gameLayer(){let e=this.app.stage.getChildByLabel(oe);return e||(e=new Ce__default.default.Container,e.label=oe,this.app.stage.addChild(e)),e}static async init(e,i,n){let{id:t="pixi-vn-canvas",width:o=800,height:r=600,resolution:u=1,autoDensity:p=true,resizeMode:c="contain",...l}=i||{};return C.canvasWidth=o,C.canvasHeight=r,C._app=new Ce__default.default.Application,C.app.init({width:o,height:r,resolution:u,autoDensity:p,...l}).then(()=>{let{app:d=C.app,extensions:m=[],...v}=n||{};if(devtools.initDevtools({app:d,extensions:[Qi,...m],...v}),C._isInitialized=true,C.addCanvasIntoHTMLElement(e,t),c==="contain"){let b=Zi(()=>C.resize(),10);new ResizeObserver(b).observe(e),C.resize();}C.gameLayer;})}static addCanvasIntoHTMLElement(e,i){C._isInitialized?(e.appendChild(C.app.canvas),C.app.canvas.id=i):P.error("GameWindowManager is not initialized");}static addHtmlLayer(e,i,n={position:"absolute",pointerEvents:"none"}){let t=document.createElement("div");t.setAttribute("id",e),t.style.position=n.position,t.style.pointerEvents=n.pointerEvents;let o=i.appendChild(t);return C.htmlLayers.push(t),C.resize(),o}static removeHtmlLayer(e){let i=C.htmlLayers.find(n=>n.id===e);i&&(i.remove(),C.htmlLayers=C.htmlLayers.filter(n=>n.id!==e));}static getHtmlLayer(e){return C.htmlLayers.find(i=>i.id===e)}static async resize(){let e=C.canvasWidth,i=C.canvasHeight,n=C.app.resizeTo,t=C.app.canvas.style;n instanceof HTMLElement||(n=document.documentElement);let o,r;if(n===document.body||n===document.documentElement)o=document.documentElement.clientWidth||window.innerWidth,r=document.documentElement.clientHeight||window.innerHeight;else {let v=n.getBoundingClientRect();o=v.width||n.clientWidth,r=v.height||n.clientHeight;}let u=Math.min(o/e,r/i),p=Math.floor(u*e),c=Math.floor(u*i);t.width=`${p}px`,t.height=`${c}px`;let l=(o-p)/2,d=(r-c)/2;t.marginLeft=`${l}px`,t.marginRight=`${l}px`,t.marginTop=`${d}px`,t.marginBottom=`${d}px`;let m=C.htmlLayers.map(v=>{v.style.width=`${p}px`,v.style.height=`${c}px`,v.style.marginLeft=`${l}px`,v.style.marginRight=`${l}px`,v.style.marginTop=`${d}px`,v.style.marginBottom=`${d}px`;});await Promise.all(m);}static get childrenAliasesOrder(){return C.gameLayer.children.filter(e=>e.label).sort((e,i)=>C.gameLayer.getChildIndex(e)-C.gameLayer.getChildIndex(i)).map(e=>e.label)}static get currentTickersWithoutCreatedBySteps(){return Object.fromEntries(Object.entries(C._currentTickers).filter(([e,i])=>!i.createdByTicketSteps).map(([e,i])=>[e,{id:i.ticker.alias,args:i.ticker.args,canvasElementAliases:i.ticker.canvasElementAliases,priority:i.ticker.priority,duration:i.ticker.duration,paused:i.ticker.paused}]))}static generateTickerId(...e){try{return (0,aa.default)(JSON.stringify(e)).toString()+"_"+Math.random().toString(36).substring(7)}catch(i){throw new core.PixiError("not_json_serializable",`Error to generate ticker id: ${i}`)}}static addTickerTimeoutInfo(e,i,n,t){typeof e=="string"&&(e=[e]),C._currentTickersTimeouts[n]={aliases:e,ticker:i,canBeDeletedBeforeEnd:t};}static removeTickerTimeoutInfo(e){typeof e!="string"&&(e=e.toString()),C._currentTickersTimeouts[e]&&delete C._currentTickersTimeouts[e];}static removeTickerTimeout(e){typeof e!="string"&&(e=e.toString()),clearTimeout(Number(e)),C.removeTickerTimeoutInfo(e);}static removeTickerTimeoutsByAlias(e,i){Object.entries(C._currentTickersTimeouts).forEach(([n,t])=>{let o=t.aliases.filter(r=>r!==e);if(o.length===0){let r=t.canBeDeletedBeforeEnd;(!i||r)&&C.removeTickerTimeout(n);}else C._currentTickersTimeouts[n].aliases=o;});}};y(C,"_app"),y(C,"htmlLayers",[]),y(C,"canvasWidth",300),y(C,"canvasHeight",300),y(C,"_isInitialized",false),y(C,"_currentTickers",{}),y(C,"_currentTickersSequence",{}),y(C,"_currentTickersTimeouts",{}),y(C,"_tickersToCompleteOnStepEnd",{tikersIds:[],stepAlias:[]}),y(C,"_tickersOnPause",{});var f=C;var Wa=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,oa=new Set,Oi=typeof process=="object"&&process?process:{},ra=(a,e,i,n)=>{typeof Oi.emitWarning=="function"?Oi.emitWarning(a,e,i,n):console.error(`[${i}] ${e}: ${a}`);},li=globalThis.AbortController,na=globalThis.AbortSignal;if(typeof li>"u"){na=class{constructor(){y(this,"onabort");y(this,"_onabort",[]);y(this,"reason");y(this,"aborted",false);}addEventListener(i,n){this._onabort.push(n);}},li=class{constructor(){y(this,"signal",new na);e();}abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let n of this.signal._onabort)n(i);this.signal.onabort?.(i);}}};let a=Oi.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{a&&(a=false,ra("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var Ha=a=>!oa.has(a);var be=a=>a&&a===Math.floor(a)&&a>0&&isFinite(a),ca=a=>be(a)?a<=Math.pow(2,8)?Uint8Array:a<=Math.pow(2,16)?Uint16Array:a<=Math.pow(2,32)?Uint32Array:a<=Number.MAX_SAFE_INTEGER?ri:null:null,ri=class extends Array{constructor(a){super(a),this.fill(0);}},he,Le,Ua=(he=class{constructor(e,i){y(this,"heap");y(this,"length");if(!s(he,Le))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e),this.length=0;}static create(e){let i=ca(e);if(!i)return [];_(he,Le,true);let n=new he(e,i);return _(he,Le,false),n}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},Le=new WeakMap,O(he,Le,false),he),ta,sa,ie,X,re,Pe,ce,Fe,We,pe,F,le,q,B,j,G,K,Y,W,ue,H,de,me,J,Z,xe,Te,$,He,w,zi,Se,ge,Ke,Q,la,Ie,Ue,Je,ye,we,Bi,ci,pi,z,Ri,Xe,ke,Di,Ve,pa=(Ve=class{constructor(e){O(this,w);O(this,ie);O(this,X);O(this,re);O(this,Pe);O(this,ce);O(this,Fe);O(this,We);O(this,pe);y(this,"ttl");y(this,"ttlResolution");y(this,"ttlAutopurge");y(this,"updateAgeOnGet");y(this,"updateAgeOnHas");y(this,"allowStale");y(this,"noDisposeOnSet");y(this,"noUpdateTTL");y(this,"maxEntrySize");y(this,"sizeCalculation");y(this,"noDeleteOnFetchRejection");y(this,"noDeleteOnStaleGet");y(this,"allowStaleOnFetchAbort");y(this,"allowStaleOnFetchRejection");y(this,"ignoreFetchAbort");O(this,F);O(this,le);O(this,q);O(this,B);O(this,j);O(this,G);O(this,K);O(this,Y);O(this,W);O(this,ue);O(this,H);O(this,de);O(this,me);O(this,J);O(this,Z);O(this,xe);O(this,Te);O(this,$);O(this,He);O(this,Se,()=>{});O(this,ge,()=>{});O(this,Ke,()=>{});O(this,Q,()=>false);O(this,Ie,e=>{});O(this,Ue,(e,i,n)=>{});O(this,Je,(e,i,n,t)=>{if(n||t)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});y(this,ta,"LRUCache");let{max:i=0,ttl:n,ttlResolution:t=1,ttlAutopurge:o,updateAgeOnGet:r,updateAgeOnHas:u,allowStale:p,dispose:c,onInsert:l,disposeAfter:d,noDisposeOnSet:m,noUpdateTTL:v,maxSize:b=0,maxEntrySize:T=0,sizeCalculation:I,fetchMethod:x,memoMethod:k,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:A,allowStaleOnFetchRejection:M,allowStaleOnFetchAbort:D,ignoreFetchAbort:fe,perf:V}=e;if(V!==void 0&&typeof V?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(_(this,pe,V??Wa),i!==0&&!be(i))throw new TypeError("max option must be a nonnegative integer");let se=i?ca(i):Array;if(!se)throw new Error("invalid max value: "+i);if(_(this,ie,i),_(this,X,b),this.maxEntrySize=T||s(this,X),this.sizeCalculation=I,this.sizeCalculation){if(!s(this,X)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(k!==void 0&&typeof k!="function")throw new TypeError("memoMethod must be a function if defined");if(_(this,We,k),x!==void 0&&typeof x!="function")throw new TypeError("fetchMethod must be a function if specified");if(_(this,Fe,x),_(this,Te,!!x),_(this,q,new Map),_(this,B,new Array(i).fill(void 0)),_(this,j,new Array(i).fill(void 0)),_(this,G,new se(i)),_(this,K,new se(i)),_(this,Y,0),_(this,W,0),_(this,ue,Ua.create(i)),_(this,F,0),_(this,le,0),typeof c=="function"&&_(this,re,c),typeof l=="function"&&_(this,Pe,l),typeof d=="function"?(_(this,ce,d),_(this,H,[])):(_(this,ce,void 0),_(this,H,void 0)),_(this,xe,!!s(this,re)),_(this,He,!!s(this,Pe)),_(this,$,!!s(this,ce)),this.noDisposeOnSet=!!m,this.noUpdateTTL=!!v,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!M,this.allowStaleOnFetchAbort=!!D,this.ignoreFetchAbort=!!fe,this.maxEntrySize!==0){if(s(this,X)!==0&&!be(s(this,X)))throw new TypeError("maxSize must be a positive integer if specified");if(!be(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");S(this,w,la).call(this);}if(this.allowStale=!!p,this.noDeleteOnStaleGet=!!A,this.updateAgeOnGet=!!r,this.updateAgeOnHas=!!u,this.ttlResolution=be(t)||t===0?t:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!be(this.ttl))throw new TypeError("ttl must be a positive integer if specified");S(this,w,zi).call(this);}if(s(this,ie)===0&&this.ttl===0&&s(this,X)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!s(this,ie)&&!s(this,X)){let Be="LRU_CACHE_UNBOUNDED";Ha(Be)&&(oa.add(Be),ra("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Be,Ve));}}get perf(){return s(this,pe)}static unsafeExposeInternals(e){return {starts:s(e,me),ttls:s(e,J),autopurgeTimers:s(e,Z),sizes:s(e,de),keyMap:s(e,q),keyList:s(e,B),valList:s(e,j),next:s(e,G),prev:s(e,K),get head(){return s(e,Y)},get tail(){return s(e,W)},free:s(e,ue),isBackgroundFetch:i=>{var n;return S(n=e,w,z).call(n,i)},backgroundFetch:(i,n,t,o)=>{var r;return S(r=e,w,pi).call(r,i,n,t,o)},moveToTail:i=>{var n;return S(n=e,w,Xe).call(n,i)},indexes:i=>{var n;return S(n=e,w,ye).call(n,i)},rindexes:i=>{var n;return S(n=e,w,we).call(n,i)},isStale:i=>{var n;return s(n=e,Q).call(n,i)}}}get max(){return s(this,ie)}get maxSize(){return s(this,X)}get calculatedSize(){return s(this,le)}get size(){return s(this,F)}get fetchMethod(){return s(this,Fe)}get memoMethod(){return s(this,We)}get dispose(){return s(this,re)}get onInsert(){return s(this,Pe)}get disposeAfter(){return s(this,ce)}getRemainingTTL(e){return s(this,q).has(e)?1/0:0}*entries(){for(let e of S(this,w,ye).call(this))s(this,j)[e]!==void 0&&s(this,B)[e]!==void 0&&!S(this,w,z).call(this,s(this,j)[e])&&(yield [s(this,B)[e],s(this,j)[e]]);}*rentries(){for(let e of S(this,w,we).call(this))s(this,j)[e]!==void 0&&s(this,B)[e]!==void 0&&!S(this,w,z).call(this,s(this,j)[e])&&(yield [s(this,B)[e],s(this,j)[e]]);}*keys(){for(let e of S(this,w,ye).call(this)){let i=s(this,B)[e];i!==void 0&&!S(this,w,z).call(this,s(this,j)[e])&&(yield i);}}*rkeys(){for(let e of S(this,w,we).call(this)){let i=s(this,B)[e];i!==void 0&&!S(this,w,z).call(this,s(this,j)[e])&&(yield i);}}*values(){for(let e of S(this,w,ye).call(this))s(this,j)[e]!==void 0&&!S(this,w,z).call(this,s(this,j)[e])&&(yield s(this,j)[e]);}*rvalues(){for(let e of S(this,w,we).call(this))s(this,j)[e]!==void 0&&!S(this,w,z).call(this,s(this,j)[e])&&(yield s(this,j)[e]);}[(sa=Symbol.iterator,ta=Symbol.toStringTag,sa)](){return this.entries()}find(e,i={}){for(let n of S(this,w,ye).call(this)){let t=s(this,j)[n],o=S(this,w,z).call(this,t)?t.__staleWhileFetching:t;if(o!==void 0&&e(o,s(this,B)[n],this))return this.get(s(this,B)[n],i)}}forEach(e,i=this){for(let n of S(this,w,ye).call(this)){let t=s(this,j)[n],o=S(this,w,z).call(this,t)?t.__staleWhileFetching:t;o!==void 0&&e.call(i,o,s(this,B)[n],this);}}rforEach(e,i=this){for(let n of S(this,w,we).call(this)){let t=s(this,j)[n],o=S(this,w,z).call(this,t)?t.__staleWhileFetching:t;o!==void 0&&e.call(i,o,s(this,B)[n],this);}}purgeStale(){let e=false;for(let i of S(this,w,we).call(this,{allowStale:true}))s(this,Q).call(this,i)&&(S(this,w,ke).call(this,s(this,B)[i],"expire"),e=true);return e}info(e){let i=s(this,q).get(e);if(i===void 0)return;let n=s(this,j)[i],t=S(this,w,z).call(this,n)?n.__staleWhileFetching:n;if(t===void 0)return;let o={value:t};if(s(this,J)&&s(this,me)){let r=s(this,J)[i],u=s(this,me)[i];if(r&&u){let p=r-(s(this,pe).now()-u);o.ttl=p,o.start=Date.now();}}return s(this,de)&&(o.size=s(this,de)[i]),o}dump(){let e=[];for(let i of S(this,w,ye).call(this,{allowStale:true})){let n=s(this,B)[i],t=s(this,j)[i],o=S(this,w,z).call(this,t)?t.__staleWhileFetching:t;if(o===void 0||n===void 0)continue;let r={value:o};if(s(this,J)&&s(this,me)){r.ttl=s(this,J)[i];let u=s(this,pe).now()-s(this,me)[i];r.start=Math.floor(Date.now()-u);}s(this,de)&&(r.size=s(this,de)[i]),e.unshift([n,r]);}return e}load(e){this.clear();for(let[i,n]of e){if(n.start){let t=Date.now()-n.start;n.start=s(this,pe).now()-t;}this.set(i,n.value,n);}}set(e,i,n={}){var m,v,b,T;if(i===void 0)return this.delete(e),this;let{ttl:t=this.ttl,start:o,noDisposeOnSet:r=this.noDisposeOnSet,sizeCalculation:u=this.sizeCalculation,status:p}=n,{noUpdateTTL:c=this.noUpdateTTL}=n,l=s(this,Je).call(this,e,i,n.size||0,u);if(this.maxEntrySize&&l>this.maxEntrySize)return p&&(p.set="miss",p.maxEntrySizeExceeded=true),S(this,w,ke).call(this,e,"set"),this;let d=s(this,F)===0?void 0:s(this,q).get(e);if(d===void 0)d=s(this,F)===0?s(this,W):s(this,ue).length!==0?s(this,ue).pop():s(this,F)===s(this,ie)?S(this,w,ci).call(this,false):s(this,F),s(this,B)[d]=e,s(this,j)[d]=i,s(this,q).set(e,d),s(this,G)[s(this,W)]=d,s(this,K)[d]=s(this,W),_(this,W,d),ni(this,F)._++,s(this,Ue).call(this,d,l,p),p&&(p.set="add"),c=false,s(this,He)&&((m=s(this,Pe))==null||m.call(this,i,e,"add"));else {S(this,w,Xe).call(this,d);let I=s(this,j)[d];if(i!==I){if(s(this,Te)&&S(this,w,z).call(this,I)){I.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:x}=I;x!==void 0&&!r&&(s(this,xe)&&((v=s(this,re))==null||v.call(this,x,e,"set")),s(this,$)&&s(this,H)?.push([x,e,"set"]));}else r||(s(this,xe)&&((b=s(this,re))==null||b.call(this,I,e,"set")),s(this,$)&&s(this,H)?.push([I,e,"set"]));if(s(this,Ie).call(this,d),s(this,Ue).call(this,d,l,p),s(this,j)[d]=i,p){p.set="replace";let x=I&&S(this,w,z).call(this,I)?I.__staleWhileFetching:I;x!==void 0&&(p.oldValue=x);}}else p&&(p.set="update");s(this,He)&&this.onInsert?.(i,e,i===I?"update":"replace");}if(t!==0&&!s(this,J)&&S(this,w,zi).call(this),s(this,J)&&(c||s(this,Ke).call(this,d,t,o),p&&s(this,ge).call(this,p,d)),!r&&s(this,$)&&s(this,H)){let I=s(this,H),x;for(;x=I?.shift();)(T=s(this,ce))==null||T.call(this,...x);}return this}pop(){var e;try{for(;s(this,F);){let i=s(this,j)[s(this,Y)];if(S(this,w,ci).call(this,!0),S(this,w,z).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(s(this,$)&&s(this,H)){let i=s(this,H),n;for(;n=i?.shift();)(e=s(this,ce))==null||e.call(this,...n);}}}has(e,i={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:t}=i,o=s(this,q).get(e);if(o!==void 0){let r=s(this,j)[o];if(S(this,w,z).call(this,r)&&r.__staleWhileFetching===void 0)return false;if(s(this,Q).call(this,o))t&&(t.has="stale",s(this,ge).call(this,t,o));else return n&&s(this,Se).call(this,o),t&&(t.has="hit",s(this,ge).call(this,t,o)),true}else t&&(t.has="miss");return false}peek(e,i={}){let{allowStale:n=this.allowStale}=i,t=s(this,q).get(e);if(t===void 0||!n&&s(this,Q).call(this,t))return;let o=s(this,j)[t];return S(this,w,z).call(this,o)?o.__staleWhileFetching:o}async fetch(e,i={}){let{allowStale:n=this.allowStale,updateAgeOnGet:t=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:r=this.ttl,noDisposeOnSet:u=this.noDisposeOnSet,size:p=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:l=this.noUpdateTTL,noDeleteOnFetchRejection:d=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:v=this.ignoreFetchAbort,allowStaleOnFetchAbort:b=this.allowStaleOnFetchAbort,context:T,forceRefresh:I=false,status:x,signal:k}=i;if(!s(this,Te))return x&&(x.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:t,noDeleteOnStaleGet:o,status:x});let E={allowStale:n,updateAgeOnGet:t,noDeleteOnStaleGet:o,ttl:r,noDisposeOnSet:u,size:p,sizeCalculation:c,noUpdateTTL:l,noDeleteOnFetchRejection:d,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:b,ignoreFetchAbort:v,status:x,signal:k},A=s(this,q).get(e);if(A===void 0){x&&(x.fetch="miss");let M=S(this,w,pi).call(this,e,A,E,T);return M.__returned=M}else {let M=s(this,j)[A];if(S(this,w,z).call(this,M)){let se=n&&M.__staleWhileFetching!==void 0;return x&&(x.fetch="inflight",se&&(x.returnedStale=true)),se?M.__staleWhileFetching:M.__returned=M}let D=s(this,Q).call(this,A);if(!I&&!D)return x&&(x.fetch="hit"),S(this,w,Xe).call(this,A),t&&s(this,Se).call(this,A),x&&s(this,ge).call(this,x,A),M;let fe=S(this,w,pi).call(this,e,A,E,T),V=fe.__staleWhileFetching!==void 0&&n;return x&&(x.fetch=D?"stale":"refresh",V&&D&&(x.returnedStale=true)),V?fe.__staleWhileFetching:fe.__returned=fe}}async forceFetch(e,i={}){let n=await this.fetch(e,i);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(e,i={}){let n=s(this,We);if(!n)throw new Error("no memoMethod provided to constructor");let{context:t,forceRefresh:o,...r}=i,u=this.get(e,r);if(!o&&u!==void 0)return u;let p=n(e,u,{options:r,context:t});return this.set(e,p,r),p}get(e,i={}){let{allowStale:n=this.allowStale,updateAgeOnGet:t=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:r}=i,u=s(this,q).get(e);if(u!==void 0){let p=s(this,j)[u],c=S(this,w,z).call(this,p);return r&&s(this,ge).call(this,r,u),s(this,Q).call(this,u)?(r&&(r.get="stale"),c?(r&&n&&p.__staleWhileFetching!==void 0&&(r.returnedStale=true),n?p.__staleWhileFetching:void 0):(o||S(this,w,ke).call(this,e,"expire"),r&&n&&(r.returnedStale=true),n?p:void 0)):(r&&(r.get="hit"),c?p.__staleWhileFetching:(S(this,w,Xe).call(this,u),t&&s(this,Se).call(this,u),p))}else r&&(r.get="miss");}delete(e){return S(this,w,ke).call(this,e,"delete")}clear(){return S(this,w,Di).call(this,"delete")}},ie=new WeakMap,X=new WeakMap,re=new WeakMap,Pe=new WeakMap,ce=new WeakMap,Fe=new WeakMap,We=new WeakMap,pe=new WeakMap,F=new WeakMap,le=new WeakMap,q=new WeakMap,B=new WeakMap,j=new WeakMap,G=new WeakMap,K=new WeakMap,Y=new WeakMap,W=new WeakMap,ue=new WeakMap,H=new WeakMap,de=new WeakMap,me=new WeakMap,J=new WeakMap,Z=new WeakMap,xe=new WeakMap,Te=new WeakMap,$=new WeakMap,He=new WeakMap,w=new WeakSet,zi=function(){let e=new ri(s(this,ie)),i=new ri(s(this,ie));_(this,J,e),_(this,me,i);let n=this.ttlAutopurge?new Array(s(this,ie)):void 0;_(this,Z,n),_(this,Ke,(u,p,c=s(this,pe).now())=>{i[u]=p!==0?c:0,e[u]=p,t(u,p);}),_(this,Se,u=>{i[u]=e[u]!==0?s(this,pe).now():0,t(u,e[u]);});let t=this.ttlAutopurge?(u,p)=>{if(n?.[u]&&(clearTimeout(n[u]),n[u]=void 0),p&&p!==0&&n){let c=setTimeout(()=>{s(this,Q).call(this,u)&&S(this,w,ke).call(this,s(this,B)[u],"expire");},p+1);c.unref&&c.unref(),n[u]=c;}}:()=>{};_(this,ge,(u,p)=>{if(e[p]){let c=e[p],l=i[p];if(!c||!l)return;u.ttl=c,u.start=l,u.now=o||r();let d=u.now-l;u.remainingTTL=c-d;}});let o=0,r=()=>{let u=s(this,pe).now();if(this.ttlResolution>0){o=u;let p=setTimeout(()=>o=0,this.ttlResolution);p.unref&&p.unref();}return u};this.getRemainingTTL=u=>{let p=s(this,q).get(u);if(p===void 0)return 0;let c=e[p],l=i[p];if(!c||!l)return 1/0;let d=(o||r())-l;return c-d},_(this,Q,u=>{let p=i[u],c=e[u];return !!c&&!!p&&(o||r())-p>c});},Se=new WeakMap,ge=new WeakMap,Ke=new WeakMap,Q=new WeakMap,la=function(){let e=new ri(s(this,ie));_(this,le,0),_(this,de,e),_(this,Ie,i=>{_(this,le,s(this,le)-e[i]),e[i]=0;}),_(this,Je,(i,n,t,o)=>{if(S(this,w,z).call(this,n))return 0;if(!be(t))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(t=o(n,i),!be(t))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return t}),_(this,Ue,(i,n,t)=>{if(e[i]=n,s(this,X)){let o=s(this,X)-e[i];for(;s(this,le)>o;)S(this,w,ci).call(this,true);}_(this,le,s(this,le)+e[i]),t&&(t.entrySize=n,t.totalCalculatedSize=s(this,le));});},Ie=new WeakMap,Ue=new WeakMap,Je=new WeakMap,ye=function*({allowStale:e=this.allowStale}={}){if(s(this,F))for(let i=s(this,W);!(!S(this,w,Bi).call(this,i)||((e||!s(this,Q).call(this,i))&&(yield i),i===s(this,Y)));)i=s(this,K)[i];},we=function*({allowStale:e=this.allowStale}={}){if(s(this,F))for(let i=s(this,Y);!(!S(this,w,Bi).call(this,i)||((e||!s(this,Q).call(this,i))&&(yield i),i===s(this,W)));)i=s(this,G)[i];},Bi=function(e){return e!==void 0&&s(this,q).get(s(this,B)[e])===e},ci=function(e){var o;let i=s(this,Y),n=s(this,B)[i],t=s(this,j)[i];return s(this,Te)&&S(this,w,z).call(this,t)?t.__abortController.abort(new Error("evicted")):(s(this,xe)||s(this,$))&&(s(this,xe)&&((o=s(this,re))==null||o.call(this,t,n,"evict")),s(this,$)&&s(this,H)?.push([t,n,"evict"])),s(this,Ie).call(this,i),s(this,Z)?.[i]&&(clearTimeout(s(this,Z)[i]),s(this,Z)[i]=void 0),e&&(s(this,B)[i]=void 0,s(this,j)[i]=void 0,s(this,ue).push(i)),s(this,F)===1?(_(this,Y,_(this,W,0)),s(this,ue).length=0):_(this,Y,s(this,G)[i]),s(this,q).delete(n),ni(this,F)._--,i},pi=function(e,i,n,t){let o=i===void 0?void 0:s(this,j)[i];if(S(this,w,z).call(this,o))return o;let r=new li,{signal:u}=n;u?.addEventListener("abort",()=>r.abort(u.reason),{signal:r.signal});let p={signal:r.signal,options:n,context:t},c=(T,I=false)=>{let{aborted:x}=r.signal,k=n.ignoreFetchAbort&&T!==void 0,E=n.ignoreFetchAbort||!!(n.allowStaleOnFetchAbort&&T!==void 0);if(n.status&&(x&&!I?(n.status.fetchAborted=true,n.status.fetchError=r.signal.reason,k&&(n.status.fetchAbortIgnored=true)):n.status.fetchResolved=true),x&&!k&&!I)return d(r.signal.reason,E);let A=v,M=s(this,j)[i];return (M===v||k&&I&&M===void 0)&&(T===void 0?A.__staleWhileFetching!==void 0?s(this,j)[i]=A.__staleWhileFetching:S(this,w,ke).call(this,e,"fetch"):(n.status&&(n.status.fetchUpdated=true),this.set(e,T,p.options))),T},l=T=>(n.status&&(n.status.fetchRejected=true,n.status.fetchError=T),d(T,false)),d=(T,I)=>{let{aborted:x}=r.signal,k=x&&n.allowStaleOnFetchAbort,E=k||n.allowStaleOnFetchRejection,A=E||n.noDeleteOnFetchRejection,M=v;if(s(this,j)[i]===v&&(!A||!I&&M.__staleWhileFetching===void 0?S(this,w,ke).call(this,e,"fetch"):k||(s(this,j)[i]=M.__staleWhileFetching)),E)return n.status&&M.__staleWhileFetching!==void 0&&(n.status.returnedStale=true),M.__staleWhileFetching;if(M.__returned===M)throw T},m=(T,I)=>{var k;let x=(k=s(this,Fe))==null?void 0:k.call(this,e,o,p);x&&x instanceof Promise&&x.then(E=>T(E===void 0?void 0:E),I),r.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(T(void 0),n.allowStaleOnFetchAbort&&(T=E=>c(E,true)));});};n.status&&(n.status.fetchDispatched=true);let v=new Promise(m).then(c,l),b=Object.assign(v,{__abortController:r,__staleWhileFetching:o,__returned:void 0});return i===void 0?(this.set(e,b,{...p.options,status:void 0}),i=s(this,q).get(e)):s(this,j)[i]=b,b},z=function(e){if(!s(this,Te))return false;let i=e;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof li},Ri=function(e,i){s(this,K)[i]=e,s(this,G)[e]=i;},Xe=function(e){e!==s(this,W)&&(e===s(this,Y)?_(this,Y,s(this,G)[e]):S(this,w,Ri).call(this,s(this,K)[e],s(this,G)[e]),S(this,w,Ri).call(this,s(this,W),e),_(this,W,e));},ke=function(e,i){var t,o;let n=false;if(s(this,F)!==0){let r=s(this,q).get(e);if(r!==void 0)if(s(this,Z)?.[r]&&(clearTimeout(s(this,Z)?.[r]),s(this,Z)[r]=void 0),n=true,s(this,F)===1)S(this,w,Di).call(this,i);else {s(this,Ie).call(this,r);let u=s(this,j)[r];if(S(this,w,z).call(this,u)?u.__abortController.abort(new Error("deleted")):(s(this,xe)||s(this,$))&&(s(this,xe)&&((t=s(this,re))==null||t.call(this,u,e,i)),s(this,$)&&s(this,H)?.push([u,e,i])),s(this,q).delete(e),s(this,B)[r]=void 0,s(this,j)[r]=void 0,r===s(this,W))_(this,W,s(this,K)[r]);else if(r===s(this,Y))_(this,Y,s(this,G)[r]);else {let p=s(this,K)[r];s(this,G)[p]=s(this,G)[r];let c=s(this,G)[r];s(this,K)[c]=s(this,K)[r];}ni(this,F)._--,s(this,ue).push(r);}}if(s(this,$)&&s(this,H)?.length){let r=s(this,H),u;for(;u=r?.shift();)(o=s(this,ce))==null||o.call(this,...u);}return n},Di=function(e){var i,n;for(let t of S(this,w,we).call(this,{allowStale:true})){let o=s(this,j)[t];if(S(this,w,z).call(this,o))o.__abortController.abort(new Error("deleted"));else {let r=s(this,B)[t];s(this,xe)&&((i=s(this,re))==null||i.call(this,o,r,e)),s(this,$)&&s(this,H)?.push([o,r,e]);}}if(s(this,q).clear(),s(this,j).fill(void 0),s(this,B).fill(void 0),s(this,J)&&s(this,me)){s(this,J).fill(0),s(this,me).fill(0);for(let t of s(this,Z)??[])t!==void 0&&clearTimeout(t);s(this,Z)?.fill(void 0);}if(s(this,de)&&s(this,de).fill(0),_(this,Y,0),_(this,W,0),s(this,ue).length=0,_(this,le,0),_(this,F,0),s(this,$)&&s(this,H)){let t=s(this,H),o;for(;o=t?.shift();)(n=s(this,ce))==null||n.call(this,...o);}},Ve);var ae=class{constructor(e){y(this,"cache");y(this,"map",new Map);this.cache=new pa({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var qi=Symbol("SerializableEvent"),Ne=new ae({cacheSize:5});function Va(a){return function(e,i,n){let t=n.value;ui.add(t,a||`${i}`);}}var ui;(o=>{function a(r,u){r[qi]=u,Ne.get(u)&&P.info(`Event "${u}" already exists, it will be overwritten`),Ne.set(u,r);}o.add=a;function e(r){try{let u=Ne.get(r);if(!u){P.error(`Event "${r}" not found, did you forget to register it with the eventDecorator?`);return}return u}catch(u){P.error(`Error while getting Event "${r}"`,u);return}}o.get=e;function i(){return Array.from(Ne.values())}o.values=i;function n(r){return Ne.has(r)}o.has=n;function t(){return Array.from(Ne.keys())}o.keys=t;})(ui||(ui={}));var Li=ui;async function ua(a,e){if("onEvents"in e)for(let i in e.onEvents){let n=e.onEvents[i],t=Li.get(n);t&&a.on(i,t);}}function da(a){return "onEventsHandlers"in a?a.onEventsHandlers:{}}function _e(a,e,i){let n=i[qi];return n&&typeof n=="string"?(e.onEventsHandlers[a]=n,true):(P.warn(`The event handler for event "${a}" is not registered with the eventDecorator, it will not be saved in the memory and it will not work after loading the game. Please register the event handler with the eventDecorator to avoid this warning. Read more about it here: https://pixi-vn.web.app/start/canvas-functions#add-a-listener-to-an-event`),false)}var Ye=new ae({cacheSize:5}),ma=new ae({cacheSize:2}),xa=new ae({cacheSize:2});function Na(a={}){return function(e){di.add(e,a);}}async function ne(a,e,i){let n=i?.ignoreScale||false,t=i?.end;"isRenderGroup"in e&&e.isRenderGroup!==void 0&&(a.isRenderGroup=e.isRenderGroup),"blendMode"in e&&e.blendMode!==void 0&&(a.blendMode=e.blendMode),"tint"in e&&e.tint!==void 0&&(a.tint=e.tint),"alpha"in e&&e.alpha!==void 0&&(a.alpha=e.alpha),"angle"in e&&e.angle!==void 0&&(a.angle=e.angle),"renderable"in e&&e.renderable!==void 0&&(a.renderable=e.renderable),"rotation"in e&&e.rotation!==void 0&&(a.rotation=e.rotation),!n&&"scale"in e&&e.scale!==void 0&&(typeof e.scale=="number"?a.scale.set(e.scale,e.scale):a.scale.set(e.scale.x,e.scale.y)),"pivot"in e&&e.pivot!==void 0&&(typeof e.pivot=="number"?a.pivot.set(e.pivot,e.pivot):a.pivot.set(e.pivot.x,e.pivot.y)),"position"in e&&e.position!==void 0&&a.position.set(e.position.x,e.position.y),"skew"in e&&e.skew!==void 0&&a.skew.set(e.skew.x,e.skew.y),"visible"in e&&e.visible!==void 0&&(a.visible=e.visible),"x"in e&&e.x!==void 0&&(a.x=e.x),"y"in e&&e.y!==void 0&&(a.y=e.y),"boundsArea"in e&&e.boundsArea!==void 0&&(a.boundsArea=e.boundsArea),"cursor"in e&&e.cursor!==void 0&&(a.cursor=e.cursor),"eventMode"in e&&e.eventMode!==void 0&&(a.eventMode=e.eventMode),"interactive"in e&&e.interactive!==void 0&&(a.interactive=e.interactive),"interactiveChildren"in e&&e.interactiveChildren!==void 0&&(a.interactiveChildren=e.interactiveChildren),"hitArea"in e&&e.hitArea!==void 0&&(a.hitArea=e.hitArea),ua(a,e),"align"in e&&e.align!==void 0&&"align"in a&&(a.align=e.align),"percentagePosition"in e&&e.percentagePosition!==void 0&&"percentagePosition"in a&&(a.percentagePosition=e.percentagePosition),t&&await t(),n||("width"in e&&e.width!==void 0&&(a.width=e.width),"height"in e&&e.height!==void 0&&(a.height=e.height));}var di;(u=>{function a(p,c={}){let{name:l=p.name,getInstance:d=async(v,b)=>{let T=new v;return await T.setMemory(b),T},copyProperty:m=async(v,b)=>{await v.setMemory(b);}}=c;Ye.get(l)&&P.warn(`CanvasElement "${l}" already registered`),p.prototype.pixivnId=l,Ye.set(l,p),ma.set(l,d),xa.set(l,m);}u.add=a;function e(p){let c=Ye.get(p);if(!c){P.error(`CanvasElement "${p}" not found, did you forget to register it with the canvasComponentDecorator?`);return}return c}u.get=e;async function i(p,c){let l=e(p),d=ma.get(p);if(!l||!d){P.error(`CanvasElement "${p}" not found, did you forget to register it with the canvasComponentDecorator?`);return}try{return await d(l,c)}catch(m){P.error(`Error while getting CanvasElement instance "${p}"`,m);}}u.getInstance=i;async function n(p,c,l){let d=xa.get(p);if(!d){P.error(`CanvasElement "${p}" not found, did you forget to register it with the canvasComponentDecorator?`);return}try{await d(c,l);}catch(m){P.error(`Error while copying properties of CanvasElement "${p}"`,m);}}u.copyProperty=n;function t(){return Array.from(Ye.values())}u.values=t;function o(p){return Ye.has(p)}u.has=o;function r(){return Array.from(Ye.keys())}u.keys=r;})(di||(di={}));var N=di;async function mi(a){let e=await N.getInstance(a.pixivnId,a);if(!e)throw new core.PixiError("unregistered_element",`The element ${a.pixivnId} could not be created`);return e}function Wi(a){return "memory"in a?a.memory:a instanceof Ce__default.default.Text?Ui(a):a instanceof Ce__default.default.Sprite?Hi(a):je(a)}function Ga(a){let e=a.parent;return {width:a.width,height:a.height,isRenderGroup:a.isRenderGroup,blendMode:a.blendMode,tint:a.tint,alpha:a.alpha,angle:a.angle,renderable:a.renderable,rotation:a.rotation,scale:{x:a.scale.x,y:a.scale.y},pivot:{x:a.pivot.x,y:a.pivot.y},position:{x:a.position.x,y:a.position.y},skew:{x:a.skew.x,y:a.skew.y},visible:a.visible,x:a.x,y:a.y,boundsArea:a.boundsArea,cursor:a.cursor,eventMode:a.eventMode,interactive:a.interactive,interactiveChildren:a.interactiveChildren,hitArea:a.hitArea,index:e?.getChildIndex(a),parentLabel:e?.label}}function Fi(a,e){return {url:a.source.label,alias:e===a.source.label?void 0:e}}function je(a,e){let i=$a(a,Re),t=e?.childrenExport||false?a.children.sort((o,r)=>a.getChildIndex(o)-a.getChildIndex(r)).map(o=>Wi(o)):[];return {pixivnId:i,elements:t,onEvents:da(a),...Ga(a)}}function Hi(a){let e=je(a),i=e.pixivnId??De,n="assetsAliases"in a&&Array.isArray(a.assetsAliases)?Fi(a.texture,a.assetsAliases[0]):"textureAlias"in a?Fi(a.texture,a.textureAlias):Fi(a.texture);return {...e,pixivnId:i,textureData:n,anchor:{x:a.anchor.x,y:a.anchor.y},roundPixels:a.roundPixels}}function Ui(a){let e=je(a),i=e.pixivnId??qe;return {...e,pixivnId:i,anchor:{x:a.anchor.x,y:a.anchor.y},text:a.text,resolution:a.resolution,style:Za(a.style),roundPixels:a.roundPixels}}function $a(a,e){return Object.prototype.hasOwnProperty.call(a,"pixivnId")?a.pixivnId:e}function xi(a){switch(a.type){case "linear":return {type:"linear",colorStops:a.colorStops,end:{x:a.end.x,y:a.end.y},start:{x:a.start.x,y:a.start.y},textureSpace:a.textureSpace,wrapMode:a.texture.source.wrapMode,textureSize:a.texture.source.width/a.texture.source.height};case "radial":return {type:"radial",colorStops:a.colorStops,textureSpace:a.textureSpace,center:{x:a.center.x,y:a.center.y},innerRadius:a.innerRadius,outerCenter:{x:a.outerCenter.x,y:a.outerCenter.y},outerRadius:a.outerRadius,rotation:a.rotation,scale:a.scale,wrapMode:a.texture.source.wrapMode,textureSize:a.texture.source.width/a.texture.source.height}}}function Xa(a){if(a!=null){{if(typeof a=="number")return a;if(typeof a=="string"||Array.isArray(a))return a;if(a instanceof Ce__default.default.FillGradient)return xi(a);if(typeof a=="object"&&"fill"in a&&typeof a.fill!="function"&&a.fill){if(!(a.fill instanceof Ce__default.default.FillPattern))return xi(a.fill)}}P.warn("Unsupported property type for Text.style.fill.",a);}}function Ka(a){if(typeof a=="number")return a;if(typeof a=="string")return a;if(Array.isArray(a))return a;if(a instanceof Ce__default.default.Color)return a.toNumber();P.warn("Unsupported color type.",a);}function Ja(a){if(a!=null){{if(typeof a=="number")return a;if(typeof a=="string"||Array.isArray(a))return a;if(a instanceof Ce__default.default.FillGradient)return xi(a);if(typeof a=="object"&&"alignment"in a)return {alignment:a.alignment,alpha:a.alpha,color:Ka(a.color),join:a.join,miterLimit:a.miterLimit,width:a.width,cap:a.cap,pixelLine:a.pixelLine,textureSpace:a.textureSpace};if(typeof a=="object"&&"fill"in a&&typeof a.fill!="function"&&a.fill){if(!(a.fill instanceof Ce__default.default.FillPattern))return xi(a.fill)}}P.warn("Unsupported property type for Text.style.stroke.",a);}}function Za(a){return {align:a.align,breakWords:a.breakWords,dropShadow:a.dropShadow,fill:Xa(a.fill),fontFamily:a.fontFamily,fontSize:a.fontSize,fontStyle:a.fontStyle,fontVariant:a.fontVariant,fontWeight:a.fontWeight,leading:a.leading,letterSpacing:a.letterSpacing,lineHeight:a.lineHeight,padding:a.padding,stroke:Ja(a.stroke),textBaseline:a.textBaseline,trim:a.trim,whiteSpace:a.whiteSpace,wordWrap:a.wordWrap,wordWrapWidth:a.wordWrapWidth}}var Ae=new ae({cacheSize:5});function Qa(a){return function(e){fi.add(e,a);}}var fi;(r=>{function a(u,p){p||(p=u.name),Ae.get(p)&&P.info(`Ticker "${p}" already exists, it will be overwritten`),u.prototype.id=p,Ae.set(p,u);}r.add=a;function e(u){try{let p=Ae.get(u);if(!p){P.error(`Event "${u}" not found, did you forget to register it with the tickerDecorator?`);return}return p}catch(p){P.error(`Error while getting Event "${u}"`,p);return}}r.get=e;function i(u,p,c){try{let l=Ae.get(u);if(!l){P.error(`Ticker "${u}" not found, did you forget to register it with the tickerDecorator?`);return}return new l(p,c)}catch(l){P.error(`Error while getting Ticker "${u}"`,l);return}}r.getInstance=i;function n(){return Array.from(Ae.values())}r.values=n;function t(u){return Ae.has(u)}r.has=t;function o(){return Array.from(Ae.keys())}r.keys=o;})(fi||(fi={}));var Ee=fi;var fa="aliasToRemoveAfter";var Ze=class{get app(){return f.app}get gameLayer(){return f.gameLayer}get isInitialized(){return f._isInitialized}get width(){return f.canvasWidth}get height(){return f.canvasHeight}set width(e){f.canvasWidth=e;}set height(e){f.canvasHeight=e;}get screen(){return this.app.screen}async init(e,i,n){return await f.init(e,i,n)}get children(){return f.gameLayer.children}async copyCanvasElementProperty(e,i,n={}){let t=["isRenderGroup","scale","visible","boundsArea","text","resolution","style","height","width"],{ignoreProperties:o=p=>p}=n;if(typeof i=="string"){let p=this.find(i);if(p)i=p;else {P.error(`Canvas element ${i} not found`);return}}if(typeof e=="string"){let p=this.find(e);if(p)e=p;else {P.error(`Canvas element ${e} not found`);return}}e instanceof Ce__default.default.Container&&(e=e.memory);let r=o(t),u={...e};r.forEach(p=>{p in u&&delete u[p];}),await N.copyProperty(i.pixivnId,i,u);}add(e,i,n={}){if(e===oe){P.error(`The alias ${oe} is reserved`);return}let t=this.find(e),o=n?.ignoreOldStyle;t&&!o&&this.copyCanvasElementProperty(t,i);let{zIndex:r=t?.parent?.getChildIndex(t)}=n;t&&!this.canvasElementIsOnCanvas(t)?P.error(`The canvas element ${e} exist in the memory but it is not on the canvas, so the zIndex is not set`):t&&this.remove(e,{ignoreTickers:true}),r!==void 0?(i.label=e,this.gameLayer.addChildAt(i,r)):(i.label=e,this.gameLayer.addChild(i));}remove(e,i={}){if(e===oe){P.error(`The alias ${oe} is reserved`);return}let n=i.ignoreTickers;typeof e=="string"&&(e=[e]),e.forEach(t=>{this.gameLayer.getChildrenByLabel(t).forEach(o=>{this.gameLayer.removeChild(o),!n&&this.unlinkComponentFromTicker(t);});});}find(e){if(e===oe)return this.gameLayer;let i=this.gameLayer.getChildByLabel(e);if(i)return i}canvasElementIsOnCanvas(e){return this.gameLayer.children.includes(e)}removeAll(){this.gameLayer.removeChildren();}editAlias(e,i,n={}){let t=this.find(e);t&&(t.label=i),!n.ignoreTickers&&this.transferTickers(e,i,"move");}get currentTickers(){return f._currentTickers}get currentTickersSteps(){return f._currentTickersSequence}findTicker(e){let i=f._currentTickers[e];if(i)return i.ticker}addTicker(e,i){let n=i.id,t=i.alias;if(typeof e=="string"&&(e=[e]),i.canvasElementAliases=e,!Ee.has(t)){P.error(`Ticker ${t} not found`);return}let o={ticker:i};if(f._currentTickers[n]=o,o.ticker.start(),i.duration){let r=setTimeout(()=>{f.removeTickerTimeoutInfo(r),f._currentTickersTimeouts[r.toString()]&&o.ticker.complete({ignoreTickerSteps:true});},i.duration*1e3);f.addTickerTimeoutInfo(e,t,r.toString(),true);}return n}addTickersSequence(e,i,n=0){if(i.length==0){P.warn("The steps of the tickers is empty");return}e in f._currentTickersSequence||(f._currentTickersSequence[e]={});let t={currentStepNumber:n,steps:i.map(r=>r===$e||r.hasOwnProperty("type")&&r.type==="pause"?r:{ticker:r.alias,args:ee(r.args),duration:r.duration})},o=f.generateTickerId(t);return f._currentTickersSequence[e][o]=t,this.runTickersSequence(e,o),o}runTickersSequence(e,i){if(!f._currentTickersSequence[e]||!f._currentTickersSequence[e][i])return;let n=f._currentTickersSequence[e][i].steps[f._currentTickersSequence[e][i].currentStepNumber];if(n===$e&&(n=f._currentTickersSequence[e][i].steps[0],f._currentTickersSequence[e][i].currentStepNumber=0,n===$e)){P.error("TikersSteps has a RepeatType in the first step");return}if(n.hasOwnProperty("type")&&n.type==="pause"){let p=setTimeout(()=>{let c=f._currentTickersTimeouts[p.toString()];c&&c.aliases.forEach(l=>{this.nextTickerStep(l,i);}),f.removeTickerTimeoutInfo(p);},n.duration*1e3);f.addTickerTimeoutInfo(e,"steps",p.toString(),false);return}let t=Ee.getInstance(n.ticker,n.args,{canvasElementAliases:[e],duration:n.duration,priority:n.priority});if(!t){P.error(`Ticker ${n.ticker} not found`);return}let o=t.alias,r=t.id;t.canvasElementAliases=[e];let u={createdByTicketSteps:{canvasElementAlias:e,id:i},ticker:t};if(f._currentTickers[r]=u,u.ticker.start(),t.duration){let p=setTimeout(()=>{let c=f._currentTickersTimeouts[p.toString()];c&&(u.ticker.complete({ignoreTickerSteps:true}),c.aliases.forEach(l=>{this.nextTickerStep(l,i);})),f.removeTickerTimeoutInfo(p);},t.duration*1e3);f.addTickerTimeoutInfo(e,o,p.toString(),false);}}nextTickerStep(e,i){if(f._currentTickersSequence[e]&&f._currentTickersSequence[e][i]){let n=f._currentTickersSequence[e][i];n.currentStepNumber+1<n.steps.length?(n.currentStepNumber++,f._currentTickersSequence[e][i]=n,this.runTickersSequence(e,i)):i&&f._currentTickersSequence[e]&&f._currentTickersSequence[e][i]&&(delete f._currentTickersSequence[e][i],Object.entries(f._currentTickers).forEach(([t,o])=>{o.createdByTicketSteps?.canvasElementAlias===e&&o.createdByTicketSteps.id===i&&this.removeTicker(t);}));}}onTickerComplete(e,i){let{stopTicker:n=true,aliasToRemoveAfter:t,tickerAliasToResume:o,tickerIdToResume:r}=i,u=f._currentTickers[e],p=i.ignoreTickerSteps||false;this.remove(t),o.forEach(c=>this.resumeTicker({canvasAlias:c})),this.resumeTicker({id:r}),u&&(this.removeTicker(e,{stopTicker:n}),!p&&u.ticker.duration==null&&u.createdByTicketSteps&&this.nextTickerStep(u.createdByTicketSteps.canvasElementAlias,u.createdByTicketSteps.id));}unlinkComponentFromTicker(e,i){if(typeof e=="string"&&(e=[e]),!i){e.forEach(t=>{Object.entries(f._currentTickers).forEach(([o,r])=>{r.ticker.canvasElementAliases.includes(t)&&(r.ticker.canvasElementAliases.length===1?this.removeTicker(o):r.ticker.canvasElementAliases=r.ticker.canvasElementAliases.filter(u=>u!==t));}),f._currentTickersSequence[t]&&delete f._currentTickersSequence[t],f.removeTickerTimeoutsByAlias(t,false);});return}let n;typeof i=="string"?n=i:n=i.prototype.id,e.forEach(t=>{f._currentTickersSequence[t]&&Object.entries(f._currentTickersSequence[t]).forEach(([o,r])=>{r.steps.find(u=>typeof u=="object"&&"ticker"in u&&u.ticker===n)&&delete f._currentTickersSequence[t][o];});}),Object.entries(f._currentTickers).forEach(([t,o])=>{o.ticker.alias===n&&(f._currentTickers[t].ticker.canvasElementAliases=o.ticker.canvasElementAliases.filter(r=>!e.includes(r)));}),Object.entries(f._currentTickersTimeouts).forEach(([t,o])=>{o.ticker===n&&o.canBeDeletedBeforeEnd&&(f._currentTickersTimeouts[t].aliases=o.aliases.filter(r=>!e.includes(r)));}),this.removeTickersWithoutAssociatedCanvasElement();}removeTickersWithoutAssociatedCanvasElement(){Object.entries(f._currentTickers).forEach(([e,i])=>{i.ticker.canvasElementAliases=i.ticker.canvasElementAliases.filter(n=>this.find(n)),i.ticker.canvasElementAliases.length===0&&i.ticker.complete({ignoreTickerSteps:true});}),Object.entries(f._currentTickersSequence).forEach(([e,i])=>{i===void 0&&delete f._currentTickersSequence[e];}),Object.entries(f._currentTickersTimeouts).forEach(([e,{aliases:i}])=>{i.length===0&&f.removeTickerTimeout(e);});}removeAllTickers(){f._currentTickersSequence={},Object.keys(f._currentTickers).forEach(e=>{this.removeTicker(e);}),f._currentTickers={};for(let e in f._currentTickersTimeouts)f.removeTickerTimeout(e);f._tickersToCompleteOnStepEnd={tikersIds:[],stepAlias:[]},f._tickersOnPause={};}removeTicker(e,i={stopTicker:true}){typeof e=="string"&&(e=[e]),e.forEach(n=>{let t=f._currentTickers[n];t&&(i.stopTicker&&t.ticker.stop(),delete f._currentTickers[n]);});}pauseTicker(e){let i=[];if("canvasAlias"in e){let{canvasAlias:n,tickerIdsExcluded:t=[]}=e;Object.entries(f._currentTickers).forEach(([o,r])=>{r.ticker.canvasElementAliases.includes(n)&&!t.includes(r.ticker.alias)&&r.ticker.paused===false&&(r.ticker.pause(),i.push(o));});}else if("id"in e){let{id:n}=e;typeof n=="string"&&(n=[n]),[...new Set(n)].forEach(t=>{let o=f._currentTickers[t];o?o.ticker.paused===false&&(o.ticker.pause(),i.push(t)):P.error(`Ticker with id ${t} not found`);});}return i}resumeTicker(e){if("canvasAlias"in e){let{canvasAlias:i}=e;Object.values(f._currentTickers).forEach(n=>{n.ticker.canvasElementAliases.includes(i)&&n.ticker.play();}),delete f._tickersOnPause[i];}else if("id"in e){let{id:i}=e;typeof i=="string"&&(i=[i]),[...new Set(i)].forEach(n=>{let t=f._currentTickers[n];t?t.ticker.play():P.error(`Ticker with id ${n} not found`);});}}isTickerPaused(e,i){let n=f._tickersOnPause[e];if(n){if(i){if("tickerIdsIncluded"in n&&n.tickerIdsIncluded)return n.tickerIdsIncluded.includes(i);if("tickerIdsExcluded"in n&&n.tickerIdsExcluded)return !n.tickerIdsExcluded.includes(i)}return true}return false}transferTickers(e,i,n="move"){f._currentTickersSequence[e]&&(n==="move"?f._currentTickersSequence[i]=ee(f._currentTickersSequence[e]):n==="duplicate"&&(f._currentTickersSequence[i]=ee(f._currentTickersSequence[e]))),Object.entries(f._currentTickers).forEach(([t,o])=>{if(o.createdByTicketSteps?.canvasElementAlias===e&&this.removeTicker(t),o.ticker.canvasElementAliases.includes(e)){let r=Ee.getInstance(o.ticker.alias,ee(o.ticker.args),{duration:o.ticker.duration,priority:o.ticker.priority,canvasElementAliases:[i]});if(r?(this.addTicker(i,r),o.ticker.paused&&r.pause()):P.error(`Ticker ${o.ticker.alias} not found`),n==="move"&&(o.ticker.canvasElementAliases=o.ticker.canvasElementAliases.filter(u=>u!==e)),o.ticker.args.hasOwnProperty(fa)){let u=o.ticker.args.aliasToRemoveAfter;typeof u=="string"&&(u=[u]),Array.isArray(u)&&(n==="move"?o.ticker.args.aliasToRemoveAfter=u.map(p=>p===e?i:p):n==="duplicate"&&u.find(p=>p===e)&&(o.ticker.args.aliasToRemoveAfter=[...u,i]));}}}),Object.values(f._currentTickersTimeouts).forEach(t=>{t.aliases.includes(e)&&(n==="move"?t.aliases=t.aliases.map(o=>o===e?i:o):n==="duplicate"&&t.aliases.find(o=>o===e)&&t.aliases.push(i));}),f._currentTickersSequence[i]&&Object.keys(f._currentTickersSequence[i]).forEach(t=>{this.runTickersSequence(i,t);}),n==="duplicate"&&f._currentTickersSequence[e]&&Object.keys(f._currentTickersSequence[e]).forEach(t=>{this.runTickersSequence(e,t);});}completeTickerOnStepEnd(e){e.alias?f._tickersToCompleteOnStepEnd.stepAlias.push({id:e.id,alias:e.alias}):f._tickersToCompleteOnStepEnd.tikersIds.push({id:e.id});}async forceCompletionOfTicker(e,i){if(i){let n=f._currentTickersSequence[i];if(n&&n[e])if(n[e].steps.includes($e))P.error(`The ticker alias: ${i} id: ${e} contains a RepeatType, so it can't be forced to complete`,n[e]);else {let t=n[e].steps.map(o=>{if(typeof o=="object"&&"ticker"in o){let r=Ee.getInstance(o.ticker,o.args,{duration:o.duration,canvasElementAliases:[i],priority:o.priority});if(r)return r.complete()}});await Promise.all(t);}}else {let n=f._currentTickers[e];n&&await n.ticker.complete();}}animate(e,i,n,t){return core.GameUnifier.animate(e,i,n,t)}addLayer(e,i){if(e===oe){P.error(`The alias ${oe} is reserved`);return}return i.label=e,f.app.stage.addChild(i)}getLayer(e){return f.app.stage.getChildByLabel(e)}removeLayer(e){let i=f.app.stage.getChildByLabel(e);i&&f.app.stage.removeChild(i);}addHtmlLayer(e,i,n){return f.addHtmlLayer(e,i,n)}removeHtmlLayer(e){return f.removeHtmlLayer(e)}getHtmlLayer(e){return f.getHtmlLayer(e)}async extractImage(){return (await this.app.renderer.extract.image(this.app.stage)).src}clear(){this.removeAllTickers(),this.removeAll();}export(){let e={};return this.children.forEach(i=>{i.label&&(e[i.label]=Wi(i));}),{tickers:ee(f.currentTickersWithoutCreatedBySteps),tickersSteps:ee(f._currentTickersSequence),elements:ee(e),stage:ee(je(this.gameLayer)),elementAliasesOrder:ee(f.childrenAliasesOrder),tickersOnPause:ee(f._tickersOnPause),tickersToCompleteOnStepEnd:ee(f._tickersToCompleteOnStepEnd)}}async restore(e){this.clear();try{if(e.hasOwnProperty("elements")&&e.hasOwnProperty("elementAliasesOrder")){let i=e.elementAliasesOrder,n={},t=Object.entries(e.elements).map(async([o,r])=>{n[o]=await mi(r);});await Promise.all(t),i.forEach(o=>{let r=n[o];r&&this.add(o,r);});}else {P.error("The data does not have the properties elementAliasesOrder and elements");return}if(e.hasOwnProperty("stage")&&e.hasOwnProperty("stage")?ne(this.gameLayer,e.stage,{ignoreScale:!0}):P.error("The data does not have the properties stage"),e.hasOwnProperty("tickers")){let i=e.tickers;Object.entries(i).forEach(([n,t])=>{let o=t.canvasElementAliases;if(o.length!==0){let r=Ee.getInstance(t.id,t.args,{duration:t.duration,priority:t.priority,id:n,canvasElementAliases:o});r?(r.canvasElementAliases=o,this.addTicker(o,r),t.paused&&r.pause()):P.error(`Ticker ${t.id} not found`);}});}if(e.hasOwnProperty("tickersSteps")){let i=e.tickersSteps;Object.entries(i).forEach(([n,t])=>{f._currentTickersSequence[n]=t,Object.keys(t).forEach(o=>{this.runTickersSequence(n,o);});});}if(e.hasOwnProperty("tickersOnPause")){let i=e.tickersOnPause;Object.keys(i).forEach(n=>{let t=i[n];"tickerIdsExcluded"in t&&t.tickerIdsExcluded&&(i[n].tickerIdsExcluded=t.tickerIdsExcluded),"tickerIdsIncluded"in t&&t.tickerIdsIncluded&&(i[n].tickerIdsIncluded=t.tickerIdsIncluded);}),f._tickersOnPause=i;}if(e.hasOwnProperty("tickersToCompleteOnStepEnd")){let i=e.tickersToCompleteOnStepEnd,n=i.tikersIds,t=i.stepAlias.map(o=>({id:o.id,alias:o.alias}));f._tickersToCompleteOnStepEnd={tikersIds:n,stepAlias:t};}}catch(i){P.error("Error importing data",i);}}};var Qe=class Qe{static init(e){Qe._getScreen=e.getScreen;}static get screen(){return Qe._getScreen()}};y(Qe,"_getScreen");var U=Qe;async function Ge(a){if(a!=="EMPTY"){if(!a){P.error("Texture not found",a);return}if(Ce__default.default.Assets.cache.has(a)){let e=Ce__default.default.Assets.get(a);if(e)return e}return Ce__default.default.Assets.load(a).then(e=>{if(!e){P.error("Texture not found",a);return}if(!(e instanceof Ce__default.default.Texture)){P.error("File not is a file",a);return}return e}).catch(e=>{P.error("Error loading file",e);})}}exports.CanvasPropertyUtility=void 0;(p=>{function a(c,l,d,m,v,b=0){return v?c==="width"?l*(U.screen.width-d)+d-m-b*d:l*(U.screen.height-d)+d-m-b*d:c==="width"?l*(U.screen.width-d)+m+b*d:l*(U.screen.height-d)+m+b*d}p.calculatePositionByAlign=a;function e(c,l,d,m,v,b=0){return v?c==="width"?(l-d+m+b*d)/(U.screen.width-d):(l-d+m+b*d)/(U.screen.height-d):c==="width"?(l-m-b*d)/(U.screen.width-d):(l-m-b*d)/(U.screen.height-d)}p.calculateAlignByPosition=e;function i(c,l){return c==="width"?l*U.screen.width:l*U.screen.height}p.calculatePositionByPercentagePosition=i;function n(c,l){return c==="width"?l/U.screen.width:l/U.screen.height}p.calculatePercentagePositionByPosition=n;function t(c,l){if(l=l%360,l<0&&(l+=360),l===0)return {x:c.x,y:c.y};if(l===90)return {x:-c.y,y:c.x};if(l===180)return {x:-c.x,y:-c.y};if(l===270)return {x:c.y,y:-c.x};if(l>0&&l<90){let d=l*Math.PI/180,m=Math.cos(d),v=Math.sin(d),b=c.x*m-c.y*v,T=c.x*v+c.y*m;return c.x!==0&&Math.sign(b)!==Math.sign(c.x)&&(b=-b),c.y!==0&&Math.sign(T)!==Math.sign(c.y)&&(T=-T),{x:b,y:T}}else if(l>90&&l<180){let d=(l-90)*Math.PI/180,m=Math.cos(d),v=Math.sin(d),b=-c.y*v-c.x*m,T=c.y*m-c.x*v;return c.x!==0&&Math.sign(b)!==Math.sign(c.x)&&(b=-b),c.y!==0&&Math.sign(T)!==Math.sign(c.y)&&(T=-T),{x:b,y:T}}else if(l>180&&l<270){let d=(l-180)*Math.PI/180,m=Math.cos(d),v=Math.sin(d),b=-c.x*m+c.y*v,T=-c.x*v-c.y*m;return c.x!==0&&Math.sign(b)!==Math.sign(c.x)&&(b=-b),c.y!==0&&Math.sign(T)!==Math.sign(c.y)&&(T=-T),{x:b,y:T}}else if(l>270&&l<360){let d=(l-270)*Math.PI/180,m=Math.cos(d),v=Math.sin(d),b=c.y*v-c.x*m,T=-c.y*m-c.x*v;return c.x!==0&&Math.sign(b)!==Math.sign(c.x)&&(b=-b),c.y!==0&&Math.sign(T)!==Math.sign(c.y)&&(T=-T),{x:b,y:T}}return {x:0,y:0}}p.getSuperPoint=t;function o(c,l){if(l=l%360,l<0&&(l+=360),l===0)return {x:c.x,y:c.y};if(l===90)return {x:c.y,y:-c.x};if(l===180)return {x:-c.x,y:-c.y};if(l===270)return {x:-c.y,y:c.x};if(l>0&&l<90){let d=l*Math.PI/180,m=Math.cos(d),v=Math.sin(d);return {x:c.x*m+c.y*v,y:-c.x*v+c.y*m}}else if(l>90&&l<180){let d=(l-90)*Math.PI/180,m=Math.cos(d),v=Math.sin(d);return {x:c.y*m-c.x*v,y:-c.y*v-c.x*m}}else if(l>180&&l<270){let d=(l-180)*Math.PI/180,m=Math.cos(d),v=Math.sin(d);return {x:-c.x*m-c.y*v,y:c.x*v-c.y*m}}else if(l>270&&l<360){let d=(l-270)*Math.PI/180,m=Math.cos(d),v=Math.sin(d);return {x:-c.y*m+c.x*v,y:c.y*v+c.x*m}}return {x:0,y:0}}p.getPointBySuperPoint=o;function r(c){let l=c.width,d=c.height,m=c.angle%360;return m<0&&(m+=360),m===0||m===180?l:m===90||m===270?d:Math.abs(l*Math.cos(m*Math.PI/180))+Math.abs(d*Math.sin(m*Math.PI/180))}p.getSuperWidth=r;function u(c){let l=c.width,d=c.height,m=c.angle%360;return m<0&&(m+=360),m===0||m===180?d:m===90||m===270?l:Math.abs(d*Math.cos(m*Math.PI/180))+Math.abs(l*Math.sin(m*Math.PI/180))}p.getSuperHeight=u;})(exports.CanvasPropertyUtility||(exports.CanvasPropertyUtility={}));function te(a){return a&&(typeof a.align!="number"&&(a.xAlign!=null&&(a.align===void 0?(a.align={x:a.xAlign},delete a.xAlign):(a.align.x=a.xAlign,delete a.xAlign)),a.yAlign!=null&&(a.align===void 0?(a.align={y:a.yAlign},delete a.yAlign):(a.align.y=a.yAlign,delete a.yAlign))),typeof a.percentagePosition!="number"&&(a.percentageX!=null&&(a.percentagePosition===void 0?(a.percentagePosition={x:a.percentageX},delete a.percentageX):(a.percentagePosition.x=a.percentageX,delete a.percentageX)),a.percentageY!=null&&(a.percentagePosition===void 0?(a.percentagePosition={y:a.percentageY},delete a.percentageY):(a.percentagePosition.y=a.percentageY,delete a.percentageY))),a)}var Me=class a extends Ce__default.default.Sprite{constructor(i){i=te(i);let n,t;i&&"align"in i&&i?.align!==void 0&&(n=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(t=i.percentagePosition,delete i.percentagePosition);super(i);y(this,"pixivnId",De);y(this,"onEventsHandlers",{});y(this,"_align");y(this,"_percentagePosition");this.pixivnId=this.constructor.prototype.pixivnId||De,n&&(this.align=n),t&&(this.percentagePosition=t);}get memory(){return {...Hi(this),pixivnId:this.pixivnId,align:this._align,percentagePosition:this._percentagePosition}}async setMemory(i){return await vi(this,i)}static from(i,n){let t=Ce__default.default.Sprite.from(i,n),o=new a;return o.texture=t.texture,o}on(i,n,t){return _e(i,this,n),super.on(i,(...o)=>n(...o,this),t)}set align(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),typeof i=="number"?(this._align.x=i,this._align.y=i):(i.x!==void 0&&(this._align.x=i.x),i.y!==void 0&&(this._align.y=i.y)),this.reloadPosition();}get align(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return {x:exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x),y:exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}}set xAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.x=i,this.reloadPosition();}get xAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)}set yAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.y=i,this.reloadPosition();}get yAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}set percentagePosition(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),typeof i=="number"?(this._percentagePosition.x=i,this._percentagePosition.y=i):(i.x!==void 0&&(this._percentagePosition.x=i.x),i.y!==void 0&&(this._percentagePosition.y=i.y)),this.reloadPosition();}get percentagePosition(){return {x:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x),y:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}}get percentageX(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x)}set percentageX(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.x=i,this.reloadPosition();}get percentageY(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}set percentageY(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.y=i,this.reloadPosition();}get positionType(){return this._align?"align":this._percentagePosition?"percentage":"pixel"}get positionInfo(){switch(this.positionType){case "align":return {x:this.xAlign,y:this.yAlign,type:"align"};case "percentage":return {x:this.percentageX,y:this.percentageY,type:"percentage"};default:return {x:this.x,y:this.y,type:"pixel"}}}set positionInfo(i){i.type==="align"?this.align={x:i.x,y:i.y}:i.type==="percentage"?this.percentagePosition={x:i.x,y:i.y}:this.position.set(i.x,i.y);}reloadPosition(){if(this._align){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);this._align.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",this._align.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)),this._align.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",this._align.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y));}else this._percentagePosition&&(this._percentagePosition.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",this._percentagePosition.x)),this._percentagePosition.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",this._percentagePosition.y)));}get position(){return super.position}set position(i){this._align=void 0,this._percentagePosition=void 0,super.position=i;}get x(){return super.x}set x(i){this._align=void 0,this._percentagePosition=void 0,super.x=i;}get y(){return super.y}set y(i){this._align=void 0,this._percentagePosition=void 0,super.y=i;}};N.add(Me,{name:De,copyProperty:async(a,e)=>{await vi(a,e,{ignoreTexture:true});}});async function vi(a,e,i){e=te(e);let n=i?.ignoreTexture||false;if(await ne(a,e),!n){if("textureImage"in e&&e.textureImage&&e.textureImage.image){let r=await Ge(e.textureImage.image);r&&(a.texture=r);}let o;if("textureData"in e&&e.textureData&&(o=e.textureData),o&&o.url!=="EMPTY"){let r=o.url;o.alias&&Ce__default.default.Assets.resolver.hasKey(o.alias)&&(r=o.alias);let u=await Ge(r);u&&(a.texture=u);}}let t=i?.half;t&&await t(),"anchor"in e&&e.anchor!==void 0&&(typeof e.anchor=="number"?a.anchor.set(e.anchor,e.anchor):a.anchor.set(e.anchor.x,e.anchor.y)),"align"in e&&e.align!==void 0&&(a.align=e.align),"percentagePosition"in e&&e.percentagePosition!==void 0&&(a.percentagePosition=e.percentagePosition),"roundPixels"in e&&e.roundPixels!==void 0&&(a.roundPixels=e.roundPixels);}var R=class a extends Me{constructor(i,n){super(i);y(this,"_textureAlias");y(this,"pixivnId",Ai);y(this,"_loadIsStarted",false);n&&(this._textureAlias=n);}get textureAlias(){return this._textureAlias?this._textureAlias:this.texture.source.label}get memory(){return {...super.memory,pixivnId:this.pixivnId,loadIsStarted:this._loadIsStarted}}async setMemory(i){let n;"textureData"in i&&i.textureData&&(n=i.textureData),"assetsData"in i&&Array.isArray(i.assetsData)&&i.assetsData.length>0&&(n=i.assetsData[0]),n&&n.alias&&(this._textureAlias=n.alias),await gi(this,i),this.reloadPosition();}static from(i,n){let t=Ce__default.default.Sprite.from(i,n),o=new a;return o.texture=t.texture,o}get loadIsStarted(){return this._loadIsStarted}async load(){return this._loadIsStarted=true,Ge(this.textureAlias).then(i=>{this._loadIsStarted=false,i&&(this.texture=i);}).catch(i=>{this._loadIsStarted=false,P.error("Error into ImageSprite.load()",i);})}set texture(i){super.texture=i,this.reloadPosition();}get texture(){return super.texture}get haveEmptyTexture(){return this.texture._source.label==="EMPTY"}};N.add(R,{name:Ai,copyProperty:async(a,e)=>{await gi(a,e,{ignoreTexture:true});}});async function gi(a,e,i){return await vi(a,e,{half:async()=>{"loadIsStarted"in e&&e.loadIsStarted&&await a.load();},ignoreTexture:i?.ignoreTexture})}var ve=class a extends R{constructor(i,n){let t,o,r;i&&"loop"in i&&i?.loop!==void 0&&(t=i.loop,delete i.loop),i&&"paused"in i&&i?.paused!==void 0&&(o=i.paused,delete i.paused),i&&"currentTime"in i&&i?.currentTime!==void 0&&(r=i.currentTime,delete i.currentTime);super(i,n);y(this,"pixivnId",Ei);y(this,"_looop",false);y(this,"_paused",false);y(this,"_currentTime",0);t&&(this.loop=t),o&&(this.paused=o),r&&(this.currentTime=r);}get memory(){return {...super.memory,pixivnId:this.pixivnId,loop:this.loop,paused:this._paused,currentTime:this.currentTime}}async setMemory(i){await ha(this,i),this.reloadPosition();}static from(i,n){let t=Ce__default.default.Sprite.from(i,n),o=new a;return o.texture=t.texture,o}async load(){await super.load(),this.loop=this._looop,this.currentTime=this._currentTime,this.paused=this._paused;}get loop(){return this.texture?.source?.resource?.loop||false}set loop(i){this._looop=i,this.texture?.source?.resource&&(this.texture.source.resource.loop=i);}get paused(){return this.texture?.source?.resource?.paused||false}set paused(i){i?this.pause():this.play();}pause(){this._paused=true,this.texture?.source?.resource&&this.texture.source.resource.pause();}play(){this._paused=false,this.texture?.source?.resource?.play&&typeof this.texture.source.resource.play=="function"&&this.texture.source.resource.play();}get currentTime(){return this.texture?.source?.resource?.currentTime||0}set currentTime(i){let n=this.duration;n&&i>=n&&(i=0),this._currentTime=i,this.texture?.source?.resource&&(this.texture.source.resource.currentTime=i);}restart(){this.currentTime=0;}get duration(){if(this.texture?.source?.resource)return this.texture.source.resource.duration||0}};N.add(ve,{name:Ei,getInstance:async(a,e)=>{let i;"textureData"in e&&e.textureData&&(i=e.textureData);let n=new a(void 0,i?.alias);return await n.setMemory(e),n},copyProperty:async(a,e)=>{await ha(a,e,{ignoreTexture:true});}});async function ha(a,e,i){await gi(a,e,{ignoreTexture:i?.ignoreTexture}),"loop"in e&&e.loop!==void 0&&(a.loop=e.loop),"currentTime"in e&&e.currentTime!==void 0&&(a.currentTime=e.currentTime),"paused"in e&&e.paused!==void 0&&(a.paused=e.paused);}var ya=Ci(ba());function ei(a){let e=Ce__default.default.Assets.cache.has(a)?Ce__default.default.Assets.get(a):null;return e instanceof Ce__default.default.Texture&&(a=e.source?.label||a),on(a)}function on(a){let e=a.split(".").pop()?.toLowerCase();if(!e)return false;for(let[i,n]of Object.entries(ya.default))if(n.extensions?.includes(e)&&i.startsWith("video/"))return true;return false}var Oe=class extends Ce.Container{constructor(i){i=te(i);let n,t,o;i&&"anchor"in i&&i?.anchor!==void 0&&(o=i.anchor,delete i.anchor),i&&"align"in i&&i?.align!==void 0&&(n=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(t=i.percentagePosition,delete i.percentagePosition);super(i);y(this,"pixivnId",Re);y(this,"onEventsHandlers",{});y(this,"_anchor");y(this,"_align");y(this,"_percentagePosition");this.pixivnId=this.constructor.prototype.pixivnId||Re,o&&(this.anchor=o),n&&(this.align=n),t&&(this.percentagePosition=t);}get memory(){return {...je(this,{childrenExport:true}),anchor:this._anchor?this.anchor:void 0,align:this._align,percentagePosition:this._percentagePosition}}async setMemory(i){await this.importChildren(i),await ne(this,i),this.reloadAnchor(),this.reloadPosition();}async importChildren(i){for(let n=0;n<i.elements.length;n++){let t=i.elements[n],o=await mi(t);this.addChild(o);}}on(i,n,t){return _e(i,this,n),super.on(i,(...o)=>n(...o,this),t)}get anchor(){let i=super.pivot.x/this.width,n=super.pivot.y/this.height;return {x:i,y:n}}set anchor(i){typeof i=="number"?this._anchor={x:i,y:i}:this._anchor=i,this.reloadAnchor();}reloadAnchor(){this._anchor&&super.pivot.set(this._anchor.x*this.width,this._anchor.y*this.height);}get pivot(){return super.pivot}set pivot(i){this._anchor=void 0,super.pivot=i;}set align(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),typeof i=="number"?(this._align.x=i,this._align.y=i):(i.x!==void 0&&(this._align.x=i.x),i.y!==void 0&&(this._align.y=i.y)),this.reloadPosition();}get align(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return {x:exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0),y:exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0)}}set xAlign(i){this._percentagePosition&&(this._percentagePosition=void 0),this._align===void 0&&(this._align={}),this._align.x=i,this.reloadPosition();}get xAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0)}set yAlign(i){this._percentagePosition&&(this._percentagePosition=void 0),this._align===void 0&&(this._align={}),this._align.y=i,this.reloadPosition();}get yAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0)}set percentagePosition(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),typeof i=="number"?(this._percentagePosition.x=i,this._percentagePosition.y=i):(i.x!==void 0&&(this._percentagePosition.x=i.x),i.y!==void 0&&(this._percentagePosition.y=i.y)),this.reloadPosition();}get percentagePosition(){return {x:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x),y:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}}set percentageX(i){this._align&&(this._align=void 0),this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.x=i,this.reloadPosition();}get percentageX(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x)}set percentageY(i){this._align&&(this._align=void 0),this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.y=i,this.reloadPosition();}get percentageY(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}get positionType(){return this._align?"align":this._percentagePosition?"percentage":"pixel"}get positionInfo(){switch(this.positionType){case "align":return {x:this.xAlign,y:this.yAlign,type:"align"};case "percentage":return {x:this.percentageX,y:this.percentageY,type:"percentage"};default:return {x:this.x,y:this.y,type:"pixel"}}}set positionInfo(i){i.type==="align"?this.align={x:i.x,y:i.y}:i.type==="percentage"?this.percentagePosition={x:i.x,y:i.y}:this.position.set(i.x,i.y);}reloadPosition(){if(this._align){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);this._align.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",this._align.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0)),this._align.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",this._align.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0));}else this._percentagePosition&&(this._percentagePosition.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",this._percentagePosition.x)),this._percentagePosition.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",this._percentagePosition.y)));}get position(){return super.position}set position(i){this._align=void 0,this._percentagePosition=void 0,super.position=i;}get x(){return super.x}set x(i){this._align=void 0,this._percentagePosition=void 0,super.x=i;}get y(){return super.y}set y(i){this._align=void 0,this._percentagePosition=void 0,super.y=i;}};N.add(Oe,{name:Re,copyProperty:async(a,e)=>await ne(a,e)});var L=class extends Oe{constructor(i,n=[]){i=te(i);let t,o,r;i&&"anchor"in i&&i?.anchor!==void 0&&(r=i.anchor,delete i.anchor),i&&"align"in i&&i?.align!==void 0&&(t=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(o=i.percentagePosition,delete i.percentagePosition);super(i);y(this,"pixivnId",ti);y(this,"_loadIsStarted",false);i=te(i),n&&n.forEach(u=>{let p;ei(u)?p=new ve(void 0,u):p=new R(void 0,u),this.addChild(p);}),r&&(this.anchor=r),t&&(this.align=t),o&&(this.percentagePosition=o);}get memory(){return {...super.memory,pixivnId:ti,loadIsStarted:this._loadIsStarted}}async setMemory(i){await this.importChildren(i),await wa(this,i),this.reloadAnchor(),this.reloadPosition();}get loadIsStarted(){return this._loadIsStarted}async load(){this._loadIsStarted=true;let i=Array(this.children.length);for(let n=0;n<this.children.length;n++)i[n]=this.children[n].load();return Promise.all(i).then(()=>{this._loadIsStarted=false,this.reloadAnchor(),this.reloadPosition();}).catch(n=>{this._loadIsStarted=false,P.error("Error into ImageContainer.load()",n);})}get texture(){return this.children.length>0?this.children[0].texture:new Ce__default.default.Texture}get haveEmptyTexture(){return this.children.some(i=>i.texture._source.label==="EMPTY")}};N.add(L,{name:ti,copyProperty:async(a,e)=>await wa(a,e)});async function wa(a,e){e=te(e),ne(a,e,{end:async()=>{"loadIsStarted"in e&&e.loadIsStarted&&await a.load();}});}var bi=class{constructor(...e){y(this,"pixivnId","canvas_element_id_not_set");}get memory(){throw new core.PixiError("not_implemented","The method CanvasBaseItem.memory must be overridden")}setMemory(e){throw new core.PixiError("not_implemented","The method CanvasBaseItem.setMemory must be overridden")}};var ze=class extends Ce__default.default.Text{constructor(i){i=te(i);let n,t;i&&"align"in i&&i?.align!==void 0&&(n=i.align,delete i.align),i&&"percentagePosition"in i&&i?.percentagePosition!==void 0&&(t=i.percentagePosition,delete i.percentagePosition);super(i);y(this,"pixivnId",qe);y(this,"onEventsHandlers",{});y(this,"_align");y(this,"_percentagePosition");this.pixivnId=this.constructor.prototype.pixivnId||qe,n&&(this.align=n),t&&(this.percentagePosition=t);}get memory(){return {...Ui(this),pixivnId:this.pixivnId,align:this._align,percentagePosition:this._percentagePosition}}async setMemory(i){await ln(this,i),this.reloadPosition();}on(i,n,t){return _e(i,this,n),super.on(i,(...o)=>n(...o,this),t)}set align(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),typeof i=="number"?(this._align.x=i,this._align.y=i):(i.x!==void 0&&(this._align.x=i.x),i.y!==void 0&&(this._align.y=i.y)),this.reloadPosition();}get align(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return {x:exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x),y:exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}}set xAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.x=i,this.reloadPosition();}get xAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("width",this.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)}set yAlign(i){this._percentagePosition=void 0,this._align===void 0&&(this._align={}),this._align.y=i,this.reloadPosition();}get yAlign(){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);return exports.CanvasPropertyUtility.calculateAlignByPosition("height",this.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y)}set percentagePosition(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),typeof i=="number"?(this._percentagePosition.x=i,this._percentagePosition.y=i):(i.x!==void 0&&(this._percentagePosition.x=i.x),i.y!==void 0&&(this._percentagePosition.y=i.y)),this.reloadPosition();}get percentagePosition(){return {x:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x),y:exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}}get percentageX(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("width",this.x)}set percentageX(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.x=i,this.reloadPosition();}get percentageY(){return exports.CanvasPropertyUtility.calculatePercentagePositionByPosition("height",this.y)}set percentageY(i){this._align=void 0,this._percentagePosition===void 0&&(this._percentagePosition={}),this._percentagePosition.y=i,this.reloadPosition();}get positionType(){return this._align?"align":this._percentagePosition?"percentage":"pixel"}get positionInfo(){switch(this.positionType){case "align":return {x:this.xAlign,y:this.yAlign,type:"align"};case "percentage":return {x:this.percentageX,y:this.percentageY,type:"percentage"};default:return {x:this.x,y:this.y,type:"pixel"}}}set positionInfo(i){i.type==="align"?this.align={x:i.x,y:i.y}:i.type==="percentage"?this.percentagePosition={x:i.x,y:i.y}:this.position.set(i.x,i.y);}reloadPosition(){if(this._align){let i=exports.CanvasPropertyUtility.getSuperPoint(this.pivot,this.angle),n=exports.CanvasPropertyUtility.getSuperPoint(this.scale,this.angle);this._align.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByAlign("width",this._align.x,exports.CanvasPropertyUtility.getSuperWidth(this),i.x,n.x<0,this.anchor.x)),this._align.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByAlign("height",this._align.y,exports.CanvasPropertyUtility.getSuperHeight(this),i.y,n.y<0,this.anchor.y));}else this._percentagePosition&&(this._percentagePosition.x!==void 0&&(super.x=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("width",this._percentagePosition.x)),this._percentagePosition.y!==void 0&&(super.y=exports.CanvasPropertyUtility.calculatePositionByPercentagePosition("height",this._percentagePosition.y)));}get position(){return super.position}set position(i){this._align=void 0,this._percentagePosition=void 0,super.position=i;}get x(){return super.x}set x(i){this._align=void 0,this._percentagePosition=void 0,super.x=i;}get y(){return super.y}set y(i){this._align=void 0,this._percentagePosition=void 0,super.y=i;}};N.add(ze,{name:qe});async function ln(a,e){"text"in e&&e.text!==void 0&&(a.text=e.text),await ne(a,e,{end:()=>{"style"in e&&e.style!==void 0&&(a.style=e.style);}}),"anchor"in e&&e.anchor!==void 0&&(typeof e.anchor=="number"?a.anchor.set(e.anchor,e.anchor):a.anchor.set(e.anchor.x,e.anchor.y)),"resolution"in e&&e.resolution!==void 0&&(a.resolution=e.resolution),"anchor"in e&&e.anchor!==void 0&&(typeof e.anchor=="number"?a.anchor.set(e.anchor,e.anchor):a.anchor.set(e.anchor.x,e.anchor.y)),"align"in e&&e.align!==void 0&&(a.align=e.align),"percentagePosition"in e&&e.percentagePosition!==void 0&&(a.percentagePosition=e.percentagePosition),"roundPixels"in e&&e.roundPixels!==void 0&&(a.roundPixels=e.roundPixels);}async function un(a,e={},i){let n=h.find(a);if(!n){P.error(`The element with the alias ${a} does not exist. So the shake effect can't be applied.`);return}let t={x:n.position.x,y:n.position.y},{shakeType:o="horizontal",maxShockSize:r=10,shocksNumber:u=10,...p}=e,c=u-1;if(c<2){P.error("The number of shocks must be at least 3.");return}let l=Math.floor(c/2),d=Math.ceil(c/2),m=[];for(let T=0;T<l;T++){let I=r*(T+1)/l;o==="horizontal"?T%2!==0?m.push(t.x+I):m.push(t.x-I):T%2!==0?m.push(t.y+I):m.push(t.y-I);}let v=l%2===0;for(let T=d;T>0;T--){let I=r*(T+1)/(d-1);o==="horizontal"?T%2===0&&!v||T%2!==0&&v?m.push(t.x-I):m.push(t.x+I):T%2===0&&!v||T%2!==0&&v?m.push(t.y-I):m.push(t.y+I);}let b;if(o==="horizontal"?(m.push(t.x),b=h.animate(a,{x:m},p,i)):(m.push(t.y),b=h.animate(a,{y:m},p,i)),b)return [b]}function yi(a,e,i){let n={...h.find(a)?.memory,...i},t=new L(i,e);return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}async function dn(a,e,i){let n={...h.find(a)?.memory,...i},t=new L(i,e);return await t.load(),n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}function wi(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The image ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new R(i,e);return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}async function mn(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The image ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new R(i,e);return await t.load(),n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}function ki(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The video ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new ve(i,e);return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}async function xn(a,e,i){if(!e)if(Ce__default.default.Assets.resolver.hasKey(a))e=a;else throw new core.PixiError("unregistered_element",`The video ${a} does not exist in the cache.`);let n={...h.find(a)?.memory,...i},t=new ve(i,e);return await t.load(),n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}function Yi(a){switch(a.type){case "align":return {xAlign:a.x,yAlign:a.y};case "percentage":return {percentageX:a.x,percentageY:a.y};default:return {x:a.x,y:a.y}}}function ii(a,e,i){if(typeof e=="string")return ei(e)?ki(a,e,i):wi(a,e,i);if(Array.isArray(e))return yi(a,e,i);if(typeof e=="object"&&"value"in e&&"options"in e){if(typeof e.value=="string")return ei(e.value)?ki(a,e.value,{...e.options,zIndex:i.zIndex}):wi(a,e.value,{...e.options,zIndex:i.zIndex});if(Array.isArray(e.value))return yi(a,e.value,{...e.options,zIndex:i.zIndex})}return h.add(a,e,i),e}async function _a(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{completeOnContinue:o=t,tickerIdToResume:r=[],...u}=i,p=[];e||(e=a),typeof r=="string"&&(r=[r]);let c,l=h.find(a);if(l&&(c=a+"_temp_disolve",h.editAlias(a,c)),e=ii(a,e,{zIndex:l?l.parent?.getChildIndex(l):void 0}),l?.parent?.setChildIndex(l,l.parent.getChildIndex(l)-.1),c&&h.copyCanvasElementProperty(c,a),c&&h.transferTickers(c,a,"duplicate"),e.alpha=0,c){let m=Ti(c,{...i,autoplay:false,completeOnContinue:o},n);m&&(p.push(...m),r.push(...m));}let d=h.animate(a,{alpha:1},{...u,tickerIdToResume:r,completeOnContinue:o},n);if(d&&p.push(d),(e instanceof R||e instanceof L)&&e.haveEmptyTexture&&await e.load(),p.length>0)return p}function Ti(a,e={},i){let{forceCompleteBeforeNext:n=true}=e,{completeOnContinue:t=n,aliasToRemoveAfter:o=[],...r}=e;typeof o=="string"&&(o=[o]),o.push(a);let u=h.animate(a,{alpha:0},{...r,aliasToRemoveAfter:o,completeOnContinue:t},i);if(u)return [u]}async function fn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{completeOnContinue:o=t,aliasToRemoveAfter:r=[],...u}=i,p=[];e||(e=a),typeof r=="string"&&(r=[r]);let c=h.find(a);if(!c)return _a(a,e,i,n);let l=a+"_temp_fade";h.editAlias(a,l),r.push(l),e=ii(a,e,{zIndex:c?c.parent?.getChildIndex(c):void 0}),c?.parent?.setChildIndex(c,c.parent.getChildIndex(c)-.1),l&&h.copyCanvasElementProperty(l,a),l&&h.transferTickers(l,a,"duplicate"),e.alpha=0;let d=h.animate(a,{alpha:1},{...u,aliasToRemoveAfter:r,completeOnContinue:o},n);if(d){let m=Ti(l,{...i,tickerIdToResume:d,completeOnContinue:o},n);m&&p.push(...m),p.push(d),h.pauseTicker({id:d});}if((e instanceof R||e instanceof L)&&e.haveEmptyTexture&&await e.load(),p.length>0)return p}function hn(a,e={},i){return Ti(a,e,i)}async function vn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{direction:o="right",completeOnContinue:r=t,tickerIdToResume:u=[],aliasToRemoveAfter:p=[],removeOldComponentWithMoveOut:c,...l}=i,d=[],m;e||(e=a),typeof u=="string"&&(u=[u]),typeof p=="string"&&(p=[p]);let v,b=h.find(a);if(b&&(v=a+"_temp_movein",h.editAlias(a,v),b instanceof R||b instanceof L?m=b.positionInfo:m={x:b.x,y:b.y,type:"pixel"}),e=ii(a,e,{zIndex:b?b.parent?.getChildIndex(b):void 0}),b?.parent?.setChildIndex(b,b.parent.getChildIndex(b)-.1),v&&h.copyCanvasElementProperty(v,a),v&&h.transferTickers(v,a,"move"),m||(e instanceof R||e instanceof L?m=e.positionInfo:m={x:e.x,y:e.y,type:"pixel"}),v)if(c){let x=Gi(v,{...i,autoplay:false,completeOnContinue:r},n);x&&(d.push(...x),u.push(...x));}else p.push(v);switch((e instanceof R||e instanceof L)&&e.haveEmptyTexture&&await e.load(),o){case "up":e.y=h.height+e.height;break;case "down":e.y=-e.height;break;case "left":e.x=h.width+e.width;break;case "right":e.x=-e.width;break}let T=h.pauseTicker({canvasAlias:a});u.push(...T);let I=h.animate(a,Yi(m),{...l,tickerIdToResume:u,aliasToRemoveAfter:p,completeOnContinue:r},n);if(I&&d.push(I),d.length>0)return d}function Gi(a,e={},i){let{forceCompleteBeforeNext:n=true}=e,{direction:t="right",completeOnContinue:o=n,aliasToRemoveAfter:r=[],...u}=e;typeof r=="string"&&(r=[r]),r.push(a);let p=h.find(a);if(!p){P.warn(`The canvas component "${a}" is not found.`);return}let c={x:p.x,y:p.y};switch(t){case "up":c.y=-p.height;break;case "down":c.y=h.height+p.height;break;case "left":c.x=-p.width;break;case "right":c.x=h.width+p.width;break}h.pauseTicker({canvasAlias:a});let l=h.animate(a,c,{...u,aliasToRemoveAfter:r,completeOnContinue:o},i);if(l)return [l]}async function gn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{direction:o="right",completeOnContinue:r=t,tickerIdToResume:u=[],aliasToRemoveAfter:p=[],...c}=i,l=[],d;e||(e=a),typeof u=="string"&&(u=[u]),typeof p=="string"&&(p=[p]);let m,v=h.find(a);v&&(m=a+"_temp_zoom",h.editAlias(a,m),v instanceof R||v instanceof L?d=v.positionInfo:d={x:v.x,y:v.y,type:"pixel"}),e=ii(a,e,{zIndex:v?v.parent?.getChildIndex(v):void 0}),v?.parent?.setChildIndex(v,v.parent.getChildIndex(v)-.1),m&&h.copyCanvasElementProperty(m,a),m&&h.transferTickers(m,a,"move"),d||(e instanceof R||e instanceof L?d=e.positionInfo:d={x:e.x,y:e.y,type:"pixel"});let b={x:e.pivot.x,y:e.pivot.y},T={x:e.scale.x,y:e.scale.y};if(m)if(i.removeOldComponentWithZoomOut){let k=Ca(m,{...i,autoplay:false,completeOnContinue:r},n);k&&(l.push(...k),u.push(...k));}else p.push(m);(e instanceof R||e instanceof L)&&e.haveEmptyTexture&&await e.load(),o=="up"?(e.pivot.y=h.height-e.y,e.pivot.x=h.width/2-e.x,e.y=h.height,e.x=h.width/2):o=="down"?(e.pivot.y=0-e.y,e.pivot.x=h.width/2-e.x,e.y=0,e.x=h.width/2):o=="left"?(e.pivot.x=h.width-e.x,e.pivot.y=h.height/2-e.y,e.x=h.width,e.y=h.height/2):o=="right"&&(e.pivot.x=0-e.x,e.pivot.y=h.height/2-e.y,e.x=0,e.y=h.height/2),e.pivot=exports.CanvasPropertyUtility.getPointBySuperPoint(e.pivot,e.angle),e.scale.set(0);let I=h.pauseTicker({canvasAlias:a});u.push(...I);let x=h.animate(a,{...Yi(d),pivotX:b.x,pivotY:b.y,scaleX:T.x,scaleY:T.y},{...c,tickerIdToResume:u,aliasToRemoveAfter:p,completeOnContinue:r},n);if(x&&l.push(x),l.length>0)return l}function Ca(a,e={},i){let{forceCompleteBeforeNext:n=true}=e,{direction:t="right",completeOnContinue:o=n,aliasToRemoveAfter:r=[],...u}=e;typeof r=="string"&&(r=[r]),r.push(a);let p=h.find(a);if(!p){P.warn(`The canvas component "${a}" is not found.`);return}let c={x:p.x,y:p.y},l={x:p.pivot.x,y:p.pivot.y};t=="down"?(c.y=h.height,c.x=h.width/2,l.y=h.height-c.y,l.x=h.width/2-c.x):t=="up"?(c.y=0,c.x=h.width/2,l.y=0-c.y,l.x=h.width/2-c.x):t=="right"?(c.x=h.width,c.y=h.height/2,l.x=h.width-c.x,l.y=h.height/2-c.y):t=="left"&&(c.x=0,c.y=h.height/2,l.x=0-c.x,l.y=h.height/2-c.y),l=exports.CanvasPropertyUtility.getPointBySuperPoint(l,p.angle),h.pauseTicker({canvasAlias:a});let d=h.animate(a,{...c,pivotX:l.x,pivotY:l.y,scaleX:0,scaleY:0},{...u,aliasToRemoveAfter:r,completeOnContinue:o},i);if(d)return [d]}async function bn(a,e,i={},n){let{forceCompleteBeforeNext:t=true}=i,{direction:o="right",completeOnContinue:r=t,tickerIdToResume:u=[],...p}=i,c=[],l;e||(e=a),typeof u=="string"&&(u=[u]);let d,m=h.find(a);switch(m&&(d=a+"_temp_push",h.editAlias(a,d),m instanceof R||m instanceof L?l=m.positionInfo:l={x:m.x,y:m.y,type:"pixel"}),e=ii(a,e,{zIndex:m?m.parent?.getChildIndex(m):void 0}),m?.parent?.setChildIndex(m,m.parent.getChildIndex(m)-.1),d&&h.copyCanvasElementProperty(d,a),d&&h.transferTickers(d,a,"move"),l||((e instanceof R||e instanceof L)&&e.haveEmptyTexture?l=e.positionInfo:l={x:e.x,y:e.y,type:"pixel"}),(e instanceof R||e instanceof L)&&e.haveEmptyTexture&&await e.load(),o){case "up":e.y=h.height+e.height;break;case "down":e.y=-e.height;break;case "left":e.x=h.width+e.width;break;case "right":e.x=-e.width;break}let v=h.pauseTicker({canvasAlias:a});if(u.push(...v),d){let T=ja(d,{...i,direction:o,completeOnContinue:r});T&&c.push(...T);}let b=h.animate(a,Yi(l),{...p,tickerIdToResume:u,completeOnContinue:r},n);if(b&&c.push(b),c.length>0)return c}function ja(a,e={direction:"right"},i){return Gi(a,e,i)}function yn(a,e,i){let n={...h.find(a)?.memory,...i},t=new ze({text:e,...i});return n&&h.copyCanvasElementProperty(n,t),h.add(a,t,{ignoreOldStyle:true,zIndex:i?.zIndex}),t}var Aa=Ci(Mi());var Pi=class{constructor(e,i){y(this,"alias");y(this,"id");y(this,"args");y(this,"duration");y(this,"priority");y(this,"ticker",new Ce__default.default.Ticker);y(this,"canvasElementAliases",[]);y(this,"fnValue");this.alias=this.constructor.prototype.id;let{duration:n,priority:t,id:o=this.generateTickerId(this.alias,i),canvasElementAliases:r=[]}=i||{};this.args=e,this.duration=n,this.priority=t,this.id=o,this.canvasElementAliases=r;}generateTickerId(...e){try{return (0,Aa.default)(JSON.stringify(e)).toString()+"_"+Math.random().toString(36).substring(7)}catch(i){throw new core.PixiError("not_json_serializable",`Error to generate ticker id: ${i}`)}}complete(e){this.stop();}stop(){let e=this.fnValue;if(!e){P.warn("TickerBase.stop() called without fnValue set. This may cause issues.");return}this.ticker.remove(e,null);}start(){let e=this.id,i=()=>{let{createdByTicketSteps:n}=f._currentTickers[e],t=this.canvasElementAliases;if(n){if(h.isTickerPaused(n.canvasElementAlias,n.id))return}else t=t.filter(o=>!h.isTickerPaused(o,e));return this.fn(this.ticker,this.args,t,e)};this.fnValue=i,this.ticker.add(i,null,this.priority),this.ticker.start();}pause(){this.ticker.stop();}play(){this.ticker.start();}get paused(){return !this.ticker.started}};var {Assets:ir,Color:ar,Rectangle:nr,TextStyle:tr,Texture:sr,UPDATE_PRIORITY:or}=Ce__default.default,h=new Ze;U.init({getScreen:()=>h.screen});/*! Bundled license information:
2
2
 
3
3
  mime-db/index.js:
4
4
  (*!
@@ -7,4 +7,5 @@ mime-db/index.js:
7
7
  * Copyright(c) 2015-2022 Douglas Christopher Wilson
8
8
  * MIT Licensed
9
9
  *)
10
- */exports.Assets=nr;exports.CanvasBaseItem=bi;exports.CanvasManagerStatic=f;exports.Color=tr;exports.Container=Oe;exports.ImageContainer=V;exports.ImageSprite=D;exports.Rectangle=sr;exports.RegisteredCanvasComponents=U;exports.RegisteredEvents=Li;exports.RegisteredTickers=Ee;exports.Sprite=Me;exports.Text=ze;exports.TextStyle=or;exports.Texture=rr;exports.TickerBase=Pi;exports.UPDATE_PRIORITY=cr;exports.VideoSprite=ve;exports.addImage=wi;exports.addImageCointainer=yi;exports.addListenerHandler=_e;exports.addVideo=ki;exports.analizePositionsExtensionProps=te;exports.canvas=h;exports.canvasComponentDecorator=Na;exports.eventDecorator=Va;exports.getTexture=Ye;exports.moveIn=gn;exports.moveOut=Yi;exports.pushIn=yn;exports.pushOut=ja;exports.removeWithDissolve=Ti;exports.removeWithFade=vn;exports.setMemoryContainer=ne;exports.shakeEffect=un;exports.showImage=mn;exports.showImageContainer=dn;exports.showText=wn;exports.showVideo=xn;exports.showWithDissolve=_a;exports.showWithFade=hn;exports.tickerDecorator=Qa;exports.zoomIn=bn;exports.zoomOut=Ca;
10
+ */exports.Assets=ir;exports.CanvasBaseItem=bi;exports.CanvasManagerStatic=f;exports.Color=ar;exports.Container=Oe;exports.ImageContainer=L;exports.ImageSprite=R;exports.Rectangle=nr;exports.RegisteredCanvasComponents=N;exports.RegisteredEvents=Li;exports.RegisteredTickers=Ee;exports.Sprite=Me;exports.Text=ze;exports.TextStyle=tr;exports.Texture=sr;exports.TickerBase=Pi;exports.UPDATE_PRIORITY=or;exports.VideoSprite=ve;exports.addImage=wi;exports.addImageCointainer=yi;exports.addListenerHandler=_e;exports.addVideo=ki;exports.analizePositionsExtensionProps=te;exports.canvas=h;exports.canvasComponentDecorator=Na;exports.eventDecorator=Va;exports.getTexture=Ge;exports.moveIn=vn;exports.moveOut=Gi;exports.pushIn=bn;exports.pushOut=ja;exports.removeWithDissolve=Ti;exports.removeWithFade=hn;exports.setMemoryContainer=ne;exports.shakeEffect=un;exports.showImage=mn;exports.showImageContainer=dn;exports.showText=yn;exports.showVideo=xn;exports.showWithDissolve=_a;exports.showWithFade=fn;exports.tickerDecorator=Qa;exports.zoomIn=gn;exports.zoomOut=Ca;//# sourceMappingURL=canvas.cjs.map
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvY29yZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvc2hhMS5qcyIsIi4uL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb24iLCIuLi9ub2RlX21vZHVsZXMvbWltZS1kYi9pbmRleC5qcyIsIi4uL3NyYy9jb25zdGFudHMudHMiLCIuLi9zcmMvdXRpbHMvbG9nLXV0aWxpdHkudHMiLCIuLi9zcmMvdXRpbHMvZXhwb3J0LXV0aWxpdHkudHMiLCIuLi9zcmMvY2FudmFzL0NhbnZhc01hbmFnZXJTdGF0aWMudHMiLCIuLi9zcmMvdXRpbHMvdGltZS11dGlsaXR5LnRzIiwiLi4vc3JjL2NhbnZhcy9waXhpLWRldnRvb2xzL2FkZGl0aW9uYWxQb3NpdGlvbnNQcm9wZXJ0aWVzLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2xydS1jYWNoZS9zcmMvaW5kZXgudHMiLCIuLi9zcmMvY2xhc3Nlcy9DYWNoZWRNYXAudHMiLCIuLi9zcmMvY2FudmFzL2RlY29yYXRvcnMvZXZlbnQtZGVjb3JhdG9yLnRzIiwiLi4vc3JjL2NhbnZhcy9jb21wb25lbnRzL0xpc3RlbmVyRXh0ZW5zaW9uLnRzIiwiLi4vc3JjL2NhbnZhcy9kZWNvcmF0b3JzL2NhbnZhcy1lbGVtZW50LWRlY29yYXRvci50cyIsIi4uL3NyYy9jYW52YXMvZnVuY3Rpb25zL2NhbnZhcy1pbXBvcnQtdXRpbGl0eS50cyIsIi4uL3NyYy9jYW52YXMvZnVuY3Rpb25zL2NhbnZhcy1tZW1vcnktdXRpbGl0eS50cyIsIi4uL3NyYy9jYW52YXMvdGlja2Vycy9kZWNvcmF0b3JzL1JlZ2lzdGVyZWRUaWNrZXJzLnRzIiwiLi4vc3JjL2NhbnZhcy90aWNrZXJzL3R5cGVzL0FsaWFzVG9SZW1vdmVBZnRlclR5cGUudHMiLCIuLi9zcmMvY2FudmFzL0NhbnZhc01hbmFnZXIudHMiLCIuLi9zcmMvY2FudmFzL0NhbnZhc1V0aWxpdGllc1N0YXRpYy50cyIsIi4uL3NyYy9jYW52YXMvZnVuY3Rpb25zL3RleHR1cmUtdXRpbGl0eS50cyIsIi4uL3NyYy9jYW52YXMvZnVuY3Rpb25zL2NhbnZhcy1wcm9wZXJ0eS11dGlsaXR5LnRzIiwiLi4vc3JjL2NhbnZhcy9jb21wb25lbnRzL0FkZGl0aW9uYWxQb3NpdGlvbnNFeHRlbnNpb24udHMiLCIuLi9zcmMvY2FudmFzL2NvbXBvbmVudHMvU3ByaXRlLnRzIiwiLi4vc3JjL2NhbnZhcy9jb21wb25lbnRzL0ltYWdlU3ByaXRlLnRzIiwiLi4vc3JjL2NhbnZhcy9jb21wb25lbnRzL1ZpZGVvU3ByaXRlLnRzIiwiLi4vc3JjL2NhbnZhcy9mdW5jdGlvbnMvY2FudmFzLXV0aWxpdHkudHMiLCIuLi9zcmMvY2FudmFzL2NvbXBvbmVudHMvQ29udGFpbmVyLnRzIiwiLi4vc3JjL2NhbnZhcy9jb21wb25lbnRzL0ltYWdlQ29udGFpbmVyLnRzIiwiLi4vc3JjL2NhbnZhcy9jbGFzc2VzL0NhbnZhc0Jhc2VJdGVtLnRzIiwiLi4vc3JjL2NhbnZhcy9jb21wb25lbnRzL1RleHQudHMiLCIuLi9zcmMvY2FudmFzL2Z1bmN0aW9ucy9jYW52YXMtZWZmZWN0LnRzIiwiLi4vc3JjL2NhbnZhcy9mdW5jdGlvbnMvaW1hZ2UtY29udGFpbmVyLXV0aWxpdHkudHMiLCIuLi9zcmMvY2FudmFzL2Z1bmN0aW9ucy9pbWFnZS11dGlsaXR5LnRzIiwiLi4vc3JjL2NhbnZhcy9mdW5jdGlvbnMvdmlkZW8tdXRpbGl0eS50cyIsIi4uL3NyYy9jYW52YXMvZnVuY3Rpb25zL2NhbnZhcy10cmFuc2l0aW9uLnRzIiwiLi4vc3JjL2NhbnZhcy9mdW5jdGlvbnMvdGV4dC11dGlsaXR5LnRzIiwiLi4vc3JjL2NhbnZhcy90aWNrZXJzL2NsYXNzZXMvVGlja2VyQmFzZS50cyIsIi4uL3NyYy9jYW52YXMvaW5kZXgudHMiXSwibmFtZXMiOlsicmVxdWlyZV9jb3JlIiwiX19jb21tb25KU01pbiIsImV4cG9ydHMiLCJtb2R1bGUiLCJyb290IiwiZmFjdG9yeSIsIkNyeXB0b0pTIiwiTWF0aCIsInVuZGVmaW5lZCIsImNyeXB0byIsIl9fcmVxdWlyZSIsImNyeXB0b1NlY3VyZVJhbmRvbUludCIsImNyZWF0ZSIsIkYiLCJvYmoiLCJzdWJ0eXBlIiwiQyIsIkNfbGliIiwiQmFzZSIsIm92ZXJyaWRlcyIsImluc3RhbmNlIiwicHJvcGVydGllcyIsInByb3BlcnR5TmFtZSIsIldvcmRBcnJheSIsIndvcmRzIiwic2lnQnl0ZXMiLCJlbmNvZGVyIiwiSGV4Iiwid29yZEFycmF5IiwidGhpc1dvcmRzIiwidGhhdFdvcmRzIiwidGhpc1NpZ0J5dGVzIiwidGhhdFNpZ0J5dGVzIiwiaSIsInRoYXRCeXRlIiwiaiIsImNsb25lIiwibkJ5dGVzIiwiQ19lbmMiLCJoZXhDaGFycyIsImJpdGUiLCJoZXhTdHIiLCJoZXhTdHJMZW5ndGgiLCJMYXRpbjEiLCJsYXRpbjFDaGFycyIsImxhdGluMVN0ciIsImxhdGluMVN0ckxlbmd0aCIsIlV0ZjgiLCJ1dGY4U3RyIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsImRhdGEiLCJkb0ZsdXNoIiwicHJvY2Vzc2VkV29yZHMiLCJkYXRhV29yZHMiLCJkYXRhU2lnQnl0ZXMiLCJibG9ja1NpemUiLCJibG9ja1NpemVCeXRlcyIsIm5CbG9ja3NSZWFkeSIsIm5Xb3Jkc1JlYWR5IiwibkJ5dGVzUmVhZHkiLCJvZmZzZXQiLCJjZmciLCJtZXNzYWdlVXBkYXRlIiwiaGFzaCIsImhhc2hlciIsIm1lc3NhZ2UiLCJrZXkiLCJDX2FsZ28iLCJyZXF1aXJlX3NoYTEiLCJIYXNoZXIiLCJXIiwiU0hBMSIsIk0iLCJIIiwiYSIsImIiLCJjIiwiZCIsImUiLCJuIiwidCIsIm5CaXRzVG90YWwiLCJuQml0c0xlZnQiLCJyZXF1aXJlX2RiIiwicmVxdWlyZV9taW1lX2RiIiwiUmVwZWF0IiwiQ0FOVkFTX0FQUF9HQU1FX0xBWUVSX0FMSUFTIiwiQ0FOVkFTX0NPTlRBSU5FUl9JRCIsIkNBTlZBU19JTUFHRV9DT05UQUlORVJfSUQiLCJDQU5WQVNfSU1BR0VfSUQiLCJDQU5WQVNfU1BSSVRFX0lEIiwiQ0FOVkFTX1RFWFRfSUQiLCJDQU5WQVNfVklERU9fSUQiLCJsb2dnZXIiLCJvcHRpb25hbFBhcmFtcyIsImNyZWF0ZUV4cG9ydGFibGVFbGVtZW50IiwiZWxlbWVudCIsImVsZW1lbnRTdHJpbmciLCJQaXhpRXJyb3IiLCJpbXBvcnRfc2hhMSIsInRocm90dGxlIiwiZnVuYyIsImxpbWl0IiwibGFzdENhbGwiLCJhcmdzIiwibm93IiwiYWRkaXRpb25hbFBvc2l0aW9uc1Byb3BlcnRpZXMiLCJjb250YWluZXIiLCJwcm9wIiwidmFsdWUiLCJhZGRpdGlvbmFsUG9zaXRpb25zUHJvcGVydGllc19kZWZhdWx0IiwiX0NhbnZhc01hbmFnZXJTdGF0aWMiLCJsYXllciIsIlBJWEkiLCJvcHRpb25zIiwiZGV2dG9vbHNPcHRpb25zIiwiaWQiLCJ3aWR0aCIsImhlaWdodCIsInJlc29sdXRpb24iLCJhdXRvRGVuc2l0eSIsInJlc2l6ZU1vZGUiLCJyZXN0IiwiYXBwIiwiZXh0ZW5zaW9ucyIsImRldnRvb2xzT3B0aW9uc1Jlc3QiLCJpbml0RGV2dG9vbHMiLCJ0aHJvdHRsZWRSZXNpemUiLCJzdHlsZSIsImRpdiIsInJlcyIsImNhbnZhc1dpZHRoIiwiY2FudmFzSGVpZ2h0IiwiY29udGFpbmVyV2lkdGgiLCJjb250YWluZXJIZWlnaHQiLCJyZWN0Iiwic2NhbGUiLCJzY3JlZW5XaWR0aCIsInNjcmVlbkhlaWdodCIsImhvcml6b250YWxNYXJnaW4iLCJ2ZXJ0aWNhbE1hcmdpbiIsInByb21pc2VzIiwiY2hpbGQiLCJpdGVtIiwiXyIsImluZm8iLCJzaGExIiwiYWxpYXNlcyIsInRpY2tlciIsInRpbWVvdXQiLCJjYW5CZURlbGV0ZWRCZWZvcmVFbmQiLCJhbGlhcyIsImNoZWNrQ2FuQmVEZWxldGVkQmVmb3JlRW5kIiwidGlja2VyVGltZW91dCIsImFsaWFzZXNXaXRob3V0QWxpYXNUb1JlbW92ZSIsIl9fcHVibGljRmllbGQiLCJDYW52YXNNYW5hZ2VyU3RhdGljIiwiZGVmYXVsdFBlcmYiLCJ3YXJuZWQiLCJQUk9DRVNTIiwiZW1pdFdhcm5pbmciLCJtc2ciLCJ0eXBlIiwiY29kZSIsImZuIiwiQUMiLCJBUyIsIndhcm5BQ1BvbHlmaWxsIiwicmVhc29uIiwicHJpbnRBQ1BvbHlmaWxsV2FybmluZyIsInNob3VsZFdhcm4iLCJpc1Bvc0ludCIsImdldFVpbnRBcnJheSIsIm1heCIsIlplcm9BcnJheSIsInNpemUiLCJfYSIsIl9vIiwiU3RhY2siLCJIZWFwQ2xzIiwiX1N0YWNrIiwiI2NvbnN0cnVjdGluZyIsInMiLCJfX3ByaXZhdGVBZGQiLCJfYiIsIl9jIiwiX3ciLCJfQyIsIl9TIiwiX0wiLCJfSSIsIl9tIiwiX24iLCJfXyIsIl9zIiwiX2kiLCJfdCIsIl91IiwiX2wiLCJfaCIsIl9yIiwiX3kiLCJfQSIsIl9kIiwiX2ciLCJfVCIsIl92IiwiX2YiLCJfVSIsIl9jX2luc3RhbmNlcyIsImpfZm4iLCJfUiIsIl96IiwiX04iLCJfcCIsIkJfZm4iLCJfVyIsIl9NIiwiX1AiLCJGX2ZuIiwiT19mbiIsIkhfZm4iLCJ4X2ZuIiwiR19mbiIsImVfZm4iLCJrX2ZuIiwiRF9mbiIsIkVfZm4iLCJWX2ZuIiwiTFJVQ2FjaGUiLCIjbWF4IiwiI21heFNpemUiLCIjZGlzcG9zZSIsIiNvbkluc2VydCIsIiNkaXNwb3NlQWZ0ZXIiLCIjZmV0Y2hNZXRob2QiLCIjbWVtb01ldGhvZCIsIiNwZXJmIiwiI3NpemUiLCIjY2FsY3VsYXRlZFNpemUiLCIja2V5TWFwIiwiI2tleUxpc3QiLCIjdmFsTGlzdCIsIiNuZXh0IiwiI3ByZXYiLCIjaGVhZCIsIiN0YWlsIiwiI2ZyZWUiLCIjZGlzcG9zZWQiLCIjc2l6ZXMiLCIjc3RhcnRzIiwiI3R0bHMiLCIjYXV0b3B1cmdlVGltZXJzIiwiI2hhc0Rpc3Bvc2UiLCIjaGFzRmV0Y2hNZXRob2QiLCIjaGFzRGlzcG9zZUFmdGVyIiwiI2hhc09uSW5zZXJ0IiwiI3VwZGF0ZUl0ZW1BZ2UiLCIjc3RhdHVzVFRMIiwiI3NldEl0ZW1UVEwiLCIjaXNTdGFsZSIsIiNyZW1vdmVJdGVtU2l6ZSIsIiNhZGRJdGVtU2l6ZSIsIl9zdCIsIiNyZXF1aXJlU2l6ZSIsIl9rIiwic2l6ZUNhbGN1bGF0aW9uIiwidHRsIiwidHRsUmVzb2x1dGlvbiIsInR0bEF1dG9wdXJnZSIsInVwZGF0ZUFnZU9uR2V0IiwidXBkYXRlQWdlT25IYXMiLCJhbGxvd1N0YWxlIiwiZGlzcG9zZSIsIm9uSW5zZXJ0IiwiZGlzcG9zZUFmdGVyIiwibm9EaXNwb3NlT25TZXQiLCJub1VwZGF0ZVRUTCIsIm1heFNpemUiLCJtYXhFbnRyeVNpemUiLCJmZXRjaE1ldGhvZCIsIm1lbW9NZXRob2QiLCJub0RlbGV0ZU9uRmV0Y2hSZWplY3Rpb24iLCJub0RlbGV0ZU9uU3RhbGVHZXQiLCJhbGxvd1N0YWxlT25GZXRjaFJlamVjdGlvbiIsImFsbG93U3RhbGVPbkZldGNoQWJvcnQiLCJpZ25vcmVGZXRjaEFib3J0IiwicGVyZiIsIl9fcHJpdmF0ZVNldCIsIlVpbnRBcnJheSIsIl9fcHJpdmF0ZUdldCIsIl9fcHJpdmF0ZU1ldGhvZCIsIiNpbml0aWFsaXplU2l6ZVRyYWNraW5nIiwiI2luaXRpYWxpemVUVExUcmFja2luZyIsIl9MUlVDYWNoZSIsInAiLCIjaXNCYWNrZ3JvdW5kRmV0Y2giLCJrIiwiaW5kZXgiLCJjb250ZXh0IiwiI2JhY2tncm91bmRGZXRjaCIsIiNtb3ZlVG9UYWlsIiwiI2luZGV4ZXMiLCIjcmluZGV4ZXMiLCJnZXRPcHRpb25zIiwidiIsInRoaXNwIiwiZGVsZXRlZCIsIiNkZWxldGUiLCJlbnRyeSIsInN0YXJ0IiwicmVtYWluIiwiYXJyIiwiYWdlIiwic2V0T3B0aW9ucyIsInN0YXR1cyIsIiNldmljdCIsIl9fcHJpdmF0ZVdyYXBwZXIiLCJvbGRWYWwiLCJvbGRWYWx1ZSIsImR0IiwidGFzayIsInZhbCIsImhhc09wdGlvbnMiLCJwZWVrT3B0aW9ucyIsImZldGNoT3B0aW9ucyIsImZvcmNlUmVmcmVzaCIsInNpZ25hbCIsInN0YWxlIiwiaXNTdGFsZSIsInN0YWxlVmFsIiwibWVtb09wdGlvbnMiLCJ2diIsImZldGNoaW5nIiwiI2NsZWFyIiwidHRscyIsInN0YXJ0cyIsInB1cmdlVGltZXJzIiwic2V0UHVyZ2V0VGltZXIiLCJjYWNoZWROb3ciLCJnZXROb3ciLCJzaXplcyIsIiNpc1ZhbGlkSW5kZXgiLCJmcmVlIiwiaGVhZCIsImFjIiwiZmV0Y2hPcHRzIiwiY2IiLCJ1cGRhdGVDYWNoZSIsImFib3J0ZWQiLCJpZ25vcmVBYm9ydCIsInByb2NlZWQiLCJmZXRjaEZhaWwiLCJiZiIsInZsIiwiZWIiLCJlciIsImFsbG93U3RhbGVBYm9ydGVkIiwibm9EZWxldGUiLCJwY2FsbCIsInJlaiIsImZtcCIsIiNjb25uZWN0IiwicGkiLCJuaSIsIkNhY2hlZE1hcCIsIkwiLCJjYWNoZWRWYWx1ZSIsIlNFUklBTElaQUJMRV9FVkVOVCIsInJlZ2lzdGVyZWRFdmVudHMiLCJldmVudERlY29yYXRvciIsIm5hbWUiLCJ0YXJnZXQiLCJwcm9wZXJ0eUtleSIsImRlc2NyaXB0b3IiLCJSZWdpc3RlcmVkRXZlbnRzIiwiYWRkIiwiZ2V0IiwiZXZlbnRUeXBlIiwidmFsdWVzIiwiaGFzIiwia2V5cyIsImV2ZW50X2RlY29yYXRvcl9kZWZhdWx0Iiwic2V0TGlzdGVuZXJNZW1vcnkiLCJtZW1vcnkiLCJldmVudCIsImdldExpc3RlbmVyTWVtb3J5IiwiYWRkTGlzdGVuZXJIYW5kbGVyIiwiaGFuZGxlcklkIiwicmVnaXN0ZXJlZENhbnZhc0NvbXBvbmVudCIsInJlZ2lzdGVyZWRDYW52YXNJbnN0YW5jZUdldHRlcnMiLCJyZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50Q29weVByb3BlcnRpZXMiLCJjYW52YXNDb21wb25lbnREZWNvcmF0b3IiLCJSZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50cyIsInNldE1lbW9yeUNvbnRhaW5lciIsImlnbm9yZVNjYWxlIiwiZW5kIiwiZ2V0SW5zdGFuY2UiLCJjYW52YXNDbGFzcyIsImNvcHlQcm9wZXJ0eSIsImNvbXBvbmVudCIsImNhbnZhc0lkIiwic291cmNlIiwiY2FudmFzX2VsZW1lbnRfZGVjb3JhdG9yX2RlZmF1bHQiLCJpbXBvcnRDYW52YXNFbGVtZW50IiwiZXhwb3J0Q2FudmFzRWxlbWVudCIsImNhbnZhc0NvbXBvbmVudCIsImdldE1lbW9yeVRleHQiLCJnZXRNZW1vcnlTcHJpdGUiLCJnZXRNZW1vcnlDb250YWluZXIiLCJleHRyYWN0Q29tbW9uTWVtb3J5UHJvcGVydGllcyIsInBhcmVudCIsImdldFRleHR1cmVNZW1vcnkiLCJ0ZXh0dXJlIiwicGl4aXZuSWQiLCJnZXRQaXhpdm5JZCIsImVsZW1lbnRzIiwiYmFzZU1lbW9yeSIsInRleHR1cmVEYXRhIiwiZ2V0VGV4dFN0eWxlIiwiZGVmYXVsdElkIiwiZ3JhZGllbnRUb09wdGlvbnMiLCJnZXRGaWxsIiwiY29udmVydENvbG9yIiwiY29sb3IiLCJnZXRTdHJva2UiLCJyZWdpc3RlcmVkVGlja2VycyIsInRpY2tlckRlY29yYXRvciIsIlJlZ2lzdGVyZWRUaWNrZXJzIiwidGlja2VySWQiLCJ0aWNrZXJUeXBlIiwiUmVnaXN0ZXJlZFRpY2tlcnNfZGVmYXVsdCIsImFsaWFzVG9SZW1vdmVBZnRlciIsIkNhbnZhc01hbmFnZXIiLCJvbGRBbGlhcyIsIm5ld0FsaWFzIiwiZGVmYXVsdFByb3BlcnRpZXNXaGljaENhbkJlSWdub3JlZCIsImlnbm9yZVByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsInByb3BlcnRpZXNUb0lnbm9yZSIsImNsb25lZE9sZEFsaWFzIiwicHJvcGVydHkiLCJvbGRDYW52YXNFbGVtZW50IiwiaWdub3JlT2xkU3R5bGUiLCJ6SW5kZXgiLCJpZ25vcmVUaWNrZXJzIiwicGl4aUVsZW1lbnQiLCJjYW52YXNFbGVtZW50QWxpYXMiLCJ0aWNrZXJOYW1lIiwidGlja2VySGlzdG9yeSIsInN0ZXBzIiwiY3VycmVudFN0ZXBOdW1iZXIiLCJzdGVwIiwidGlja2VyVGltZW91dEluZm8iLCJzdG9wVGlja2VyIiwidGlja2VyQWxpYXNUb1Jlc3VtZSIsInRpY2tlcklkVG9SZXN1bWUiLCJpZ25vcmVUaWNrZXJTdGVwcyIsImZpbHRlcnMiLCJpZHMiLCJjYW52YXNBbGlhcyIsInRpY2tlcklkc0V4Y2x1ZGVkIiwidGlja2Vyc09uUGF1c2VEYXRhIiwibW9kZSIsInRpY2tlcnMiLCJjb21wb25lbnRzIiwia2V5ZnJhbWVzIiwicHJpb3JpdHkiLCJHYW1lVW5pZmllciIsImxhYmVsIiwiY3VycmVudEVsZW1lbnRzIiwiZWxlbWVudEFsaWFzZXNPcmRlciIsIm9sZElkIiwidGlja2Vyc1N0ZXBzIiwidGlja2Vyc09uUGF1c2UiLCJ0aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZCIsInRpa2Vyc0lkcyIsInN0ZXBBbGlhcyIsIl9DYW52YXNVdGlsaXRpZXNTdGF0aWMiLCJDYW52YXNVdGlsaXRpZXNTdGF0aWMiLCJnZXRUZXh0dXJlIiwidGV4dHVyZUFsaWFzIiwiQ2FudmFzUHJvcGVydHlVdGlsaXR5IiwiY2FsY3VsYXRlUG9zaXRpb25CeUFsaWduIiwiYWxpZ24iLCJwaXZvdCIsIm5lZ2F0aXZlU2NhbGUiLCJhbmNob3IiLCJjYWxjdWxhdGVBbGlnbkJ5UG9zaXRpb24iLCJwb3NpdGlvbiIsImNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24iLCJwZXJjZW50YWdlIiwiY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbiIsImdldFN1cGVyUG9pbnQiLCJwb2ludCIsImFuZ2xlIiwiYW5nbGVSYWQiLCJjb3MiLCJzaW4iLCJ4IiwieSIsImdldFBvaW50QnlTdXBlclBvaW50Iiwic3VwZXJQb2ludCIsImdldFN1cGVyV2lkdGgiLCJjYW52YXNFbGVtZW50IiwiZ2V0U3VwZXJIZWlnaHQiLCJhbmFsaXplUG9zaXRpb25zRXh0ZW5zaW9uUHJvcHMiLCJwcm9wcyIsIlNwcml0ZSIsIl9TcHJpdGUiLCJwZXJjZW50YWdlUG9zaXRpb24iLCJzZXRNZW1vcnlTcHJpdGUiLCJza2lwQ2FjaGUiLCJzcHJpdGUiLCJteVNwcml0ZSIsInN1cGVyUGl2b3QiLCJzdXBlclNjYWxlIiwiX3ZhbHVlIiwiaWdub3JlVGV4dHVyZSIsInRleHR1cmVVcmwiLCJoYWxmIiwiSW1hZ2VTcHJpdGUiLCJfSW1hZ2VTcHJpdGUiLCJzZXRNZW1vcnlJbWFnZVNwcml0ZSIsIlZpZGVvU3ByaXRlIiwiX1ZpZGVvU3ByaXRlIiwibG9vcCIsInBhdXNlZCIsImN1cnJlbnRUaW1lIiwic2V0TWVtb3J5VmlkZW9TcHJpdGUiLCJkdXJhdGlvbiIsImltcG9ydF9taW1lX2RiIiwiY2hlY2tJZlZpZGVvIiwiY2FjaGVkVGV4dHVyZSIsImlzVmlkZW9QYXRoIiwicGF0aCIsImV4dCIsIm1pbWUiLCJkYiIsIkNvbnRhaW5lciIsIlBpeGlDb250YWluZXIiLCJJbWFnZUNvbnRhaW5lciIsInRleHR1cmVBbGlhc2VzIiwic2V0TWVtb3J5SW1hZ2VDb250YWluZXIiLCJDYW52YXNCYXNlSXRlbSIsIl9vcHRpb25zIiwiVGV4dCIsInNldE1lbW9yeVRleHQiLCJzaGFrZUVmZmVjdCIsImVsZW1ldCIsImNhbnZhcyIsInNoYWtlVHlwZSIsIm1heFNob2NrU2l6ZSIsInNob2Nrc051bWJlclRlbXAiLCJzaG9ja3NOdW1iZXIiLCJ1cHNob2Nrc051bWJlciIsImRvd25zaG9ja3NOdW1iZXIiLCJhcnJheSIsInNob2NrU2l6ZSIsImxhc3RJdGVtSXNMZWZ0IiwiYWRkSW1hZ2VDb2ludGFpbmVyIiwiaW1hZ2VVcmxzIiwib2xkTWVtb3J5Iiwic2hvd0ltYWdlQ29udGFpbmVyIiwiYWRkSW1hZ2UiLCJpbWFnZVVybCIsInNob3dJbWFnZSIsImFkZFZpZGVvIiwidmlkZW9VcmwiLCJzaG93VmlkZW8iLCJtYXBEZXN0aW5hdGlvbiIsImRlc3RpbmF0aW9uIiwiYWRkQ29tcG9uZW50Iiwic2hvd1dpdGhEaXNzb2x2ZSIsImZvcmNlQ29tcGxldGVCZWZvcmVOZXh0IiwiY29tcGxldGVPbkNvbnRpbnVlIiwib2xkQ29tcG9uZW50QWxpYXMiLCJvbGRDb21wb25lbnQiLCJyZW1vdmVXaXRoRGlzc29sdmUiLCJpZFNob3ciLCJzaG93V2l0aEZhZGUiLCJpZEhpZGUiLCJyZW1vdmVXaXRoRmFkZSIsIm1vdmVJbiIsImRpcmVjdGlvbiIsInJlbW92ZU9sZENvbXBvbmVudFdpdGhNb3ZlT3V0IiwibW92ZU91dCIsInpvb21JbiIsInpvb21PdXQiLCJwdXNoSW4iLCJwdXNoT3V0Iiwic2hvd1RleHQiLCJ0ZXh0IiwiVGlja2VyQmFzZSIsImNhbnZhc0VsZW1lbnRBbGlhc2VzIiwiZm5WYWx1ZSIsImNyZWF0ZWRCeVRpY2tldFN0ZXBzIiwiQXNzZXRzIiwiQ29sb3IiLCJSZWN0YW5nbGUiLCJUZXh0U3R5bGUiLCJUZXh0dXJlIiwiVVBEQVRFX1BSSU9SSVRZIl0sIm1hcHBpbmdzIjoiaVBBQUEsSUFBQSxFQUFBLENBQUEsTUFBQSxDQUFBLE1BQUEsQ0FBQSxJQUFBLEVBQUEsQ0FBQSxNQUFBLENBQUEsY0FBQSxDQUFBLElBQUEsRUFBQSxDQUFBLE1BQUEsQ0FBQSx3QkFBQSxDQUFBLElBQUEsRUFBQSxDQUFBLE1BQUEsQ0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxDQUFBLE1BQUEsQ0FBQSxjQUFBLENBQUEsRUFBQSxDQUFBLE1BQUEsQ0FBQSxTQUFBLENBQUEsY0FBQSxDQUFBLElBQUEsRUFBQSxDQUFBLENBQUEsRUFBQSxDQUFBLE1BQUEsU0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxFQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsVUFBQSxDQUFBLElBQUEsQ0FBQSxZQUFBLENBQUEsSUFBQSxDQUFBLFFBQUEsQ0FBQSxJQUFBLENBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxPQUFBLE9BQUEsQ0FBQSxHQUFBLENBQUEsT0FBQSxDQUFBLE9BQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQSxJQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsT0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsT0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLE9BQUEsT0FBQSxDQUFBLEtBQUEsQ0FBQSxJQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsTUFBQSxLQUFBLENBQUEsc0JBQUEsQ0FBQSxDQUFBLENBQUEsb0JBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEVBQUEsQ0FBQSxFQUFBLE9BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsSUFBQSxFQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxPQUFBLENBQUEsRUFBQSxRQUFBLEVBQUEsT0FBQSxDQUFBLEVBQUEsVUFBQSxDQUFBLElBQUEsSUFBQSxDQUFBLElBQUEsRUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxFQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxVQUFBLENBQUEsRUFBQSxDQUFBLENBQUEsRUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxFQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLElBQUEsQ0FBQSxFQUFBLENBQUEsRUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxDQUFBLEVBQUEsQ0FBQSxFQUFBLENBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUEsVUFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEVBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsRUFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLHlCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsbURBQUEsQ0FBQSxDQUFBLENBQUEsWUFBQSxPQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsRUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsd0JBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLHVCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxDQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLElBQUFBLEVBQUFBLENBQUFDLEVBQUFBLENBQUEsQ0FBQUMsRUFBQUEsQ0FBQUMsS0FBQSxDQUFBLENBQUUsU0FBVUMsQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBUyxDQUN0QixPQUFPSCxFQUFBQSxFQUFZLFFBQUEsQ0FFdEJDLEdBQU8sT0FBQSxDQUFVRCxFQUFBQSxDQUFVRyxDQUFBQSxFQUFRLENBRTNCLE9BQU8sTUFBQSxFQUFXLFVBQUEsRUFBYyxNQUFBLENBQU8sSUFFL0MsTUFBQSxDQUFPLEVBQUMsQ0FBR0EsQ0FBTyxFQUlsQkQsQ0FBQUEsQ0FBSyxRQUFBLENBQVdDLENBQUFBLEdBRWxCLEdBQUVILEVBQUFBLENBQU0sVUFBWSxDQU9uQixJQUFJSSxDQUFBQSxDQUFXQSxDQUFBQSxFQUFBQSxDQUFhLFNBQVVDLENBQUFBLENBQU1DLEVBQVcsQ0FFbkQsSUFB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Q1osTUFBQSxDQUFVLE1BQ1osRUFDQSxZQUFBLENBQWMsQ0FDWixNQUFBLENBQVUsTUFDWixFQUNBLGdCQUFBLENBQWtCLENBQ2hCLE1BQUEsQ0FBVSxNQUNaLEVBQ0EsWUFBQSxDQUFjLENBQ1osTUFBQSxDQUFVLE1BQ1osQ0FBQSxDQUNBLGdCQUFBLENBQWtCLENBQ2hCLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxhQUFBLENBQWUsQ0FDYixNQUFBLENBQVUsTUFDWixDQUFBLENBQ0EsYUFBQSxDQUFlLENBQ2IsT0FBVSxNQUNaLENBQUEsQ0FDQSxhQUFBLENBQWUsQ0FDYixNQUFBLENBQVUsTUFDWixDQUFBLENBQ0EsY0FBQSxDQUFnQixDQUNkLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxjQUFBLENBQWdCLENBQ2QsTUFBQSxDQUFVLE1BQ1osQ0FBQSxDQUNBLGNBQUEsQ0FBZ0IsQ0FDZCxNQUFBLENBQVUsTUFDWixDQUFBLENBQ0EsZUFBQSxDQUFpQixDQUNmLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxnQkFBaUIsQ0FDZixNQUFBLENBQVUsTUFDWixDQUFBLENBQ0EsY0FBQSxDQUFnQixDQUNkLE1BQUEsQ0FBVSxNQUNaLEVBQ0EsZUFBQSxDQUFpQixDQUNmLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxlQUFBLENBQWlCLENBQ2YsTUFBQSxDQUFVLE1BQ1osQ0FBQSxDQUNBLFdBQUEsQ0FBYSxDQUNYLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxZQUFBLENBQWMsQ0FDWixNQUFBLENBQVUsTUFDWixDQUFBLENBQ0EsZUFBQSxDQUFpQixDQUNmLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxjQUFBLENBQWdCLENBQ2QsT0FBVSxNQUNaLENBQUEsQ0FDQSxjQUFBLENBQWdCLENBQ2QsT0FBVSxNQUNaLENBQUEsQ0FDQSxZQUFBLENBQWMsQ0FDWixPQUFVLE1BQ1osQ0FBQSxDQUNBLFlBQUEsQ0FBYyxDQUNaLE1BQUEsQ0FBVSxNQUNaLENBQUEsQ0FDQSxhQUFBLENBQWUsQ0FDYixNQUFB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QWEsQ0FDWCxNQUFBLENBQVUsTUFDWixDQUFBLENBQ0EsWUFBQSxDQUFjLENBQ1osTUFBQSxDQUFVLE1BQUEsQ0FDVixVQUFBLENBQWMsQ0FBQyxNQUFNLENBQ3ZCLENBQUEsQ0FDQSxZQUFBLENBQWMsQ0FDWixNQUFBLENBQVUsTUFBQSxDQUNWLFVBQUEsQ0FBYyxDQUFDLE1BQU0sQ0FDdkIsQ0FBQSxDQUNBLFdBQUEsQ0FBYSxDQUNYLE9BQVUsTUFBQSxDQUNWLFVBQUEsQ0FBYyxDQUFDLEtBQUssQ0FDdEIsQ0FBQSxDQUNBLFdBQUEsQ0FBYSxDQUNYLE1BQUEsQ0FBVSxNQUFBLENBQ1YsWUFBQSxDQUFnQixLQUFBLENBQ2hCLFVBQUEsQ0FBYyxDQUFDLEtBQUEsQ0FBTSxNQUFNLENBQzdCLENBQUEsQ0FDQSxhQUFjLENBQ1osTUFBQSxDQUFVLE1BQUEsQ0FDVixZQUFBLENBQWdCLE1BQ2hCLFVBQUEsQ0FBYyxDQUFDLEtBQUEsQ0FBTSxNQUFBLENBQU8sS0FBSyxDQUNuQyxDQUFBLENBQ0EsV0FBQSxDQUFhLENBQ1gsTUFBQSxDQUFVLE1BQUEsQ0FDVixVQUFBLENBQWMsQ0FBQyxLQUFLLENBQ3RCLENBQUEsQ0FDQSxZQUFBLENBQWMsQ0FDWixNQUFBLENBQVUsTUFBQSxDQUNWLFVBQUEsQ0FBYyxDQUFDLEtBQUssQ0FDdEIsQ0FBQSxDQUNBLFdBQUEsQ0FBYSxDQUNYLE1BQUEsQ0FBVSxNQUFBLENBQ1YsWUFBQSxDQUFnQixLQUFBLENBQ2hCLFdBQWMsQ0FBQyxLQUFBLENBQU0sTUFBTSxDQUM3QixFQUNBLFdBQUEsQ0FBYSxDQUNYLE1BQUEsQ0FBVSxNQUFBLENBQ1YsWUFBQSxDQUFnQixLQUFBLENBQ2hCLFVBQUEsQ0FBYyxDQUFDLE1BQU0sS0FBSyxDQUM1QixDQUFBLENBQ0EsV0FBQSxDQUFhLENBQ1gsTUFBQSxDQUFVLE1BQUEsQ0FDVixVQUFBLENBQWMsQ0FBQyxLQUFLLENBQ3RCLENBQUEsQ0FDQSxXQUFBLENBQWEsQ0FDWCxNQUFBLENBQVUsTUFBQSxDQUNWLFVBQUEsQ0FBYyxDQUFDLEtBQUssQ0FDdEIsQ0FBQSxDQUNBLFlBQUEsQ0FBYyxDQUNaLE1BQUEsQ0FBVSxNQUFBLENBQ1YsVUFBQSxDQUFjLENBQUMsTUFBTSxDQUN2QixDQUFBLENBQ0EsWUFBQSxDQUFjLENBQ1osTUFBQSxDQUFVLE1BQUEsQ0FDVixVQUFBLENBQWMsQ0FBQyxNQUFNLENBQ3ZCLENBQUEsQ0FDQSxXQUFBLENBQWEsQ0FDWCxNQUFBLENBQVUsTUFBQSxDQUNWLFVBQUEsQ0FBYyxDQUFDLEtBQUssQ0FDdEIsQ0FBQSxDQUNBLFlBQUEsQ0FBYyxDQUNaLE1BQUEsQ0FBVSxNQUFBLENBQ1YsVUFBQSxDQUFjLENBQUMsTUFBTSxDQUN2QixDQUFBLENBQ0EsWUFBQSxDQUFjLENBQ1osT0FBVSxNQUFBLENBQ1YsVUFBQSxDQUFjLENBQUMsTUFBTSxDQUN2QixDQUFBLENBQ0EsWUFBQSxDQUFjLENBQ1osTUFBQSxDQUFVLE1BQUEsQ0FDVixVQUFBLENBQWMsQ0FBQyxNQUFNLENBQ3ZCLENBQUEsQ0FDQSxXQUFBLENBQWEsQ0FDWCxNQUFBLENBQVUsT0FDVixVQUFBLENBQWMsQ0FBQyxLQUFLLENBQ3RCLEVBQ0EsWUFBQSxDQUFjLENBQ1osTUFBQSxDQUFVLE1BQUEsQ0FDVixVQUFBLENBQWMsQ0FBQyxNQUFNLENBQ3ZCLEVBQ0EsY0FBQSxDQUFnQixDQUNkLE1BQUEsQ0FBVSxNQUNaLEVBQ0EsYUFBQSxDQUFlLENBQ2IsWUFBQSxDQUFnQixLQUFBLENBQ2hCLFdBQWMsQ0FBQyxNQUFNLENBQ3ZCLENBQUEsQ0FDQSxXQUFBLENBQWEsQ0FDWCxNQUFBLENBQVUsTUFBQSxDQUNWLGFBQWdCLEtBQUEsQ0FDaEIsVUFBQSxDQUFjLENBQUMsS0FBSyxDQUN0QixDQUFBLENBQ0EsZ0JBQUEsQ0FBa0IsQ0FDaEIsT0FBVSxNQUFBLENBQ1YsVUFBQSxDQUFjLENBQUMsTUFBQSxDQUFPLEtBQUssQ0FDN0IsQ0FBQSxDQUNBLGVBQUEsQ0FBaUIsQ0FDZixNQUFBLENBQVUsTUFBQSxDQUNWLFVBQUEsQ0FBYyxDQUFDLEtBQUssQ0FD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QUFBLENBR0FtRixFQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxFQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxFQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxFQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxHQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxLQUFBQSxFQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxFQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxLQUFBQSxFQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUVBQyxDQUFBQSxDQUFBQSxLQUFBQSxFQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxFQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxJQUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFBQSxLQUFBQSxFQUFBQSxDQUFBQSxDQTJYQUMsQ0FBQUEsQ0FBQUEsSUFBQUEsQ0FBQUEsRUFBQUEsQ0FBeUMsSUFBSyxDQUFFLENBQUEsQ0FBQSxDQUNoREMsQ0FBQUEsQ0FBQUEsSUFBQUEsQ0FBQUEsR0FBaUUsSUFBSyxDQUFFLENBQUEsQ0FBQSxDQUN4RUMsQ0FBQUEsQ0FBQUEsSUFBQUEsQ0FBQUEs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QUEsQ0FBS00sQ0FBQyxDQUFBLEdBQU0sSUFBQSxDQUFLLEtBQUtOLENBQUFBLENBQU0sQ0FBQyxDQUFBLEdBQ25ETSxDQUFBQSxDQUFJLENBQUNBLENBQUFBLENBQUFBLENBRUYsQ0FBRSxDQUFBLENBQUFELEVBQUcsQ0FBQSxDQUFBQyxDQUFFLENBQ2xCLENBQUEsS0FBQSxHQUFXTCxDQUFBQSxDQUFRLEVBQUEsRUFBTUEsQ0FBQUEsQ0FBUSxHQUFBLENBQUssQ0FDbEMsSUFBSUMsQ0FBQUEsQ0FBQUEsQ0FBYUQsQ0FBQUEsQ0FBUSxFQUFBLEVBQU0sSUFBQSxDQUFLLEVBQUEsQ0FBTSxHQUFBLENBQ3RDRSxDQUFBQSxDQUFNLEtBQUssR0FBQSxDQUFJRCxDQUFRLENBQUEsQ0FDdkJFLENBQUFBLENBQU0sS0FBSyxHQUFBLENBQUlGLENBQVEsQ0FBQSxDQUN2QkcsQ0FBQUEsQ0FBSSxDQUFDTCxDQUFBQSxDQUFNLENBQUEsQ0FBSUksQ0FBQUEsQ0FBTUosQ0FBQUEsQ0FBTSxDQUFBLENBQUlHLENBQUFBLENBQy9CRyxDQUFBQSxDQUFJTixDQUFBQSxDQUFNLEVBQUlHLENBQUFBLENBQU1ILENBQUFBLENBQU0sQ0FBQSxDQUFJSSxDQUFBQSxDQUVsQyxPQUFJSixDQUFBQSxDQUFNLENBQUEsR0FBTSxDQUFBLEVBQUssSUFBQSxDQUFLLEtBQUtLLENBQUMsQ0FBQSxHQUFNLElBQUEsQ0FBSyxJQUFBLENBQUtMLENBQUFBLENBQU0sQ0FBQyxDQUFBLEdBQ25ESyxDQUFBQSxDQUFJLENBQUNBLENBQUFBLENBQUFBLENBRUxMLENBQUFBLENBQU0sQ0FBQSxHQUFNLENBQUEsRUFBSyxLQUFLLElBQUEsQ0FBS00sQ0FBQyxDQUFBLEdBQU0sSUFBQSxDQUFLLEtBQUtOLENBQUFBLENBQU0sQ0FBQyxDQUFBLEdBQ25ETSxDQUFBQSxDQUFJLENBQUNBLENBQUFBLENBQUFBLENBRUYsQ0FBRSxDQUFBLENBQUFELEVBQUcsQ0FBQSxDQUFBQyxDQUFFLENBQ2xCLENBQUEsS0FBQSxHQUFXTCxDQUFBQSxDQUFRLEdBQUEsRUFBT0EsQ0FBQUEsQ0FBUSxHQUFBLENBQUssQ0FDbkMsSUFBSUMsQ0FBQUEsQ0FBQUEsQ0FBYUQsQ0FBQUEsQ0FBUSxHQUFBLEVBQU8sSUFBQSxDQUFLLEVBQUEsQ0FBTSxHQUFBLENBQ3ZDRSxDQUFBQSxDQUFNLEtBQUssR0FBQSxDQUFJRCxDQUFRLENBQUEsQ0FDdkJFLENBQUFBLENBQU0sS0FBSyxHQUFBLENBQUlGLENBQVEsQ0FBQSxDQUN2QkcsQ0FBQUEsQ0FBSSxDQUFDTCxDQUFBQSxDQUFNLENBQUEsQ0FBSUcsQ0FBQUEsQ0FBTUgsQ0FBQUEsQ0FBTSxDQUFBLENBQUlJLENBQUFBLENBQy9CRSxDQUFBQSxDQUFJLENBQUNOLEVBQU0sQ0FBQSxDQUFJSSxDQUFBQSxDQUFNSixDQUFBQSxDQUFNLENBQUEsQ0FBSUcsRUFFbkMsT0FBSUgsQ0FBQUEsQ0FBTSxDQUFBLEdBQU0sQ0FBQSxFQUFLLEtBQUssSUFBQSxDQUFLSyxDQUFDLENBQUEsR0FBTSxJQUFBLENBQUssSUFBQSxDQUFLTCxDQUFBQSxDQUFNLENBQUMsQ0FBQSxHQUNuREssRUFBSSxDQUFDQSxDQUFBQSxDQUFBQSxDQUVMTCxDQUFBQSxDQUFNLENBQUEsR0FBTSxHQUFLLElBQUEsQ0FBSyxJQUFBLENBQUtNLENBQUMsQ0FBQSxHQUFNLEtBQUssSUFBQSxDQUFLTixDQUFBQSxDQUFNLENBQUMsQ0FBQSxHQUNuRE0sQ0FBQUEsQ0FBSSxDQUFDQSxDQUFBQSxDQUFBQSxDQUVGLENBQUUsRUFBQUQsQ0FBQUEsQ0FBRyxDQUFBLENBQUFDLENBQUUsQ0FDbEIsQ0FBQSxLQUFBLEdBQVdMLENBQUFBLENBQVEsR0FBQSxFQUFPQSxDQUFBQSxDQUFRLElBQUssQ0FDbkMsSUFBSUMsQ0FBQUEsQ0FBQUEsQ0FBYUQsQ0FBQUEsQ0FBUSxHQUFBLEVBQU8sSUFBQSxDQUFLLEVBQUEsQ0FBTSxHQUFBLENBQ3ZDRSxFQUFNLElBQUEsQ0FBSyxHQUFBLENBQUlELENBQVEsQ0FBQSxDQUN2QkUsRUFBTSxJQUFBLENBQUssR0FBQSxDQUFJRixDQUFR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Y2FudmFzLmNqcyIsInNvdXJjZXNDb250ZW50IjpbIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRyb290LkNyeXB0b0pTID0gZmFjdG9yeSgpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uICgpIHtcblxuXHQvKmdsb2JhbHMgd2luZG93LCBnbG9iYWwsIHJlcXVpcmUqL1xuXG5cdC8qKlxuXHQgKiBDcnlwdG9KUyBjb3JlIGNvbXBvbmVudHMuXG5cdCAqL1xuXHR2YXIgQ3J5cHRvSlMgPSBDcnlwdG9KUyB8fCAoZnVuY3Rpb24gKE1hdGgsIHVuZGVmaW5lZCkge1xuXG5cdCAgICB2YXIgY3J5cHRvO1xuXG5cdCAgICAvLyBOYXRpdmUgY3J5cHRvIGZyb20gd2luZG93IChCcm93c2VyKVxuXHQgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jcnlwdG8pIHtcblx0ICAgICAgICBjcnlwdG8gPSB3aW5kb3cuY3J5cHRvO1xuXHQgICAgfVxuXG5cdCAgICAvLyBOYXRpdmUgY3J5cHRvIGluIHdlYiB3b3JrZXIgKEJyb3dzZXIpXG5cdCAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuY3J5cHRvKSB7XG5cdCAgICAgICAgY3J5cHRvID0gc2VsZi5jcnlwdG87XG5cdCAgICB9XG5cblx0ICAgIC8vIE5hdGl2ZSBjcnlwdG8gZnJvbSB3b3JrZXJcblx0ICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2xvYmFsVGhpcy5jcnlwdG8pIHtcblx0ICAgICAgICBjcnlwdG8gPSBnbG9iYWxUaGlzLmNyeXB0bztcblx0ICAgIH1cblxuXHQgICAgLy8gTmF0aXZlIChleHBlcmltZW50YWwgSUUgMTEpIGNyeXB0byBmcm9tIHdpbmRvdyAoQnJvd3Nlcilcblx0ICAgIGlmICghY3J5cHRvICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5tc0NyeXB0bykge1xuXHQgICAgICAgIGNyeXB0byA9IHdpbmRvdy5tc0NyeXB0bztcblx0ICAgIH1cblxuXHQgICAgLy8gTmF0aXZlIGNyeXB0byBmcm9tIGdsb2JhbCAoTm9kZUpTKVxuXHQgICAgaWYgKCFjcnlwdG8gJiYgdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2xvYmFsLmNyeXB0bykge1xuXHQgICAgICAgIGNyeXB0byA9IGdsb2JhbC5jcnlwdG87XG5cdCAgICB9XG5cblx0ICAgIC8vIE5hdGl2ZSBjcnlwdG8gaW1wb3J0IHZpYSByZXF1aXJlIChOb2RlSlMpXG5cdCAgICBpZiAoIWNyeXB0byAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHRyeSB7XG5cdCAgICAgICAgICAgIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpO1xuXHQgICAgICAgIH0gY2F0Y2ggKGVycikge31cblx0ICAgIH1cblxuXHQgICAgLypcblx0ICAgICAqIENyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBwc2V1ZG9yYW5kb20gbnVtYmVyIGdlbmVyYXRvclxuXHQgICAgICpcblx0ICAgICAqIEFzIE1hdGgucmFuZG9tKCkgaXMgY3J5cHRvZ3JhcGhpY2FsbHkgbm90IHNhZmUgdG8gdXNlXG5cdCAgICAgKi9cblx0ICAgIHZhciBjcnlwdG9TZWN1cmVSYW5kb21JbnQgPSBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgaWYgKGNyeXB0bykge1xuXHQgICAgICAgICAgICAvLyBVc2UgZ2V0UmFuZG9tVmFsdWVzIG1ldGhvZCAoQnJvd3Nlcilcblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB0cnkge1xuXHQgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF07XG5cdCAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHt9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBVc2UgcmFuZG9tQnl0ZXMgbWV0aG9kIChOb2RlSlMpXG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgY3J5cHRvLnJhbmRvbUJ5dGVzID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB0cnkge1xuXHQgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNCkucmVhZEludDMyTEUoKTtcblx0ICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge31cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IG5ldyBFcnJvcignTmF0aXZlIGNyeXB0byBtb2R1bGUgY291bGQgbm90IGJlIHVzZWQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVyLicpO1xuXHQgICAgfTtcblxuXHQgICAgLypcblx0ICAgICAqIExvY2FsIHBvbHlmaWxsIG9mIE9iamVjdC5jcmVhdGVcblxuXHQgICAgICovXG5cdCAgICB2YXIgY3JlYXRlID0gT2JqZWN0LmNyZWF0ZSB8fCAoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgIGZ1bmN0aW9uIEYoKSB7fVxuXG5cdCAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChvYmopIHtcblx0ICAgICAgICAgICAgdmFyIHN1YnR5cGU7XG5cblx0ICAgICAgICAgICAgRi5wcm90b3R5cGUgPSBvYmo7XG5cblx0ICAgICAgICAgICAgc3VidHlwZSA9IG5ldyBGKCk7XG5cblx0ICAgICAgICAgICAgRi5wcm90b3R5cGUgPSBudWxsO1xuXG5cdCAgICAgICAgICAgIHJldHVybiBzdWJ0eXBlO1xuXHQgICAgICAgIH07XG5cdCAgICB9KCkpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIENyeXB0b0pTIG5hbWVzcGFjZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIEMgPSB7fTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBMaWJyYXJ5IG5hbWVzcGFjZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIENfbGliID0gQy5saWIgPSB7fTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBCYXNlIG9iamVjdCBmb3IgcHJvdG90eXBhbCBpbmhlcml0YW5jZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIEJhc2UgPSBDX2xpYi5CYXNlID0gKGZ1bmN0aW9uICgpIHtcblxuXG5cdCAgICAgICAgcmV0dXJuIHtcblx0ICAgICAgICAgICAgLyoqXG5cdCAgICAgICAgICAgICAqIENyZWF0ZXMgYSBuZXcgb2JqZWN0IHRoYXQgaW5oZXJpdHMgZnJvbSB0aGlzIG9iamVjdC5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG92ZXJyaWRlcyBQcm9wZXJ0aWVzIHRvIGNvcHkgaW50byB0aGUgbmV3IG9iamVjdC5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgbmV3IG9iamVjdC5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiAgICAgdmFyIE15VHlwZSA9IENyeXB0b0pTLmxpYi5CYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgICAgICAqICAgICAgICAgZmllbGQ6ICd2YWx1ZScsXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqICAgICAgICAgbWV0aG9kOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgICAqICAgICAgICAgfVxuXHQgICAgICAgICAgICAgKiAgICAgfSk7XG5cdCAgICAgICAgICAgICAqL1xuXHQgICAgICAgICAgICBleHRlbmQ6IGZ1bmN0aW9uIChvdmVycmlkZXMpIHtcblx0ICAgICAgICAgICAgICAgIC8vIFNwYXduXG5cdCAgICAgICAgICAgICAgICB2YXIgc3VidHlwZSA9IGNyZWF0ZSh0aGlzKTtcblxuXHQgICAgICAgICAgICAgICAgLy8gQXVnbWVudFxuXHQgICAgICAgICAgICAgICAgaWYgKG92ZXJyaWRlcykge1xuXHQgICAgICAgICAgICAgICAgICAgIHN1YnR5cGUubWl4SW4ob3ZlcnJpZGVzKTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGRlZmF1bHQgaW5pdGlhbGl6ZXJcblx0ICAgICAgICAgICAgICAgIGlmICghc3VidHlwZS5oYXNPd25Qcm9wZXJ0eSgnaW5pdCcpIHx8IHRoaXMuaW5pdCA9PT0gc3VidHlwZS5pbml0KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgc3VidHlwZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlLiRzdXBlci5pbml0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cdCAgICAgICAgICAgICAgICAgICAgfTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZXIncyBwcm90b3R5cGUgaXMgdGhlIHN1YnR5cGUgb2JqZWN0XG5cdCAgICAgICAgICAgICAgICBzdWJ0eXBlLmluaXQucHJvdG90eXBlID0gc3VidHlwZTtcblxuXHQgICAgICAgICAgICAgICAgLy8gUmVmZXJlbmNlIHN1cGVydHlwZVxuXHQgICAgICAgICAgICAgICAgc3VidHlwZS4kc3VwZXIgPSB0aGlzO1xuXG5cdCAgICAgICAgICAgICAgICByZXR1cm4gc3VidHlwZTtcblx0ICAgICAgICAgICAgfSxcblxuXHQgICAgICAgICAgICAvKipcblx0ICAgICAgICAgICAgICogRXh0ZW5kcyB0aGlzIG9iamVjdCBhbmQgcnVucyB0aGUgaW5pdCBtZXRob2QuXG5cdCAgICAgICAgICAgICAqIEFyZ3VtZW50cyB0byBjcmVhdGUoKSB3aWxsIGJlIHBhc3NlZCB0byBpbml0KCkuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gVGhlIG5ldyBvYmplY3QuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogICAgIHZhciBpbnN0YW5jZSA9IE15VHlwZS5jcmVhdGUoKTtcblx0ICAgICAgICAgICAgICovXG5cdCAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gdGhpcy5leHRlbmQoKTtcblx0ICAgICAgICAgICAgICAgIGluc3RhbmNlLmluaXQuYXBwbHkoaW5zdGFuY2UsIGFyZ3VtZW50cyk7XG5cblx0ICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcblx0ICAgICAgICAgICAgfSxcblxuXHQgICAgICAgICAgICAvKipcblx0ICAgICAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIG9iamVjdC5cblx0ICAgICAgICAgICAgICogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRkIHNvbWUgbG9naWMgd2hlbiB5b3VyIG9iamVjdHMgYXJlIGNyZWF0ZWQuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqICAgICB2YXIgTXlUeXBlID0gQ3J5cHRvSlMubGliLkJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAgICAgICogICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgICAqICAgICAgICAgICAgIC8vIC4uLlxuXHQgICAgICAgICAgICAgKiAgICAgICAgIH1cblx0ICAgICAgICAgICAgICogICAgIH0pO1xuXHQgICAgICAgICAgICAgKi9cblx0ICAgICAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB9LFxuXG5cdCAgICAgICAgICAgIC8qKlxuXHQgICAgICAgICAgICAgKiBDb3BpZXMgcHJvcGVydGllcyBpbnRvIHRoaXMgb2JqZWN0LlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllcyBUaGUgcHJvcGVydGllcyB0byBtaXggaW4uXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqICAgICBNeVR5cGUubWl4SW4oe1xuXHQgICAgICAgICAgICAgKiAgICAgICAgIGZpZWxkOiAndmFsdWUnXG5cdCAgICAgICAgICAgICAqICAgICB9KTtcblx0ICAgICAgICAgICAgICovXG5cdCAgICAgICAgICAgIG1peEluOiBmdW5jdGlvbiAocHJvcGVydGllcykge1xuXHQgICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcGVydHlOYW1lIGluIHByb3BlcnRpZXMpIHtcblx0ICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbcHJvcGVydHlOYW1lXSA9IHByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcblx0ICAgICAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgICAgIC8vIElFIHdvbid0IGNvcHkgdG9TdHJpbmcgdXNpbmcgdGhlIGxvb3AgYWJvdmVcblx0ICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCd0b1N0cmluZycpKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdGhpcy50b1N0cmluZyA9IHByb3BlcnRpZXMudG9TdHJpbmc7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH0sXG5cblx0ICAgICAgICAgICAgLyoqXG5cdCAgICAgICAgICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgb2JqZWN0LlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9IFRoZSBjbG9uZS5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogICAgIHZhciBjbG9uZSA9IGluc3RhbmNlLmNsb25lKCk7XG5cdCAgICAgICAgICAgICAqL1xuXHQgICAgICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfTtcblx0ICAgIH0oKSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogQW4gYXJyYXkgb2YgMzItYml0IHdvcmRzLlxuXHQgICAgICpcblx0ICAgICAqIEBwcm9wZXJ0eSB7QXJyYXl9IHdvcmRzIFRoZSBhcnJheSBvZiAzMi1iaXQgd29yZHMuXG5cdCAgICAgKiBAcHJvcGVydHkge251bWJlcn0gc2lnQnl0ZXMgVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBieXRlcyBpbiB0aGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgKi9cblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXkgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0FycmF5fSB3b3JkcyAoT3B0aW9uYWwpIEFuIGFycmF5IG9mIDMyLWJpdCB3b3Jkcy5cblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gc2lnQnl0ZXMgKE9wdGlvbmFsKSBUaGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGJ5dGVzIGluIHRoZSB3b3Jkcy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmxpYi5Xb3JkQXJyYXkuY3JlYXRlKCk7XG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy5saWIuV29yZEFycmF5LmNyZWF0ZShbMHgwMDAxMDIwMywgMHgwNDA1MDYwN10pO1xuXHQgICAgICAgICAqICAgICB2YXIgd29yZEFycmF5ID0gQ3J5cHRvSlMubGliLldvcmRBcnJheS5jcmVhdGUoWzB4MDAwMTAyMDMsIDB4MDQwNTA2MDddLCA2KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAod29yZHMsIHNpZ0J5dGVzKSB7XG5cdCAgICAgICAgICAgIHdvcmRzID0gdGhpcy53b3JkcyA9IHdvcmRzIHx8IFtdO1xuXG5cdCAgICAgICAgICAgIGlmIChzaWdCeXRlcyAhPSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgIHRoaXMuc2lnQnl0ZXMgPSBzaWdCeXRlcztcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIHRoaXMuc2lnQnl0ZXMgPSB3b3Jkcy5sZW5ndGggKiA0O1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIHRoaXMgd29yZCBhcnJheSB0byBhIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7RW5jb2Rlcn0gZW5jb2RlciAoT3B0aW9uYWwpIFRoZSBlbmNvZGluZyBzdHJhdGVneSB0byB1c2UuIERlZmF1bHQ6IENyeXB0b0pTLmVuYy5IZXhcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHN0cmluZ2lmaWVkIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBzdHJpbmcgPSB3b3JkQXJyYXkgKyAnJztcblx0ICAgICAgICAgKiAgICAgdmFyIHN0cmluZyA9IHdvcmRBcnJheS50b1N0cmluZygpO1xuXHQgICAgICAgICAqICAgICB2YXIgc3RyaW5nID0gd29yZEFycmF5LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24gKGVuY29kZXIpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIChlbmNvZGVyIHx8IEhleCkuc3RyaW5naWZ5KHRoaXMpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb25jYXRlbmF0ZXMgYSB3b3JkIGFycmF5IHRvIHRoaXMgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fSB3b3JkQXJyYXkgVGhlIHdvcmQgYXJyYXkgdG8gYXBwZW5kLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHdvcmRBcnJheTEuY29uY2F0KHdvcmRBcnJheTIpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNvbmNhdDogZnVuY3Rpb24gKHdvcmRBcnJheSkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIHRoaXNXb3JkcyA9IHRoaXMud29yZHM7XG5cdCAgICAgICAgICAgIHZhciB0aGF0V29yZHMgPSB3b3JkQXJyYXkud29yZHM7XG5cdCAgICAgICAgICAgIHZhciB0aGlzU2lnQnl0ZXMgPSB0aGlzLnNpZ0J5dGVzO1xuXHQgICAgICAgICAgICB2YXIgdGhhdFNpZ0J5dGVzID0gd29yZEFycmF5LnNpZ0J5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIENsYW1wIGV4Y2VzcyBiaXRzXG5cdCAgICAgICAgICAgIHRoaXMuY2xhbXAoKTtcblxuXHQgICAgICAgICAgICAvLyBDb25jYXRcblx0ICAgICAgICAgICAgaWYgKHRoaXNTaWdCeXRlcyAlIDQpIHtcblx0ICAgICAgICAgICAgICAgIC8vIENvcHkgb25lIGJ5dGUgYXQgYSB0aW1lXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoYXRTaWdCeXRlczsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIHRoYXRCeXRlID0gKHRoYXRXb3Jkc1tpID4+PiAyXSA+Pj4gKDI0IC0gKGkgJSA0KSAqIDgpKSAmIDB4ZmY7XG5cdCAgICAgICAgICAgICAgICAgICAgdGhpc1dvcmRzWyh0aGlzU2lnQnl0ZXMgKyBpKSA+Pj4gMl0gfD0gdGhhdEJ5dGUgPDwgKDI0IC0gKCh0aGlzU2lnQnl0ZXMgKyBpKSAlIDQpICogOCk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAvLyBDb3B5IG9uZSB3b3JkIGF0IGEgdGltZVxuXHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGF0U2lnQnl0ZXM7IGogKz0gNCkge1xuXHQgICAgICAgICAgICAgICAgICAgIHRoaXNXb3Jkc1sodGhpc1NpZ0J5dGVzICsgaikgPj4+IDJdID0gdGhhdFdvcmRzW2ogPj4+IDJdO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIHRoaXMuc2lnQnl0ZXMgKz0gdGhhdFNpZ0J5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIENoYWluYWJsZVxuXHQgICAgICAgICAgICByZXR1cm4gdGhpcztcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUmVtb3ZlcyBpbnNpZ25pZmljYW50IGJpdHMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHdvcmRBcnJheS5jbGFtcCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNsYW1wOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSB0aGlzLndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgc2lnQnl0ZXMgPSB0aGlzLnNpZ0J5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIENsYW1wXG5cdCAgICAgICAgICAgIHdvcmRzW3NpZ0J5dGVzID4+PiAyXSAmPSAweGZmZmZmZmZmIDw8ICgzMiAtIChzaWdCeXRlcyAlIDQpICogOCk7XG5cdCAgICAgICAgICAgIHdvcmRzLmxlbmd0aCA9IE1hdGguY2VpbChzaWdCeXRlcyAvIDQpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBjbG9uZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGNsb25lID0gd29yZEFycmF5LmNsb25lKCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2xvbmU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGNsb25lID0gQmFzZS5jbG9uZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICBjbG9uZS53b3JkcyA9IHRoaXMud29yZHMuc2xpY2UoMCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgd29yZCBhcnJheSBmaWxsZWQgd2l0aCByYW5kb20gYnl0ZXMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gbkJ5dGVzIFRoZSBudW1iZXIgb2YgcmFuZG9tIGJ5dGVzIHRvIGdlbmVyYXRlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgcmFuZG9tIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy5saWIuV29yZEFycmF5LnJhbmRvbSgxNik7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcmFuZG9tOiBmdW5jdGlvbiAobkJ5dGVzKSB7XG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IFtdO1xuXG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbkJ5dGVzOyBpICs9IDQpIHtcblx0ICAgICAgICAgICAgICAgIHdvcmRzLnB1c2goY3J5cHRvU2VjdXJlUmFuZG9tSW50KCkpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkuaW5pdCh3b3JkcywgbkJ5dGVzKTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBFbmNvZGVyIG5hbWVzcGFjZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIENfZW5jID0gQy5lbmMgPSB7fTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBIZXggZW5jb2Rpbmcgc3RyYXRlZ3kuXG5cdCAgICAgKi9cblx0ICAgIHZhciBIZXggPSBDX2VuYy5IZXggPSB7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgYSB3b3JkIGFycmF5IHRvIGEgaGV4IHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fSB3b3JkQXJyYXkgVGhlIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBoZXggc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgaGV4U3RyaW5nID0gQ3J5cHRvSlMuZW5jLkhleC5zdHJpbmdpZnkod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uICh3b3JkQXJyYXkpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IHdvcmRBcnJheS53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHNpZ0J5dGVzID0gd29yZEFycmF5LnNpZ0J5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnRcblx0ICAgICAgICAgICAgdmFyIGhleENoYXJzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2lnQnl0ZXM7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGJpdGUgPSAod29yZHNbaSA+Pj4gMl0gPj4+ICgyNCAtIChpICUgNCkgKiA4KSkgJiAweGZmO1xuXHQgICAgICAgICAgICAgICAgaGV4Q2hhcnMucHVzaCgoYml0ZSA+Pj4gNCkudG9TdHJpbmcoMTYpKTtcblx0ICAgICAgICAgICAgICAgIGhleENoYXJzLnB1c2goKGJpdGUgJiAweDBmKS50b1N0cmluZygxNikpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGhleENoYXJzLmpvaW4oJycpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIGhleCBzdHJpbmcgdG8gYSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGhleFN0ciBUaGUgaGV4IHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy5lbmMuSGV4LnBhcnNlKGhleFN0cmluZyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcGFyc2U6IGZ1bmN0aW9uIChoZXhTdHIpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgdmFyIGhleFN0ckxlbmd0aCA9IGhleFN0ci5sZW5ndGg7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSBbXTtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZXhTdHJMZW5ndGg7IGkgKz0gMikge1xuXHQgICAgICAgICAgICAgICAgd29yZHNbaSA+Pj4gM10gfD0gcGFyc2VJbnQoaGV4U3RyLnN1YnN0cihpLCAyKSwgMTYpIDw8ICgyNCAtIChpICUgOCkgKiA0KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiBuZXcgV29yZEFycmF5LmluaXQod29yZHMsIGhleFN0ckxlbmd0aCAvIDIpO1xuXHQgICAgICAgIH1cblx0ICAgIH07XG5cblx0ICAgIC8qKlxuXHQgICAgICogTGF0aW4xIGVuY29kaW5nIHN0cmF0ZWd5LlxuXHQgICAgICovXG5cdCAgICB2YXIgTGF0aW4xID0gQ19lbmMuTGF0aW4xID0ge1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgd29yZCBhcnJheSB0byBhIExhdGluMSBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheX0gd29yZEFycmF5IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgTGF0aW4xIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGxhdGluMVN0cmluZyA9IENyeXB0b0pTLmVuYy5MYXRpbjEuc3RyaW5naWZ5KHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAod29yZEFycmF5KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSB3b3JkQXJyYXkud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBzaWdCeXRlcyA9IHdvcmRBcnJheS5zaWdCeXRlcztcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0XG5cdCAgICAgICAgICAgIHZhciBsYXRpbjFDaGFycyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpZ0J5dGVzOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHZhciBiaXRlID0gKHdvcmRzW2kgPj4+IDJdID4+PiAoMjQgLSAoaSAlIDQpICogOCkpICYgMHhmZjtcblx0ICAgICAgICAgICAgICAgIGxhdGluMUNoYXJzLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShiaXRlKSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gbGF0aW4xQ2hhcnMuam9pbignJyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgTGF0aW4xIHN0cmluZyB0byBhIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGF0aW4xU3RyIFRoZSBMYXRpbjEgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmVuYy5MYXRpbjEucGFyc2UobGF0aW4xU3RyaW5nKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBwYXJzZTogZnVuY3Rpb24gKGxhdGluMVN0cikge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgbGF0aW4xU3RyTGVuZ3RoID0gbGF0aW4xU3RyLmxlbmd0aDtcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0XG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhdGluMVN0ckxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB3b3Jkc1tpID4+PiAyXSB8PSAobGF0aW4xU3RyLmNoYXJDb2RlQXQoaSkgJiAweGZmKSA8PCAoMjQgLSAoaSAlIDQpICogOCk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gbmV3IFdvcmRBcnJheS5pbml0KHdvcmRzLCBsYXRpbjFTdHJMZW5ndGgpO1xuXHQgICAgICAgIH1cblx0ICAgIH07XG5cblx0ICAgIC8qKlxuXHQgICAgICogVVRGLTggZW5jb2Rpbmcgc3RyYXRlZ3kuXG5cdCAgICAgKi9cblx0ICAgIHZhciBVdGY4ID0gQ19lbmMuVXRmOCA9IHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIHdvcmQgYXJyYXkgdG8gYSBVVEYtOCBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheX0gd29yZEFycmF5IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVRGLTggc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgdXRmOFN0cmluZyA9IENyeXB0b0pTLmVuYy5VdGY4LnN0cmluZ2lmeSh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKHdvcmRBcnJheSkge1xuXHQgICAgICAgICAgICB0cnkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoTGF0aW4xLnN0cmluZ2lmeSh3b3JkQXJyYXkpKSk7XG5cdCAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTWFsZm9ybWVkIFVURi04IGRhdGEnKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIFVURi04IHN0cmluZyB0byBhIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXRmOFN0ciBUaGUgVVRGLTggc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHV0ZjhTdHJpbmcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodXRmOFN0cikge1xuXHQgICAgICAgICAgICByZXR1cm4gTGF0aW4xLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh1dGY4U3RyKSkpO1xuXHQgICAgICAgIH1cblx0ICAgIH07XG5cblx0ICAgIC8qKlxuXHQgICAgICogQWJzdHJhY3QgYnVmZmVyZWQgYmxvY2sgYWxnb3JpdGhtIHRlbXBsYXRlLlxuXHQgICAgICpcblx0ICAgICAqIFRoZSBwcm9wZXJ0eSBibG9ja1NpemUgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBhIGNvbmNyZXRlIHN1YnR5cGUuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IF9taW5CdWZmZXJTaXplIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgc2hvdWxkIGJlIGtlcHQgdW5wcm9jZXNzZWQgaW4gdGhlIGJ1ZmZlci4gRGVmYXVsdDogMFxuXHQgICAgICovXG5cdCAgICB2YXIgQnVmZmVyZWRCbG9ja0FsZ29yaXRobSA9IENfbGliLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0gPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUmVzZXRzIHRoaXMgYmxvY2sgYWxnb3JpdGhtJ3MgZGF0YSBidWZmZXIgdG8gaXRzIGluaXRpYWwgc3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ucmVzZXQoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICByZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBJbml0aWFsIHZhbHVlc1xuXHQgICAgICAgICAgICB0aGlzLl9kYXRhID0gbmV3IFdvcmRBcnJheS5pbml0KCk7XG5cdCAgICAgICAgICAgIHRoaXMuX25EYXRhQnl0ZXMgPSAwO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBBZGRzIG5ldyBkYXRhIHRvIHRoaXMgYmxvY2sgYWxnb3JpdGhtJ3MgYnVmZmVyLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBkYXRhIFRoZSBkYXRhIHRvIGFwcGVuZC4gU3RyaW5ncyBhcmUgY29udmVydGVkIHRvIGEgV29yZEFycmF5IHVzaW5nIFVURi04LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICBidWZmZXJlZEJsb2NrQWxnb3JpdGhtLl9hcHBlbmQoJ2RhdGEnKTtcblx0ICAgICAgICAgKiAgICAgYnVmZmVyZWRCbG9ja0FsZ29yaXRobS5fYXBwZW5kKHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgX2FwcGVuZDogZnVuY3Rpb24gKGRhdGEpIHtcblx0ICAgICAgICAgICAgLy8gQ29udmVydCBzdHJpbmcgdG8gV29yZEFycmF5LCBlbHNlIGFzc3VtZSBXb3JkQXJyYXkgYWxyZWFkeVxuXHQgICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgICAgIGRhdGEgPSBVdGY4LnBhcnNlKGRhdGEpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gQXBwZW5kXG5cdCAgICAgICAgICAgIHRoaXMuX2RhdGEuY29uY2F0KGRhdGEpO1xuXHQgICAgICAgICAgICB0aGlzLl9uRGF0YUJ5dGVzICs9IGRhdGEuc2lnQnl0ZXM7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFByb2Nlc3NlcyBhdmFpbGFibGUgZGF0YSBibG9ja3MuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBUaGlzIG1ldGhvZCBpbnZva2VzIF9kb1Byb2Nlc3NCbG9jayhvZmZzZXQpLCB3aGljaCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGEgY29uY3JldGUgc3VidHlwZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9GbHVzaCBXaGV0aGVyIGFsbCBibG9ja3MgYW5kIHBhcnRpYWwgYmxvY2tzIHNob3VsZCBiZSBwcm9jZXNzZWQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBwcm9jZXNzZWQgZGF0YS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHByb2Nlc3NlZERhdGEgPSBidWZmZXJlZEJsb2NrQWxnb3JpdGhtLl9wcm9jZXNzKCk7XG5cdCAgICAgICAgICogICAgIHZhciBwcm9jZXNzZWREYXRhID0gYnVmZmVyZWRCbG9ja0FsZ29yaXRobS5fcHJvY2VzcyghISdmbHVzaCcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIF9wcm9jZXNzOiBmdW5jdGlvbiAoZG9GbHVzaCkge1xuXHQgICAgICAgICAgICB2YXIgcHJvY2Vzc2VkV29yZHM7XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblx0ICAgICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IGRhdGEud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBkYXRhU2lnQnl0ZXMgPSBkYXRhLnNpZ0J5dGVzO1xuXHQgICAgICAgICAgICB2YXIgYmxvY2tTaXplID0gdGhpcy5ibG9ja1NpemU7XG5cdCAgICAgICAgICAgIHZhciBibG9ja1NpemVCeXRlcyA9IGJsb2NrU2l6ZSAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gQ291bnQgYmxvY2tzIHJlYWR5XG5cdCAgICAgICAgICAgIHZhciBuQmxvY2tzUmVhZHkgPSBkYXRhU2lnQnl0ZXMgLyBibG9ja1NpemVCeXRlcztcblx0ICAgICAgICAgICAgaWYgKGRvRmx1c2gpIHtcblx0ICAgICAgICAgICAgICAgIC8vIFJvdW5kIHVwIHRvIGluY2x1ZGUgcGFydGlhbCBibG9ja3Ncblx0ICAgICAgICAgICAgICAgIG5CbG9ja3NSZWFkeSA9IE1hdGguY2VpbChuQmxvY2tzUmVhZHkpO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgLy8gUm91bmQgZG93biB0byBpbmNsdWRlIG9ubHkgZnVsbCBibG9ja3MsXG5cdCAgICAgICAgICAgICAgICAvLyBsZXNzIHRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgbXVzdCByZW1haW4gaW4gdGhlIGJ1ZmZlclxuXHQgICAgICAgICAgICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5tYXgoKG5CbG9ja3NSZWFkeSB8IDApIC0gdGhpcy5fbWluQnVmZmVyU2l6ZSwgMCk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBDb3VudCB3b3JkcyByZWFkeVxuXHQgICAgICAgICAgICB2YXIgbldvcmRzUmVhZHkgPSBuQmxvY2tzUmVhZHkgKiBibG9ja1NpemU7XG5cblx0ICAgICAgICAgICAgLy8gQ291bnQgYnl0ZXMgcmVhZHlcblx0ICAgICAgICAgICAgdmFyIG5CeXRlc1JlYWR5ID0gTWF0aC5taW4obldvcmRzUmVhZHkgKiA0LCBkYXRhU2lnQnl0ZXMpO1xuXG5cdCAgICAgICAgICAgIC8vIFByb2Nlc3MgYmxvY2tzXG5cdCAgICAgICAgICAgIGlmIChuV29yZHNSZWFkeSkge1xuXHQgICAgICAgICAgICAgICAgZm9yICh2YXIgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbldvcmRzUmVhZHk7IG9mZnNldCArPSBibG9ja1NpemUpIHtcblx0ICAgICAgICAgICAgICAgICAgICAvLyBQZXJmb3JtIGNvbmNyZXRlLWFsZ29yaXRobSBsb2dpY1xuXHQgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RvUHJvY2Vzc0Jsb2NrKGRhdGFXb3Jkcywgb2Zmc2V0KTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHByb2Nlc3NlZCB3b3Jkc1xuXHQgICAgICAgICAgICAgICAgcHJvY2Vzc2VkV29yZHMgPSBkYXRhV29yZHMuc3BsaWNlKDAsIG5Xb3Jkc1JlYWR5KTtcblx0ICAgICAgICAgICAgICAgIGRhdGEuc2lnQnl0ZXMgLT0gbkJ5dGVzUmVhZHk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBSZXR1cm4gcHJvY2Vzc2VkIHdvcmRzXG5cdCAgICAgICAgICAgIHJldHVybiBuZXcgV29yZEFycmF5LmluaXQocHJvY2Vzc2VkV29yZHMsIG5CeXRlc1JlYWR5KTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBvYmplY3QuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9IFRoZSBjbG9uZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGNsb25lID0gYnVmZmVyZWRCbG9ja0FsZ29yaXRobS5jbG9uZSgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNsb25lOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHZhciBjbG9uZSA9IEJhc2UuY2xvbmUuY2FsbCh0aGlzKTtcblx0ICAgICAgICAgICAgY2xvbmUuX2RhdGEgPSB0aGlzLl9kYXRhLmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfbWluQnVmZmVyU2l6ZTogMFxuXHQgICAgfSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogQWJzdHJhY3QgaGFzaGVyIHRlbXBsYXRlLlxuXHQgICAgICpcblx0ICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibG9ja1NpemUgVGhlIG51bWJlciBvZiAzMi1iaXQgd29yZHMgdGhpcyBoYXNoZXIgb3BlcmF0ZXMgb24uIERlZmF1bHQ6IDE2ICg1MTIgYml0cylcblx0ICAgICAqL1xuXHQgICAgdmFyIEhhc2hlciA9IENfbGliLkhhc2hlciA9IEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0uZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2ZnOiBCYXNlLmV4dGVuZCgpLFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIGhhc2hlci5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgKE9wdGlvbmFsKSBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHVzZSBmb3IgdGhpcyBoYXNoIGNvbXB1dGF0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgaGFzaGVyID0gQ3J5cHRvSlMuYWxnby5TSEEyNTYuY3JlYXRlKCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgaW5pdDogZnVuY3Rpb24gKGNmZykge1xuXHQgICAgICAgICAgICAvLyBBcHBseSBjb25maWcgZGVmYXVsdHNcblx0ICAgICAgICAgICAgdGhpcy5jZmcgPSB0aGlzLmNmZy5leHRlbmQoY2ZnKTtcblxuXHQgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCB2YWx1ZXNcblx0ICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBSZXNldHMgdGhpcyBoYXNoZXIgdG8gaXRzIGluaXRpYWwgc3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGhhc2hlci5yZXNldCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFJlc2V0IGRhdGEgYnVmZmVyXG5cdCAgICAgICAgICAgIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ucmVzZXQuY2FsbCh0aGlzKTtcblxuXHQgICAgICAgICAgICAvLyBQZXJmb3JtIGNvbmNyZXRlLWhhc2hlciBsb2dpY1xuXHQgICAgICAgICAgICB0aGlzLl9kb1Jlc2V0KCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFVwZGF0ZXMgdGhpcyBoYXNoZXIgd2l0aCBhIG1lc3NhZ2UuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2VVcGRhdGUgVGhlIG1lc3NhZ2UgdG8gYXBwZW5kLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7SGFzaGVyfSBUaGlzIGhhc2hlci5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgaGFzaGVyLnVwZGF0ZSgnbWVzc2FnZScpO1xuXHQgICAgICAgICAqICAgICBoYXNoZXIudXBkYXRlKHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgdXBkYXRlOiBmdW5jdGlvbiAobWVzc2FnZVVwZGF0ZSkge1xuXHQgICAgICAgICAgICAvLyBBcHBlbmRcblx0ICAgICAgICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuXG5cdCAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgaGFzaFxuXHQgICAgICAgICAgICB0aGlzLl9wcm9jZXNzKCk7XG5cblx0ICAgICAgICAgICAgLy8gQ2hhaW5hYmxlXG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBGaW5hbGl6ZXMgdGhlIGhhc2ggY29tcHV0YXRpb24uXG5cdCAgICAgICAgICogTm90ZSB0aGF0IHRoZSBmaW5hbGl6ZSBvcGVyYXRpb24gaXMgZWZmZWN0aXZlbHkgYSBkZXN0cnVjdGl2ZSwgcmVhZC1vbmNlIG9wZXJhdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZVVwZGF0ZSAoT3B0aW9uYWwpIEEgZmluYWwgbWVzc2FnZSB1cGRhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBoYXNoLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgaGFzaCA9IGhhc2hlci5maW5hbGl6ZSgpO1xuXHQgICAgICAgICAqICAgICB2YXIgaGFzaCA9IGhhc2hlci5maW5hbGl6ZSgnbWVzc2FnZScpO1xuXHQgICAgICAgICAqICAgICB2YXIgaGFzaCA9IGhhc2hlci5maW5hbGl6ZSh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGZpbmFsaXplOiBmdW5jdGlvbiAobWVzc2FnZVVwZGF0ZSkge1xuXHQgICAgICAgICAgICAvLyBGaW5hbCBtZXNzYWdlIHVwZGF0ZVxuXHQgICAgICAgICAgICBpZiAobWVzc2FnZVVwZGF0ZSkge1xuXHQgICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gUGVyZm9ybSBjb25jcmV0ZS1oYXNoZXIgbG9naWNcblx0ICAgICAgICAgICAgdmFyIGhhc2ggPSB0aGlzLl9kb0ZpbmFsaXplKCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGhhc2g7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGJsb2NrU2l6ZTogNTEyLzMyLFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ3JlYXRlcyBhIHNob3J0Y3V0IGZ1bmN0aW9uIHRvIGEgaGFzaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7SGFzaGVyfSBoYXNoZXIgVGhlIGhhc2hlciB0byBjcmVhdGUgYSBoZWxwZXIgZm9yLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBzaG9ydGN1dCBmdW5jdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIFNIQTI1NiA9IENyeXB0b0pTLmxpYi5IYXNoZXIuX2NyZWF0ZUhlbHBlcihDcnlwdG9KUy5hbGdvLlNIQTI1Nik7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgX2NyZWF0ZUhlbHBlcjogZnVuY3Rpb24gKGhhc2hlcikge1xuXHQgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1lc3NhZ2UsIGNmZykge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBoYXNoZXIuaW5pdChjZmcpLmZpbmFsaXplKG1lc3NhZ2UpO1xuXHQgICAgICAgICAgICB9O1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgc2hvcnRjdXQgZnVuY3Rpb24gdG8gdGhlIEhNQUMncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtIYXNoZXJ9IGhhc2hlciBUaGUgaGFzaGVyIHRvIHVzZSBpbiB0aGlzIEhNQUMgaGVscGVyLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBzaG9ydGN1dCBmdW5jdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIEhtYWNTSEEyNTYgPSBDcnlwdG9KUy5saWIuSGFzaGVyLl9jcmVhdGVIbWFjSGVscGVyKENyeXB0b0pTLmFsZ28uU0hBMjU2KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBfY3JlYXRlSG1hY0hlbHBlcjogZnVuY3Rpb24gKGhhc2hlcikge1xuXHQgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1lc3NhZ2UsIGtleSkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDX2FsZ28uSE1BQy5pbml0KGhhc2hlciwga2V5KS5maW5hbGl6ZShtZXNzYWdlKTtcblx0ICAgICAgICAgICAgfTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBbGdvcml0aG0gbmFtZXNwYWNlLlxuXHQgICAgICovXG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvID0ge307XG5cblx0ICAgIHJldHVybiBDO1xuXHR9KE1hdGgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUztcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uICgpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblx0ICAgIHZhciBIYXNoZXIgPSBDX2xpYi5IYXNoZXI7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvLyBSZXVzYWJsZSBvYmplY3Rcblx0ICAgIHZhciBXID0gW107XG5cblx0ICAgIC8qKlxuXHQgICAgICogU0hBLTEgaGFzaCBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBTSEExID0gQ19hbGdvLlNIQTEgPSBIYXNoZXIuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB0aGlzLl9oYXNoID0gbmV3IFdvcmRBcnJheS5pbml0KFtcblx0ICAgICAgICAgICAgICAgIDB4Njc0NTIzMDEsIDB4ZWZjZGFiODksXG5cdCAgICAgICAgICAgICAgICAweDk4YmFkY2ZlLCAweDEwMzI1NDc2LFxuXHQgICAgICAgICAgICAgICAgMHhjM2QyZTFmMFxuXHQgICAgICAgICAgICBdKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvUHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciBIID0gdGhpcy5faGFzaC53b3JkcztcblxuXHQgICAgICAgICAgICAvLyBXb3JraW5nIHZhcmlhYmxlc1xuXHQgICAgICAgICAgICB2YXIgYSA9IEhbMF07XG5cdCAgICAgICAgICAgIHZhciBiID0gSFsxXTtcblx0ICAgICAgICAgICAgdmFyIGMgPSBIWzJdO1xuXHQgICAgICAgICAgICB2YXIgZCA9IEhbM107XG5cdCAgICAgICAgICAgIHZhciBlID0gSFs0XTtcblxuXHQgICAgICAgICAgICAvLyBDb21wdXRhdGlvblxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDgwOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIGlmIChpIDwgMTYpIHtcblx0ICAgICAgICAgICAgICAgICAgICBXW2ldID0gTVtvZmZzZXQgKyBpXSB8IDA7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBuID0gV1tpIC0gM10gXiBXW2kgLSA4XSBeIFdbaSAtIDE0XSBeIFdbaSAtIDE2XTtcblx0ICAgICAgICAgICAgICAgICAgICBXW2ldID0gKG4gPDwgMSkgfCAobiA+Pj4gMzEpO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICB2YXIgdCA9ICgoYSA8PCA1KSB8IChhID4+PiAyNykpICsgZSArIFdbaV07XG5cdCAgICAgICAgICAgICAgICBpZiAoaSA8IDIwKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdCArPSAoKGIgJiBjKSB8ICh+YiAmIGQpKSArIDB4NWE4Mjc5OTk7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPCA0MCkge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgKz0gKGIgXiBjIF4gZCkgKyAweDZlZDllYmExO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgNjApIHtcblx0ICAgICAgICAgICAgICAgICAgICB0ICs9ICgoYiAmIGMpIHwgKGIgJiBkKSB8IChjICYgZCkpIC0gMHg3MGU0NDMyNDtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpZiAoaSA8IDgwKSAqLyB7XG5cdCAgICAgICAgICAgICAgICAgICAgdCArPSAoYiBeIGMgXiBkKSAtIDB4MzU5ZDNlMmE7XG5cdCAgICAgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgICAgIGUgPSBkO1xuXHQgICAgICAgICAgICAgICAgZCA9IGM7XG5cdCAgICAgICAgICAgICAgICBjID0gKGIgPDwgMzApIHwgKGIgPj4+IDIpO1xuXHQgICAgICAgICAgICAgICAgYiA9IGE7XG5cdCAgICAgICAgICAgICAgICBhID0gdDtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIEludGVybWVkaWF0ZSBoYXNoIHZhbHVlXG5cdCAgICAgICAgICAgIEhbMF0gPSAoSFswXSArIGEpIHwgMDtcblx0ICAgICAgICAgICAgSFsxXSA9IChIWzFdICsgYikgfCAwO1xuXHQgICAgICAgICAgICBIWzJdID0gKEhbMl0gKyBjKSB8IDA7XG5cdCAgICAgICAgICAgIEhbM10gPSAoSFszXSArIGQpIHwgMDtcblx0ICAgICAgICAgICAgSFs0XSA9IChIWzRdICsgZSkgfCAwO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9GaW5hbGl6ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXHQgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gZGF0YS53b3JkcztcblxuXHQgICAgICAgICAgICB2YXIgbkJpdHNUb3RhbCA9IHRoaXMuX25EYXRhQnl0ZXMgKiA4O1xuXHQgICAgICAgICAgICB2YXIgbkJpdHNMZWZ0ID0gZGF0YS5zaWdCeXRlcyAqIDg7XG5cblx0ICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmdcblx0ICAgICAgICAgICAgZGF0YVdvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMHg4MCA8PCAoMjQgLSBuQml0c0xlZnQgJSAzMik7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKChuQml0c0xlZnQgKyA2NCkgPj4+IDkpIDw8IDQpICsgMTRdID0gTWF0aC5mbG9vcihuQml0c1RvdGFsIC8gMHgxMDAwMDAwMDApO1xuXHQgICAgICAgICAgICBkYXRhV29yZHNbKCgobkJpdHNMZWZ0ICsgNjQpID4+PiA5KSA8PCA0KSArIDE1XSA9IG5CaXRzVG90YWw7XG5cdCAgICAgICAgICAgIGRhdGEuc2lnQnl0ZXMgPSBkYXRhV29yZHMubGVuZ3RoICogNDtcblxuXHQgICAgICAgICAgICAvLyBIYXNoIGZpbmFsIGJsb2Nrc1xuXHQgICAgICAgICAgICB0aGlzLl9wcm9jZXNzKCk7XG5cblx0ICAgICAgICAgICAgLy8gUmV0dXJuIGZpbmFsIGNvbXB1dGVkIGhhc2hcblx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2hhc2g7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGNsb25lOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHZhciBjbG9uZSA9IEhhc2hlci5jbG9uZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICBjbG9uZS5faGFzaCA9IHRoaXMuX2hhc2guY2xvbmUoKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gY2xvbmU7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogU2hvcnRjdXQgZnVuY3Rpb24gdG8gdGhlIGhhc2hlcidzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKlxuXHQgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAc3RhdGljXG5cdCAgICAgKlxuXHQgICAgICogQGV4YW1wbGVcblx0ICAgICAqXG5cdCAgICAgKiAgICAgdmFyIGhhc2ggPSBDcnlwdG9KUy5TSEExKCdtZXNzYWdlJyk7XG5cdCAgICAgKiAgICAgdmFyIGhhc2ggPSBDcnlwdG9KUy5TSEExKHdvcmRBcnJheSk7XG5cdCAgICAgKi9cblx0ICAgIEMuU0hBMSA9IEhhc2hlci5fY3JlYXRlSGVscGVyKFNIQTEpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBITUFDJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30ga2V5IFRoZSBzZWNyZXQga2V5LlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIEhNQUMuXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBobWFjID0gQ3J5cHRvSlMuSG1hY1NIQTEobWVzc2FnZSwga2V5KTtcblx0ICAgICAqL1xuXHQgICAgQy5IbWFjU0hBMSA9IEhhc2hlci5fY3JlYXRlSG1hY0hlbHBlcihTSEExKTtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5TSEExO1xuXG59KSk7Iiwie1xuICBcImFwcGxpY2F0aW9uLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BkYXNoLXFvZS1yZXBvcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BwLWltcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsZm9ybXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2EybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY2UrY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY2UranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FjZS1ncm91cGNvbW0rY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY2UtdHJsK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWN0aXZlbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY3Rpdml0eStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWlmK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWlmK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWNkbmkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tY2RuaWZpbHRlcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXBmaWx0ZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tZGlyZWN0b3J5K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3RwYXJhbXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50cHJvcHBhcmFtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1lcnJvcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXBmaWx0ZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tcHJvcG1hcCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1wcm9wbWFwcGFyYW1zK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLXRpcHMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwc3BhcmFtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1jb250cm9sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbXBhcmFtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYW1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FuZHJldy1pbnNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXBwaW5zdGFsbGVyXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBwaW5zdGFsbGVyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXBwbGVmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FwcGxpeHdhcmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXBweFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwcHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hcHB4YnVuZGxlXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBweGJ1bmRsZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0K2p3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRmeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdG9tK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXRvbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0b21jYXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdG9tY2F0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRvbWRlbGV0ZWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdG9tZGVsZXRlZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0b21pY21haWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRvbXN2Yyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF0b21zdmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdHNjLWR3ZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR3ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0c2MtZHluYW1pYy1ldmVudC1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0c2MtaGVsZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlbGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdHNjLXJkdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRzYy1yc2F0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNhdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0eG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F1dGgtcG9saWN5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdXRvbWF0aW9ubWwtYW1seCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhbWx4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYmFjbmV0LXhkZCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYmF0Y2gtc210cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9iZG9jXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmRvY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2JlZXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9idWZyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2MycGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2FsZW5kYXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2FsbC1jb21wbGV0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NhbHMtMTg0MFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jYXB0aXZlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nib3Itc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NjY2V4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NjbXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2N4bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjY3htbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkYSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkZngreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZGZ4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2RtaS1jYXBhYmlsaXR5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaWFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG1pLWNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkbWljXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2RtaS1kb21haW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZG1pZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkbWktb2JqZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG1pLXF1ZXVlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaXFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG5pXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NlK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2VhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NlYS0yMDE4K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NlbGxtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZndcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2lkLWVkaG9jK2Nib3Itc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NpdHkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NpdHkranNvbi1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2xyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NsdWUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2x1ZV9pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Ntc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jbnJwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NvYXAtZWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NvYXAtZ3JvdXAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NvYXAtcGF5bG9hZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb21tb25ncm91bmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29uY2lzZS1wcm9ibGVtLWRldGFpbHMrY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleS1zZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29zZS14NTA5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NwbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NzcmF0dHJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NzdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3N0YWRhdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3N2bStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3Utc2VlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImN1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3dsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3dsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3dsK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jd2wreWFtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3liZXJjYXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RhcnRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kYXNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGFzaC1wYXRjaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rhc2hkZWx0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kYXZtb3VudCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRhdm1vdW50XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGNhLXJmdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kY2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGVjLWR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpYWxvZy1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpY29tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGNtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGljb20ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpY29tK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kaXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG5zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rucytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG5zLW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG9jYm9vayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGJrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG90cytjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rwb3Arand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rza3BwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rzc2MrZGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHNzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rzc2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZHNzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2R2Y3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWF0K2N3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lYXQrand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VhdC1idW4rY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lYXQtdWNzK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWF0LXVjcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlY21hXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWRob2MrY2Jvci1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWRpLWNvbnNlbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWRpLXgxMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lZGlmYWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VmaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbG0ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWxtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNhcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbW1lbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29udHJvbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5kZXZpY2VpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmVjYWxsLm1zZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5sZWdhY3llc24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnByb3ZpZGVyaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zZXJ2aWNlaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zdWJzY3JpYmVyaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS52ZWRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtbWEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlbW1hXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1vdGlvbm1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZW1vdGlvbm1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW5jYXBydHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW50aXR5LXN0YXRlbWVudCtqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXBwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VwdWIremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXB1YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VzaG9wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2V4aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV4aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2V4cGVjdC1jdC1yZXBvcnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2V4cHJlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mYXN0aW5mb3NldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mYXN0c29hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mZHQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmZHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9maGlyK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZoaXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9maWRvLnRydXN0ZWQtYXBwcytqc29uXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZml0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mbGV4ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZvbnQtc2ZudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mb250LXRkcGZyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGZyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZm9udC13b2ZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZyYW1ld29yay1hdHRyaWJ1dGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dlbytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZW9qc29uXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ2VvK2pzb24tc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nZW9wb3NlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ2VveGFjbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ2x0Zi1idWZmZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ21sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLWp3c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1yb3RhdGlvbi1qd3NkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dweCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3B4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ3JpYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9neGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd4ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2d6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2gyMjRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaGVsZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9oanNvblwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhqc29uXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaGw3djIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9odHRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2h5cGVyc3R1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWJlLWtleS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2liZS1wa2ctcmVwbHkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWJlLXBwLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWdlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pbS1pc2NvbXBvc2luZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2luZGV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2luZGV4LmNtZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pbmRleC5vYmpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5kZXgucmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5kZXgudm5kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lua21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaW5rXCIsXCJpbmttbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lvdHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaXBmaXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcGZpeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pc3VwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2l0cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIml0c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphclwiLFwid2FyXCIsXCJlYXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qYXZhLXNlcmlhbGl6ZWQtb2JqZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qYXZhLXZtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGFzc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pmMmZlZWQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pvc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vam9zZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanJkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qc2NhbGVuZGFyK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qc2NvbnRhY3QranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianNvblwiLFwibWFwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbi1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbjVcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqc29uNVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pzb25tbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzb25tbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pzb25wYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2p3aytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vandrLXNldCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vandrLXNldCtqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2twbWwtcmVxdWVzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzb25sZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xncit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxnclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xpbmstZm9ybWF0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xpbmtzZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbGlua3NldCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbG9hZC1jb250cm9sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xvZ291dCtqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbG9zdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxvc3R4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9sb3N0c3luYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9scGYremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2x4ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYWMtYmluaGV4NDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJocXhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYWMtY29tcGFjdHByb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3B0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFjd3JpdGVpaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYWRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWFkc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hbmlmZXN0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2VibWFuaWZlc3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYXJjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXJjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFyY3htbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1yY3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYXRoZW1hdGljYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1hXCIsXCJuYlwiLFwibWJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYXRobWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYXRobWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYXRobWwtY29udGVudCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYXRobWwtcHJlc2VudGF0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtYXNzb2NpYXRlZC1wcm9jZWR1cmUtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1kZXJlZ2lzdGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtZW52ZWxvcGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1tc2sreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1tc2stcmVzcG9uc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1wcm90ZWN0aW9uLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtcmVjZXB0aW9uLXJlcG9ydCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXItcmVzcG9uc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1zY2hlZHVsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLXVzZXItc2VydmljZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm94XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWJveFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21lZGlhLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWVkaWFfY29udHJvbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZWRpYXNlcnZlcmNvbnRyb2wreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2NtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21lcmdlLXBhdGNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZXRhbGluayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWV0YWxpbmtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZXRhbGluazQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZXRhNFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ldHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZXRzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWY0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21pa2V5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21pcGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWlzc2luZy1ibG9ja3MrY2Jvci1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW10LWFlaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1hZWlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tbXQtdXNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXVzZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21vZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtb2RzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW9zcy1rZXlzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21vc3Mtc2lnbmF0dXJlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21vc3NrZXktZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LXJlcXVlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXAyMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm0yMVwiLFwibXAyMVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21wNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wNFwiLFwibXBnNFwiLFwibXA0c1wiLFwibTRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kLXhtdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcmItY29uc3VtZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXJiLXB1Ymxpc2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXNjLWl2cit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21zYy1taXhlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21zaXhcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2l4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXNpeGJ1bmRsZVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zaXhidW5kbGVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tc3dvcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkb2NcIixcImRvdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL211ZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXVsdGlwYXJ0LWNvcmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXhmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXhmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbi1xdWFkc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5xXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbi10cmlwbGVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uYXNkYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL25ld3MtY2hlY2tncm91cHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVTLUFTQ0lJXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uZXdzLWdyb3VwaW5mb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVMtQVNDSUlcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL25ld3MtdHJhbnNtaXNzaW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL25sc21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL25vZGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjanNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2F1dGgtYXV0aHotcmVxK2p3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vYmxpdmlvdXMtZG5zLW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2NzcC1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29jc3AtcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJiaW5cIixcImRtc1wiLFwibHJmXCIsXCJtYXJcIixcInNvXCIsXCJkaXN0XCIsXCJkaXN0elwiLFwicGtnXCIsXCJicGtcIixcImR1bXBcIixcImVsY1wiLFwiZGVwbG95XCIsXCJleGVcIixcImRsbFwiLFwiZGViXCIsXCJkbWdcIixcImlzb1wiLFwiaW1nXCIsXCJtc2lcIixcIm1zcFwiLFwibXNtXCIsXCJidWZmZXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZG0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2R4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvcGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZ2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZ3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vaHR0cC1rZXlzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29tZG9jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvbWRvY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29uZW5vdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9uZXRvY1wiLFwib25ldG9jMlwiLFwib25ldG1wXCIsXCJvbmVwa2dcIixcIm9uZVwiLFwib25lYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29wYy1ub2Rlc2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29zY29yZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9veHBzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3hwc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3AyMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wMjEremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3AycC1vdmVybGF5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmVsb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wYXNzcG9ydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wYXRjaC1vcHMtZXJyb3IreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGVtLWNlcnRpZmljYXRlLWNoYWluXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BncC1lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZ3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wZ3Ata2V5c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaWdcIixcImFzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BpY3MtcnVsZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInByZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BpZGYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9waWRmLWRpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2NzMTBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwMTBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2NzMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtjczctbWltZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInA3bVwiLFwicDdjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtjczctc2lnbmF0dXJlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDdzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtjczhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwOFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BrY3M4LWVuY3J5cHRlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2l4LWF0dHItY2VydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtpeC1jZXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2VyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtpeC1jcmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcmxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2l4LXBraXBhdGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwa2lwYXRoXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtpeGNtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBraVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bscyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBsc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BvYy1zZXR0aW5ncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bvc3RzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFpXCIsXCJlcHNcIixcInBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHBzcC10cmFja2VyK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLWlzc3Vlci1kaXJlY3RvcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4tcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJvYmxlbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJvYmxlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcm92ZW5hbmNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHJvdnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcm92aWRlZC1jbGFpbXMrand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5hbHZlc3RyYW5kLnRpdHJheC1zaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMuY3d3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3d3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLmN5blwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiNy1CSVRcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5ocHViK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1kb2N1bWVudCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1leGVjdXRhYmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K2pzb24tc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCt5YW1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLXN0cnVjdHVyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMubWF5ZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMubnByZW5kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5wbHVja2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5yZGYteG1sLWNyeXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy52Y2ZiemlwMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMueHNmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHNrYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBza2N4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wdmQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3FzaWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmFtbCt5YW1sXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYW1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmFwdG9yZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JkYXAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JkZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJkZlwiLFwib3dsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVnaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJpZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JlbGF4LW5nLWNvbXBhY3Qtc3ludGF4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicm5jXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVtb3RlLXByaW50aW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVwdXRvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVzb2x2ZS1yZXNwb25zZStqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzLWRpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZmMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmlzY29zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JsbWkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmxzLXNlcnZpY2VzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1hcGQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYXBkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcm91dGUtcy10c2lkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2xzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcm91dGUtdXNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnVzZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jwa2ktY2hlY2tsaXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jwa2ktZ2hvc3RidXN0ZXJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2JyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS1tYW5pZmVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1mdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jwa2ktcHVibGljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS1yb2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyb2FcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ycGtpLXNpZ25lZC10YWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS11cGRvd25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyc2RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yc3MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJzc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3J0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnRwbG9vcGJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NhbWxhc3NlcnRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2FtbG1ldGFkYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NhcmlmK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zYXJpZi1leHRlcm5hbC1wcm9wZXJ0aWVzK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zYmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2JtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNibWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zY2FpcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zY2ltK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlcXVlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY3FcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2NzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3BxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NkcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNkcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlY2V2ZW50K2p3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5tbCtjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlbm1sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5tbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNlbm1seFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2grY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5tbC1leGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2Vuc21sK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2Vuc21sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5zbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZW5zbWx4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2Vuc21sLWV4aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VwLWV4aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXNzaW9uLWluZm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnQtaW5pdGlhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNldHBheVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvbi1pbml0aWF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2V0cmVnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2dtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZ21sLW9wZW4tY2F0YWxvZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zaGYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zaWV2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpdlwiLFwic2lldmVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtZmlsdGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NpbXBsZS1tZXNzYWdlLXN1bW1hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2ltcGxlc3ltYm9sY29udGFpbmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NpcGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2xhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc21pbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NtaWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbWlcIixcInNtaWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zbXB0ZTMzNm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc29hcCtmYXN0aW5mb3NldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zb2FwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NwYXJxbC1xdWVyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3BhcnFsLXJlc3VsdHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zcGR4K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zcGlyaXRzLWV2ZW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NxbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNxbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NyZ3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncmFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3Jncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdyeG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3J1K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3J1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3NkbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3NkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NzbGtleWxvZ2ZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3NtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNzbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zdDIxMTAtNDFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3RpeCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3RyYXR1bVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zd2lkK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3dpZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN3aWR0YWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLWNvbW11bml0eS11cGRhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1lcnJvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdC1jb25maXJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXF1ZXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFyXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGF4aWkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90ZWkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZWlcIixcInRlaWNvcnB1c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RldHJhX2lzaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90aHJhdWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZmlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcXVlcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXJlcGx5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcGVkLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0c2RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90bHNycHQrZ3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90bHNycHQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RtK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90bmF1dGhsaXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RvYytjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Rva2VuLWludHJvc3BlY3Rpb24rand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RvbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRvbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90cmlja2xlLWljZS1zZHBmcmFnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RyaWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0cmlnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdHJ1c3QtY2hhaW4ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmsrand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmstZGVsZWdhdGlvbitqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdHRtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInR0bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90dmUtdHJpZ2dlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90emlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3R6aWYtbGVhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91Ympzb25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1YmpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91Y2NzK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdWpjcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdWxwZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3VyYy1ncnBzaGVldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91cmMtcmVzc2hlZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyc2hlZXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91cmMtdGFyZ2V0ZGVzYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdXJjLXVpc29ja2V0ZGVzYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92Y1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92Yytjb3NlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZjK2p3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92Y2FyZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdmNhcmQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdmVtbWlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuMTAwMG1pbmRzLmRlY2lzaW9uLW1vZGVsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiMWttXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjFvYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2FjaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNjaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzgreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAtdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWduYXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzYTJ4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3N2MngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5hY2Nlc3MtdHJhbnNmZXItZXZlbnRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmJzZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5jcnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3VycmVudC1sb2NhdGlvbi1kaXNjb3ZlcnkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ21vcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5ndHBjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmludGVyd29ya2luZy1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmxwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tYy1zaWduYWxsaW5nLWVhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtbXNnc3RvcmUtY3RybC1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1wYXlsb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1yZWdyb3VwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2lnbmFsbGluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1mbG9vci1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtcmVncm91cCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zaWduZWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWluaXQtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXJlZ3JvdXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXRyYW5zbWlzc2lvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdWUtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1pZC1jYWxsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm5nYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGZjcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctbGFyZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctc21hbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwc2JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctdmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHZiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGluYXBwLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuczFhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWdyb3VwLWRvYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbmV0d29yay1xb3MtbWFuYWdlbWVudC1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdWUtY29uZmlnLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11bmljYXN0LWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11c2VyLXByb2ZpbGUtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNydmNjLWV4dCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnN0YXRlLWFuZC1ldmVudC1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnVzc2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAudjJ4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnZhZS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5iY21jc2luZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnNtc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIudGNhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRjYXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2xpZ2h0c3NvZnR3YXJlLmltYWdlc2NhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM20ucG9zdC1pdC1ub3Rlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB3blwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmFzb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFzb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmltcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImltcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uYWRkcmVzc3hmZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uY2hhdGJvdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvYm9sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWN1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvcnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdGNcIixcImFjdXRjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmFpci1hcHBsaWNhdGlvbi1pbnN0YWxsZXItcGFja2FnZSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFpclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mbGFzaC5tb3ZpZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZm9ybXNjZW50cmFsLmZjZHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmY2R0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZ4cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZ4cFwiLFwiZnhwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5wYXJ0aWFsLXVwbG9hZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGRwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhmZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhmZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWV0aGVyLmltcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YS1wYWdlZGVmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmNtb2NhLWNtcmVzb3VyY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jaGFyc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZWRmb250XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZXBhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtY210YWJsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1mb3JtZGVmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW1lZGl1bW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1vYmplY3Rjb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb3ZlcmxheVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1wYWdlc2VnbWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWdlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFoLWJhcmNvZGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWhlYWQuc3BhY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhaGVhZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5hemZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhemZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXpzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtYWRldXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF6d1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24ubW9iaTgtZWJvb2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtZXJpY2FuZHluYW1pY3MuYWNjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtaWdhLmFtaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFtaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbXVuZHNlbi5tYXplK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLm90YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwa1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbmtpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItY2VydGlmaWNhdGUtaXNzdWUtaW5pdGlhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNpaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItZnVuZHMtdHJhbnNmZXItaW5pdGlhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnRpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFudGl4LmdhbWUtY29tcG9uZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUuYXJyb3cuc3RyZWFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUucGFycXVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5iaW5hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuY29tcGFjdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5qc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGV4bGFuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBpK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBsZXh0b3Iud2FycnAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcG90aGVrZW5kZS5yZXNlcnZhdGlvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wa2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUua2V5bm90ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtleVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibTN1OFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5udW1iZXJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnVtYmVyc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wYWdlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBhZ2VzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBrcGFzc1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBrcGFzc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcmFzdHJhLnN3aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcmlzdGFuZXR3b3Jrcy5zd2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzd2lcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0aXNhbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFydHNxdWFyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXN0cmFlYS1zb2Z0d2FyZS5pb3RhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaW90YVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hdWRpb2dyYXBoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWVwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmF1dG9kZXNrLmZieFwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZieFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXZhbG9uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXZpc3Rhcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1tbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJtbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1wclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmFuYW5hLWFjY291bnRpbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AuZXJyb3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJla2l0enVyLXN0ZWNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6ZCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJlbGlnaHRzb2Z0LmxoemwremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iaW50Lm1lZC1jb250ZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iaW9wYXgucmRmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ibGluay1pZGItdmFsdWUtd3JhcHBlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZWljZS5tdWx0aXBhc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmVwLm9vYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmxlLm9vYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYm1pXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYm1pXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJwZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYnBmM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYnVzaW5lc3NvYmplY3RzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmVwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJ5dS51YXBpK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYnppcDNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmMzdm9jLnNjaGVkdWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jYWItanNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tY3BkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tbGlwc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2FwYXN5c3RlbXMtcGcranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jZW5kaW8udGhpbmxpbmMuY2xpZW50Y29uZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2VudHVyeS1zeXN0ZW1zLnRjcF9zdHJlYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNoZW1kcmF3K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2R4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2hlc3MtcGduXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1tZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaWVkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2luZGVyZWxsYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkeVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaXJwYWNrLmlzZG4tZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaXRhdGlvbnN0eWxlcy5zdHlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNzbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbGF5bW9yZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNsYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9hbnRvLnJwOVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJwOVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYzRnXCIsXCJjNGRcIixcImM0ZlwiLFwiYzRwXCIsXCJjNHVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImMxMWFtY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnLXBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImMxMWFtelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQuY29udGVudC52MS50YXIrZ3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LnByb3ZlbmFuY2UudjEucHJvdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNvbmZpZy52MStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvZmZlZXNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuc3ByZWFkc2hlZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5kb2MranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLm5leHQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2sremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2stcmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tZXJjZS1iYXR0ZWxsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29udGFjdC5jbXNnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RiY21zZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Jlb3MuaWduaXRpb24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Ntb2NhbGxlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNtY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xreFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLmtleWJvYXJkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xra1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnBhbGV0dGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGtwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGt0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIud29yZGJhbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGt3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyaXRpY2FsdG9vbHMud2JzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2JzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0aWkucGlwZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0by1zaGFkZS1maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci5lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLnZhdWx0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdGMtcG9zbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3RjdC53cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcG9zdHNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wcGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1yYXN0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmF3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLmNhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2FyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cmwucGN1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjdXJsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN5YW4uZGVhbi5yb290K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jeWJhbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZDJsLmNvdXJzZXBhY2thZ2UxcDAremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tZGF0YXNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLXByb2JsZW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRhcnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YS12aXNpb24ucmR6XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmR6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhdGFsb2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhdGFwYWNrYWdlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXJlc291cmNlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGJmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGJmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRjbXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkY21wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlYmlhbi5iaW5hcnktcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZmXCIsXCJ1dnZmXCIsXCJ1dmRcIixcInV2dmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS50dG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZ0XCIsXCJ1dnZ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudW5zcGVjaWZpZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnhcIixcInV2dnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS56aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnpcIixcInV2dnpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVub3ZvLmZjc2VsYXlvdXQtbGlua1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZlX2xhdW5jaFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kZXNtdW1lLm1vdmllXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kaXItYmkucGxhdGUtZGwtbm9zdWZmaXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRtLmRlbGVnYXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRuYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRuYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kb2N1bWVudCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1scFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWxwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4xXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZG9yZW1pci5zY29yZWNsb3VkLWJpbmFyeS1kb2N1bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHBncmFwaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRwZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kcmVhbWZhY3RvcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZmFjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRyaXZlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHMta2V5cG9pbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtweHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuZmxhc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5odG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuYWl0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWl0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJpc2wreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJqXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZXNnY29udGFpbmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2RmdG5vdGlmYWNjZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2Vzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3MyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ3BkZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNyb2FtaW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1iYXNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1lbmhhbmNlbWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWFnZ3JlZ2F0ZS1yb290K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtY29udGFpbmVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtZ2VuZXJpYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLW1zZ2xpc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVxdWVzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXNwb25zZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWluaXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5wZnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5zZXJ2aWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3ZjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR4clwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHluYWdlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdlb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kenJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVhc3lrYXJhb2tlLmNkZ2Rvd25sb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY2Rpcy11cGRhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjaXAucmxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY2xpcHNlLmRpdHRvK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWFnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxlcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGV1cGRhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNyZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaW1nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaXNvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lbG4remlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lbWNsaWVudC5hY2Nlc3NyZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lbmxpdmVuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibm1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVucGhhc2UuZW52b3lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwcmludHMuZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uZXNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLm1zZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5xdWlja2FuaW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicWFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNhbHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc3NmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3NmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVyaWNzc29uLnF1aWNrY2FsbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXJvZnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVzcGFzcy1lc3Bhc3MremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVzM1wiLFwiZXQzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYW9jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtZSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1zK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5jdWcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmNvbW1hbmQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmRpc2NvdmVyeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2cHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWJjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtY29kK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtbnB2cit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2VydmljZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c3luYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2dWVwcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1jaWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWhlZzVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kub3ZlcmxvYWQtY29udHJvbC1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5wc3RuK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNjaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zaW1zZXJ2cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50aW1lc3RhbXAtdG9rZW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbC5kZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV1Lmthc3Bhcmlhbi5jYXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldWRvcmEuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5wcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnNldHRpbmdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnRoZW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1lbXBvd2VyK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXhzdHJlYW0tcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtYWxidW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlejJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV6M1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mLXNlY3VyZS5tb2JpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZhbWlseXNlYXJjaC5nZWRjb20remlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mYXN0Y29weS1kaXNrLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLm1zZWVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXNlZWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VlZFwiLFwiZGF0YWxlc3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zdGF0aW9ueG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiWE1MLUJBU0VEXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mZnNuc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmljbGFiLmZsYit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZpbG1pdC56ZmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZpbnRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5maXJlbW9ua2V5cy5jbG91ZGNlbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZsb2dyYXBoaXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncGhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmx1eHRpbWUuY2xpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZ0Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mb250LWZvbnRmb3JnZS1zZmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbVwiLFwiZnJhbWVcIixcIm1ha2VyXCIsXCJib29rXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZyZWVsb2cuY29taWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZyb2dhbnMuZm5jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5sdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImx0ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mc2Mud2VibGF1bmNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuamZpK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2FzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2EyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2EzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNncFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZnNVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzcHJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmgyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQtZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZGRkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGRkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZHdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4YmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5oYnBsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdXQtbWlzbmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdXRvaW4rY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnV6enlzaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZ6c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nYTRnaC5wYXNzcG9ydCtqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbm9tYXRpeC50dXhlZG9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0eGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudGljcy5ncmQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uY2F0bWV0YWRhdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lYnVpbGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lY2xhc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5ncGtnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ubWFuaWZlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5wa2dtZXRhZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnhwYWtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvY3ViZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2diXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnBpbmJvYXJkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5zbGlkZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZ3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEudG9vbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdndFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9tZXRyeS1leHBsb3JlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdleFwiLFwiZ3JlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb25leHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJneHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvcGxhblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImcyd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9zcGFjZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImczd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZXJiZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3QtcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdteFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIuZXhjaGFuZ2UranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIubWVyY2hhbnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5hdWRpb1wiOiB7fSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZG9jdW1lbnRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZG9jXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyYXdpbmdcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZHJhd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kcml2ZS1zZGtcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZpbGVcIjoge30sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvbGRlclwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9ybVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdmb3JtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZ1c2lvbnRhYmxlXCI6IHt9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5qYW1cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnamFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLm1haWwtbGF5b3V0XCI6IHt9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5tYXBcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbWFwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnBob3RvXCI6IHt9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5wcmVzZW50YXRpb25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnc2xpZGVzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNjcmlwdFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdzY3JpcHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2hvcnRjdXRcIjoge30sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNpdGVcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnc2l0ZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zcHJlYWRzaGVldFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdzaGVldFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy51bmtub3duXCI6IHt9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy52aWRlb1wiOiB7fSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImttbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia216XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLmUtZm9ybSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay54bWxkYXRhY29udGFpbmVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGRjZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncHhzZWUubWFwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncmFmZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncWZcIixcImdxc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncmlkbXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1hY2NvdW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2FjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1oZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2hmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pZGVudGl0eS1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2ltXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pbmplY3RvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdydlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3RtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHBsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS12Y2FyZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZjZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoYWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGFuZGhlbGQtZW50ZXJ0YWlubWVudCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInptbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oYmNpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGJjaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oYytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhjbC1iaXJlcG9ydHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhkdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGVyb2t1K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGhlLmxlc3Nvbi1wbGF5ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsZXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBnbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhwZ2xcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBpZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhwaWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhwLWpseXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqbHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhwLXBjbHhsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNseGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHNsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5odHRwaG9uZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlkcm9zdGF0aXguc29mLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZmQtaGRzdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlci1pdGVtK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXJkcml2ZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmh6bi0zZC1jcm9zc3dvcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlibS5hZnBsaW5lZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uZWxlY3Ryb25pYy1tZWRpYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1pbmlwYXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcHlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1vZGNhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWZwXCIsXCJsaXN0YWZwXCIsXCJsaXN0MzgyMFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnNlY3VyZS1jb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pY2Nwcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWNjXCIsXCJpY21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWVlZS4xOTA1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pZ2xvYWRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlnbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmZvbGRlcit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuaW1hZ2UremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpdnBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZ1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXZ1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5saXMudjIucmVzdWx0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sY29uc3VtZXJwcm9maWxlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eS5pZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3Muc2ltcGxlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtZWRjb250cm9sLnJtcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtaXgtdmlzaW9uYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlubm9wYXRoLndhbXAubm90aWZpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnNvcnMuaWdtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWdtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmludGVyY29uLmZvcm1uZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cHdcIixcInhweFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmdlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImkyZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0LmRpZ2lib3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3Qubm5jcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xYm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJxYm9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xZnhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJxZnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXBmcy5pcG5zLXJlY29yZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5jYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWNib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWpzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwbGQucmF3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNhdGFsb2dpdGVtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNvbmNlcHRpdGVtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmtub3dsZWRnZWl0ZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c2l0ZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c21lc3NhZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGFja2FnZWl0ZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGxhbm5pbmdpdGVtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHVucGx1Z2dlZC5yY3Byb2ZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyY3Byb2ZpbGVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXJlcG9zaXRvcnkucGFja2FnZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlycFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcy14cHJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cHJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXNhYy5mY3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmY3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXNvMTE3ODMtMTAremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqYW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtZGlyZWN0b3J5LXNlcnZpY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LWpwbnN0b3JlLXdha2V1cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcGF5bWVudC13YWtldXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uLXdha2V1cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtc2V0c3RvcmUtd2FrZXVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvbi13YWtldXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmpjcC5qYXZhbWUubWlkbGV0LXJtc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qaXNwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamlzcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qb29zdC5qb2RhLWFyY2hpdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqb2RhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmpzay5pc2RuLW5nblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2Fob290elwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImt0elwiLFwia3RyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rYXJib25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrYXJib25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtjaGFydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNocnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtmb3JtdWxhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia2ZvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5raXZpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZsd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua29udG91clwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtvblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3ByZXNlbnRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtwclwiLFwia3B0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rc3ByZWFkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia3NwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rd29yZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImt3ZFwiLFwia3d0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2VuYW1lYWFwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh0a2VcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmttcCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtpZHNwaXJhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtpYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5raW5hclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtuZVwiLFwia25wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtvYW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJza3BcIixcInNrZFwiLFwic2t0XCIsXCJza21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua29kYWstZGVzY3JpcHRvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNzZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sYXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGFzeG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxhc3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGRldi5wcm9kdWN0bGljZW5zaW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sZWFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGliZXJ0eS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5kZXNrdG9wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGJkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmV4Y2hhbmdlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGJlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvZ2lwaXBlLmNpcmN1aXQremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb29tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy0xLTItM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjEyM1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1hcHByb2FjaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcmVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtbm90ZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtb3JnYW5pemVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3JnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXNjcmVlbmNhbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy13b3JkcHJvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibHdwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hY3BvcnRzLnBvcnRwa2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwb3J0cGtnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hcGJveC12ZWN0b3ItdGlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm12dFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmFjdGlvbnRva2VuK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmNvbmZ0b2tlbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5saWNlbnNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLm1kY2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hc29uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWF4YXIuYXJjaGl2ZS4zdHoremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhtaW5kLm1heG1pbmQtZGJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1jZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1jZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tZGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1kbC1tYnNkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWVkY2FsY2RhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYzFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWFzdGF0aW9uLmNka2V5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RrZXlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWNhbGhvbG9kZWNrLnJlY29yZHhyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJpZGlhbi1zbGluZ3Nob3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1lcm1haWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1mZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtd2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWZtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1mbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taWNybytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguZmxvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmxvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguaWd4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWd4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC5wb3J0YWJsZS1leGVjdXRhYmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQud2luZG93cy50aHVtYm5haWwtY2FjaGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pZWxlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWlmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pbmlzb2Z0LWhwMzAwMC1zYXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taXRzdWJpc2hpLm1pc3R5LWd1YXJkLnRydXN0d2ViXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGFmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGFmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kaXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkaXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1ia1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ia1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXF5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXF5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tc2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2xcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnBsY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBsY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMudHhmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHhmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vZGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5hcHBsaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uY2VydGlmaWNhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuYWRzaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmZpc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmdvdGFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUua21yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUudHRjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUud2VtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5pcHJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInh1bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy0zbWZkb2N1bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXJ0Z2FscnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jYWItY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNhYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jb2xvci5pY2Nwcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxzXCIsXCJ4bG1cIixcInhsYVwiLFwieGxjXCIsXCJ4bHRcIixcInhsd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bGFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bHNiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsc21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGx0bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlb3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtaHRtbGhlbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtaW1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaW1zXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWxybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxybVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZleCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0aG14XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLW9wZW50eXBlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9va1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wYWNrYWdlLm9iZnVzY2F0ZWQtb3BlbnR5cGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnNlY2NhdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2F0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zdGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wbGF5cmVhZHkuaW5pdGlhdG9yK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHB0XCIsXCJwcHNcIixcInBvdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBwYW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHB0bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNsZG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHBzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBvdG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRkZXZpY2VjYXBhYmlsaXRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50aW5nLnByaW50dGlja2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50c2NoZW1hdGlja2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBwXCIsXCJtcHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtdG5lZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtdmlzaW8udmlld2VyXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5ud3ByaW50aW5nLm9vYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5wcmludGVycGFpcmluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy53c2Qub29iXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtY2hsZy1yZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1yZXNwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1jaGxnLXJlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItcmVzcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC5kb2N1bWVudC5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkb2NtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG90bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3Jrc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndwc1wiLFwid2tzXCIsXCJ3Y21cIixcIndkYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13cGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3cGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMteHBzZG9jdW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXNhLWRpc2staW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2VxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zZ3BhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zaWduXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvci5jaWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm11c2ljLW5pZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm11c2ljaWFuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXVzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm11dmVlLnN0eWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXN0eVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5teW5mY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRhZ2xldFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uYWNhbWFyLnlicmlkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCtjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJkb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuaWVwZCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5jZC5jb250cm9sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QucmVmZXJlbmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uZWFyc3QuaW52K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmVidW1pbmQubGluZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmVydmFuYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmV0ZnB4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uZXVyb2xhbmd1YWdlLm5sdVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5sdVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaW1uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5uaXRyby5yb21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLnNuZXMucm9tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaXRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnRmXCIsXCJuaXRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LWRpcmVjdG9yeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5uZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1zZWFsZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJubnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtd2ViXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibm53XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNhdGFsb2dzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmlwdHYuY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pc2RzLXJhZGlvLXByZXNldHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3dieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmtjb2xsZWN0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuYWMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5nZGF0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm4tZ2FnZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uY2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJycHN0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJycHNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVkbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlZHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXh0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5jb250ZW50LXNoYXJlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuZmlsZS10cmFuc2ZlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLm9nd19yZW1vdGUtYWNjZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3JlbW90ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV90Y3Bfc3RyZWFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cyt5YW1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuYmFzZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydC10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZGF0YWJhc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYS10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kZnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmdyYXBoaWNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljcy10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90Z1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlLXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3RpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3RzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2R0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LW1hc3RlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXItdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3R0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXdlYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90aFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYm5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9jZitjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vY2kuaW1hZ2UubWFuaWZlc3QudjEranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vZnRuLmwxMG4ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3Nkb3dubG9hZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jb250ZW50YWNjZXNzc3RyZWFtaW5nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNzcGctaGV4YmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS5zdmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnhodG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLm1pcHB2Y29udHJvbG1lc3NhZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYucGFlLmdlbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRpc2NvdmVyeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRsaXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVlcHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi51c2VycHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2xwYy1zdWdhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWNvbmZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuYXNzb2NpYXRlZC1wcm9jZWR1cmUtcGFyYW1ldGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuZHJtLXRyaWdnZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmltZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lmx0a21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5ub3RpZmljYXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5wcm92aXNpb25pbmd0cmlnZ2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dib290XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dkZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZHVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zaW1wbGUtc3ltYm9sLWNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNtYXJ0Y2FyZC10cmlnZ2VyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zcHJvdit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnN0a21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItYWRkcmVzcy1ib29rK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWZlYXR1cmUtaGFuZGxlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1wY2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItc3Vicy1pbnZpdGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItdXNlci1wcmVmcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kZDIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZDJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRybS5yaXNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZ3JvdXAtdXNhZ2UtbGlzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybSt0bHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wYWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZGV0YWlsZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmZpbmFsLXJlcG9ydCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5ncm91cHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuaW52b2NhdGlvbi1kZXNjcmlwdG9yK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLm9wdGltaXplZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wdXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuc2NpZG0ubWVzc2FnZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS54Y2FwLWRpcmVjdG9yeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZW1haWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1mb2xkZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hbG9jLXN1cGwtaW5pdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW14XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9udmlmLm1ldGFkYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2JneFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lLWJpbmFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmV5ZS5vZWJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW5vZmZpY2VvcmcuZXh0ZW5zaW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJveHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnN0cmVldG1hcC5kYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3NtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW50aW1lc3RhbXBzLm90c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnZwaS5kc3B4K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbXhtbHByb3BlcnRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWNvbG9ycyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1kYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWxheW91dCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1zdHlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudGF1dGhvcnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5oYW5kb3V0bWFzdGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc21hc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNzbGlkZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHB0eFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24ubWFpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc3Byb3BzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNsZHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlbGF5b3V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZW1hc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHBzeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cubWFpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGV1cGRhdGVpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWJsZXN0eWxlcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwb3R4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnZpZXdwcm9wcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jYWxjY2hhaW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2hhcnRzaGVldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb21tZW50cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbGxpbmsreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZWRlZmluaXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZXJlY29yZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3R0YWJsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5xdWVyeXRhYmxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uaGVhZGVycyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmxvZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRzdHJpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxzeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRtZXRhZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGVzaW5nbGVjZWxscyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnVzZXJuYW1lcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC52b2xhdGlsZWRlcGVuZGVuY2llcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZW92ZXJyaWRlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxkcmF3aW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG9jeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lmdsb3NzYXJ5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZW5kbm90ZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9udHRhYmxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290bm90ZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwubnVtYmVyaW5nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnNldHRpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnN0eWxlcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRvdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLndlYnNldHRpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5kaWdpdGFsLXNpZ25hdHVyZS14bWxzaWduYXR1cmUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3JhY2xlLnJlc291cmNlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3JhbmdlLmluZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NhLm5ldGRlcGxveVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NnZW8ubWFwZ3VpZGUucGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ncFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmJ1bmRsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5kcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuc3Vic3lzdGVtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXNhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm90cHMuY3Qta2lwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5veGxpLmNvdW50Z3JhcGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhZ2VyZHV0eStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhbG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZGJcIixcInBxYVwiLFwib3ByY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wYW5vcGx5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wYW9zLnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGF0ZW50ZGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGF0aWVudGVjb21tc2RvY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGF3YWFmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGF3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBjb3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBnLmZvcm1hdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0clwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5vc2FzbGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlaTZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGlhY2Nlc3MuYXBwbGljYXRpb24tbGljZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGljc2VsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWZpZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wbWkud2lkZ2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG9jLmdyb3VwLWFkdmVydGlzZW1lbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvY2tldGxlYXJuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGxmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNi1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3LXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NS1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wcmVtaW5ldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHJldmlld3N5c3RlbXMuYm94XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYm94XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnByb2NyYXRlLmJydXNoc2V0XCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYnJ1c2hzZXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmJydXNoXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYnJ1c2hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmRyZWFtXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHJtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnByb3RldXMubWFnYXppbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZ3pcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHNmc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHQubXVuZHVzbXVuZGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnB1Ymxpc2hhcmUtZGVsdGEtdHJlZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInFwc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wdmkucHRpZDFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwdGlkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnB3Zy1tdWx0aXBsZXhlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHdnLXhodG1sLXByaW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGh0bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFsY29tbS5icmV3LWFwcC1yZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnF1YXJhbnRhaW5lbmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInF4ZFwiLFwicXh0XCIsXCJxd2RcIixcInF3dFwiLFwicXhsXCIsXCJxeGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucXVvYmplY3QtcXVveGRvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1vbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29uZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbm4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1kaWFsb2creG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1zdHJlYW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1jb25mK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWJhc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LWRldGVjdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtc2VuZHJlY3YreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZ3JvdXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctc3BlZWNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXRyYW5zZm9ybSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFpbnN0b3IuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFwaWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZWFsdm5jLmJlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJlZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXVzaWN4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVscGlwZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVubGVhcm4ucmxwcmludFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVzaWxpZW50LmxvZ2ljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZXN0ZnVsK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmlnLmNyeXB0b25vdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcnlwdG9ub3RlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJpbS5jb2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNvZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYS12YnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtdmJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucm91dGU2Ni5saW5rNjYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsaW5rNjZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucnMtMjc0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucnVja3VzLmRvd25sb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zM3Ntc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2FpbGluZ3RyYWNrZXIudHJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNibS5jaWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNibS5taWQyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zY3JpYnVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuM2RmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuY3NmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZG9jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZW1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubWh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQucHB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQudGlmZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnhsc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuaHRtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwucGRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWVtYWlsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlaXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VtYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VtZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VtZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFkZS1zYXZlLWZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWZtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIml0cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5pbnRlcmNoYW5nZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlpZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXBrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNob290cHJvb2YranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaG9wa2ljaytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNocFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2h4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaWdyb2suc2Vzc2lvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2ltdGVjaC1taW5kbWFwcGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHdkXCIsXCJ0d2RzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNpcmVuK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2tldGNob21ldHJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW1mXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0Lm5vdGVib29rXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC50ZWFjaGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGVhY2hlclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbWludGlvLnBvcnRhbHMuYXJjaGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc25lc2Rldi1wYWdlLXRhYmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtLXhtbC16aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNvbGVudC5zZGttK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2RrbVwiLFwic2RrZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5keHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkeHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuc2ZzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2ZzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNxbGl0ZTNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNzcy1jb2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNzcy1kdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNzcy1udGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5jYWxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmRyYXdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNkYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uaW1wcmVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2RkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5tYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2R3XCIsXCJ2b3JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlci1nbG9iYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNnbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEucGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtemlwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5zdGVwY2hhcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdHJlZXQtc3RyZWFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ud2FkbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndhZGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3LnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5tYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4d1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci5nbG9iYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4Z1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci50ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3R3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN1c1wiLFwic3VzcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3dpZnR2aWV3LWljc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3lieWwubW9sMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3ljbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5ZnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpc1wiLFwic2lzeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0rd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJkbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhkbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0ubm90aWZpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYrd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMrd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRzLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudGFibGVzY2hlbWEranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50YW8uaW50ZW50LW1vZHVsZS1hcmNoaXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGFvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjYXBcIixcImNhcFwiLFwiZG1wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRoaW5rLWNlbGwucHB0dGMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50bWQubWVkaWFmbGV4LmFwaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50bW9iaWxlLWxpdmV0dlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRtb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cmkub25lc291cmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cmlkLnRwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRwdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cmlzY2FwZS5teHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWFwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRyYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlZG9jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51Ymlzb2Z0LndlYnBsYXllclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudWZkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVmZFwiLFwidWZkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51aWMub3NkbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVpcS50aGVtZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV0elwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51bWFqaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1bWpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudW5pdHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1bml0eXdlYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51b21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widW9tbFwiLFwidW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydC13YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2Utd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wLXdieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbC13YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3Qtd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kLXdieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LnNpZ25hbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXJpLW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmFsdmUuc291cmNlLm1hdGVyaWFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52Y3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Y3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmQtc3R1ZHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlY3RvcndvcmtzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLnRzbS1yZXBvcnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpbWF0cml4LnZjYXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcml0b25lLmFpb24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJ5YW50LnRoaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcy5lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZpZHNvZnQudmlkY29uZmVyZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2c2RcIixcInZzdFwiLFwidnNzXCIsXCJ2c3dcIixcInZzZHhcIixcInZ0eFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb25hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2aXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZvY2Fsc2hhcGVyLnZzcDRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZzZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2ljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2xjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndieG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndhcC53bWxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21sY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0Y1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtbHNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndhc21mbG93LndhZmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndlYnR1cmJvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3RiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndmYS5kcHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndmYS5wMnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndmYS53c2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud21jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53bWYuYm9vdHN0cmFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhLnBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ucGxheWVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibmJwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndvcmRsaWZ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndwZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53cWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3cWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3JxLWhwMzAwMC1sYWJlbGxlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3Quc3RmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53di5zc3AreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhhY21sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueGFyYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54YXJpbi5jcGpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhlY3JldHMtZW5jcnlwdGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGZkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsLndlYmZvcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhtaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuY3BrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuZHBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucGxhblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucHBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUueGxpbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LWRpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh2ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHZzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi12b2ljZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh2cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3NmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXQub3NmcHZnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3NmcHZnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5yZW1vdGUtc2V0dXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLWF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2FmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLXBocmFzZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudGhyb3VnaC1uZ25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50dW5uZWwtdWRwZW5jYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhb3dlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnllbGxvd3JpdmVyLWN1c3RvbS1tZW51XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY21wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnp1bFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInppclwiLFwiemlyelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC56emF6ei5kZWNrK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiemF6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm9pY2V4bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2eG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm91Y2hlci1jbXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZvdWNoZXItandzK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92cCtjb3NlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZwK2p3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92cS1ydGNweHJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2FzbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2FzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dhdGNoZXJpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2lmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2VicHVzaC1vcHRpb25zK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXF1ZXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2lkZ2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2d0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2luaGxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJobHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93aXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dvcmRwZXJmZWN0NS4xXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dzZGwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3c2RsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd3Nwb2xpY3kreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3c3BvbGljeVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiN3pcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWFiaXdvcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFid1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYWNlLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFjZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYW1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hcHBsZS1kaXNraW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRtZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYXJqXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXJqXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWFiXCIsXCJ4MzJcIixcInUzMlwiLFwidm94XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLXNlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWFzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1iY3Bpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmNwaW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWJkb2NcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJiZG9jXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1iaXR0b3JyZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0b3JyZW50XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1ibGVuZGVyXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmxlbmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWJsb3JiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJibGJcIixcImJsb3JiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1iemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJielwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYnppcDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJ6MlwiLFwiYm96XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jYnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNiclwiLFwiY2JhXCIsXCJjYnRcIixcImNielwiLFwiY2I3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jZGxpbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZjZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2ZzLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNmc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2hhdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2hhdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2hlc3MtcGduXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZ25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNocm9tZS1leHRlbnNpb25cIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNvY29hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNjb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY29tcHJlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzZWRcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNvbmZlcmVuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5zY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY3Bpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3Bpb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY3NoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc2hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRlYlwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRlYmlhbi1wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZWJcIixcInVkZWJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRnYy1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZ2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRpcmVjdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkaXJcIixcImRjclwiLFwiZHhyXCIsXCJjc3RcIixcImNjdFwiLFwiY3h0XCIsXCJ3M2RcIixcImZnZFwiLFwic3dhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1kb29tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWR0Ym5jeCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibmN4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1kdGJvb2sreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR0YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZHRicmVzb3VyY2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJlc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZHZpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkdmlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWVudm95XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJldnlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWV2YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXZhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWJkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWRvc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZm9udC1mcmFtZW1ha2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWdob3N0c2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGliZ3J4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWxpbnV4LXBzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXBjZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXNuZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic25mXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXNwZWVkb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZm9udC1zdW5vcy1uZXdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXR5cGUxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZmFcIixcInBmYlwiLFwicGZtXCIsXCJhZm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdmZvbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZyZWVhcmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFyY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZnV0dXJlc3BsYXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWdjYS1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnY2FcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWdsdWx4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1bHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWdudW1lcmljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbnVtZXJpY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZ3JhbXBzLXhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3JhbXBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1ndGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJndGFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1nemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1oZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwaHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWluc3RhbGwtaW5zdHJ1Y3Rpb25zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpbnN0YWxsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1pcHluYitqc29uXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcHluYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaXNvOTY2MC1pbWFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXNvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1pd29yay1rZXlub3RlLXNmZmtleVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtleVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaXdvcmstbnVtYmVycy1zZmZudW1iZXJzXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnVtYmVyc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaXdvcmstcGFnZXMtc2ZmcGFnZXNcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYWdlc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtamF2YS1hcmNoaXZlLWRpZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamFyZGlmZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtamF2YS1qbmxwLWZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpubHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWtlZXBhc3MyXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia2RieFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbGF0ZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxhdGV4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1sdWEtYnl0ZWNvZGVcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsdWFjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1semgtY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibHpoXCIsXCJsaGFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1ha2VzZWxmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJ1blwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbWllXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtaWVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1vYmlwb2NrZXQtZWJvb2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInByY1wiLFwibW9iaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXBlZ3VybFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zLWFwcGxpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhcHBsaWNhdGlvblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXMtc2hvcnRjdXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxua1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXMtd21kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zLXdtelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid216XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tcy14YmFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4YmFwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc2FjY2Vzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWRiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc2JpbmRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2JkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc2NhcmRmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zY2xpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc2Rvcy1wcm9ncmFtXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXhlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc2Rvd25sb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleGVcIixcImRsbFwiLFwiY29tXCIsXCJiYXRcIixcIm1zaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNtZWRpYXZpZXdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm12YlwiLFwibTEzXCIsXCJtMTRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtZlwiLFwid216XCIsXCJlbWZcIixcImVtelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNtb25leVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW55XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc3B1Ymxpc2hlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHViXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc3NjaGVkdWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY2RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zdGVybWluYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRybVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXN3cml0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3JpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1uZXRjZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5jXCIsXCJjZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW5zLXByb3h5LWF1dG9jb25maWdcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbnpiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuemJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXBlcmxcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGxcIixcInBtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1waWxvdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcmNcIixcInBkYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcGtjczEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwMTJcIixcInBmeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwN2JcIixcInNwY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydHJlcXJlc3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInA3clwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcGtpLW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1yZWRoYXQtcGFja2FnZS1tYW5hZ2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJwbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcmVzZWFyY2gtaW5mby1zeXN0ZW1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyaXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXNlYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZWFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNoXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zaGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaGFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN3ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQtYXBwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4YXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXNxbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3FsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zdHVmZml0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaXR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zdWJyaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNydFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3Bpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3Y0Y3Bpb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3JjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdjRjcmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXQzdm0taW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInQzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10YWRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnYW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0YXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRjbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGNsXCIsXCJ0a1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZXhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRleC10Zm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRmbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGV4aW5mb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGV4aW5mb1wiLFwidGV4aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGdpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2JqXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC11c3RhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXN0YXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtaGRkXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoZGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZhXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdmFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZmXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdmZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmJveFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94LWV4dHBhY2tcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Ym94LWV4dHBhY2tcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmRpXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2ZGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmhkXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2aGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdm1ka1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widm1ka1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtd2Fpcy1zb3VyY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNyY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtd2ViLWFwcC1tYW5pZmVzdCtqc29uXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3ZWJhcHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtY2VydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRlclwiLFwiY3J0XCIsXCJwZW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtcmEtY2VydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXg1MDktbmV4dC1jYS1jZXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteGZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmlnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14bGlmZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14cGluc3RhbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhwaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteHpcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInh6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZFwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcInppcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtem1hY2hpbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInoxXCIsXCJ6MlwiLFwiejNcIixcIno0XCIsXCJ6NVwiLFwiejZcIixcIno3XCIsXCJ6OFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3g0MDAtYnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGFjbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGFtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGFtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtYXR0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGF2XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1jYXBzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGNhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1kaWZmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1lbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhlbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtZXJyb3IreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1ucyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhuc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvLWRpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGVuYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhlbmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94ZmRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGZkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hodG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGh0bWxcIixcInhodFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hodG1sLXZvaWNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGxpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhtbFwiLFwieHNsXCIsXCJ4c2RcIixcInJuZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3htbC1kdGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR0ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3htbC1wYXRjaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94bXBwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hvcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhvcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hwcm9jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94c2x0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHNsXCIsXCJ4c2x0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veHNwZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHNwZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3h2K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXhtbFwiLFwieGh2bWxcIixcInh2bWxcIixcInh2bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veWFuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInlhbmdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGErY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbmctc2lkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95aW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ5aW5cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi96aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ6aXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi96aXArZG90bG90dGllXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibG90dGllXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vemxpYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi96c3RkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby8zMmthZHBjbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby8zZ3BwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM2dwcFwiXVxuICB9LFxuICBcImF1ZGlvLzNncHAyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2FhY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFkdHNcIixcImFhY1wiXVxuICB9LFxuICBcImF1ZGlvL2FjM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hZHBjbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWRwXCJdXG4gIH0sXG4gIFwiYXVkaW8vYW1yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYW1yXCJdXG4gIH0sXG4gIFwiYXVkaW8vYW1yLXdiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Ftci13YitcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYXB0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hc2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYXRyYWMtYWR2YW5jZWQtbG9zc2xlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYXRyYWMteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hdHJhYzNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYmFzaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdVwiLFwic25kXCJdXG4gIH0sXG4gIFwiYXVkaW8vYnYxNlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9idjMyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2NsZWFybW9kZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9jblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kYXQxMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kbHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZHNyLWVzMjAxMTA4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Rzci1lczIwMjA1MFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kc3ItZXMyMDIyMTFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZHNyLWVzMjAyMjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2R2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2R2aTRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZWFjM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9lbmNhcHJ0cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmMtcWNwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmMwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmMxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNiMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjYjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY253XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNudzBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY253MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjd2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY3diMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjd2IxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9mbGFjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2ZsZXhmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZndkcmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MTEtMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzE5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyMjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI2LTE2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjYtMjRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyNi0zMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI2LTQwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyOVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5ZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nc21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZ3NtLWVmclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nc20taHItMDhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vaWxiY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9pcC1tcl92Mi41XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2lzYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhdWRpby9sMTZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbDIwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2wyNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhdWRpby9sOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9scGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbWF0cm9za2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbWVscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwMTIwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwMjQwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwNjAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21oYXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbWlkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWlkXCIsXCJtaWRpXCIsXCJrYXJcIixcInJtaVwiXVxuICB9LFxuICBcImF1ZGlvL21pZGktY2xpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tb2JpbGUteG1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXhtZlwiXVxuICB9LFxuICBcImF1ZGlvL21wM1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wM1wiXVxuICB9LFxuICBcImF1ZGlvL21wNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm00YVwiLFwibXA0YVwiLFwibTRiXCJdXG4gIH0sXG4gIFwiYXVkaW8vbXA0YS1sYXRtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21wYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tcGEtcm9idXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21wZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGdhXCIsXCJtcDJcIixcIm1wMmFcIixcIm1wM1wiLFwibTJhXCIsXCJtM2FcIl1cbiAgfSxcbiAgXCJhdWRpby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL211c2VwYWNrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXVkaW8vb2dnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2dhXCIsXCJvZ2dcIixcInNweFwiLFwib3B1c1wiXVxuICB9LFxuICBcImF1ZGlvL29wdXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3BjbWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcGNtYS13YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9wY211XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3BjbXUtd2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcHJzLnNpZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9xY2VscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9yYXB0b3JmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnRwLW1pZGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnRwbG9vcGJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3MzbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiczNtXCJdXG4gIH0sXG4gIFwiYXVkaW8vc2NpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zaWxrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaWxcIl1cbiAgfSxcbiAgXCJhdWRpby9zbXZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vc212LXFjcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zbXYwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3NvZmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vc3AtbWlkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zcGVleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby90MTQwY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby90MzhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdGVsZXBob25lLWV2ZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3RldHJhX2FjZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3RldHJhX2FjZWxwX2JiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3RvbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdHN2Y2lzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3VlbWNsaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdWxwZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3VzYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdmR2aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bXItd2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLjNncHAuaXVmcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuNHNiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5hdWRpb2tvelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuY2VscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuY2lzY28ubnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5jbWxlcy5yYWRpby1ldmVudHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmNucy5hbnAxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5jbnMuaW5mMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZGVjZS5hdWRpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2YVwiLFwidXZ2YVwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5kaWdpdGFsLXdpbmRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZW9sXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmRsbmEuYWR0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkubWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5tcHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucGwyeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucGwyelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucHVsc2UuMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZHJhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHJhXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmR0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR0c1wiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5kdHMuaGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkdHNoZFwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5kdHMudWhkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZXZlcmFkLnBsalwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuaG5zLmF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5sdWNlbnQudm9pY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsdnBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB5YVwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5ub2tpYS5tb2JpbGUteG1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5ub3J0ZWwudmJrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDQ4MDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlY2VscDQ4MDBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWNlbHA3NDcwXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwOTYwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVjZWxwOTYwMFwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5vY3RlbC5zYmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnByZXNvbnVzLm11bHRpdHJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnFjZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnJoZXRvcmV4LjMya2FkcGNtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5yaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyaXBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQucm4tcmVhbGF1ZGlvXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImF1ZGlvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC52bXguY3ZzZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQud2F2ZVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhdWRpby92b3JiaXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXVkaW8vdm9yYmlzLWNvbmZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby93YXZcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YXZcIl1cbiAgfSxcbiAgXCJhdWRpby93YXZlXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2F2XCJdXG4gIH0sXG4gIFwiYXVkaW8vd2VibVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2ViYVwiXVxuICB9LFxuICBcImF1ZGlvL3gtYWFjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhYWNcIl1cbiAgfSxcbiAgXCJhdWRpby94LWFpZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFpZlwiLFwiYWlmZlwiLFwiYWlmY1wiXVxuICB9LFxuICBcImF1ZGlvL3gtY2FmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjYWZcIl1cbiAgfSxcbiAgXCJhdWRpby94LWZsYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZsYWNcIl1cbiAgfSxcbiAgXCJhdWRpby94LW00YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtNGFcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1hdHJvc2thXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJta2FcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1wZWd1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm0zdVwiXVxuICB9LFxuICBcImF1ZGlvL3gtbXMtd2F4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YXhcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1zLXdtYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21hXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1wbi1yZWFsYXVkaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhbVwiLFwicmFcIl1cbiAgfSxcbiAgXCJhdWRpby94LXBuLXJlYWxhdWRpby1wbHVnaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtcFwiXVxuICB9LFxuICBcImF1ZGlvL3gtcmVhbGF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhXCJdXG4gIH0sXG4gIFwiYXVkaW8veC10dGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhdWRpby94LXdhdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2F2XCJdXG4gIH0sXG4gIFwiYXVkaW8veG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhtXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1jZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkeFwiXVxuICB9LFxuICBcImNoZW1pY2FsL3gtY2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaWZcIl1cbiAgfSxcbiAgXCJjaGVtaWNhbC94LWNtZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNtZGZcIl1cbiAgfSxcbiAgXCJjaGVtaWNhbC94LWNtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY21sXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1jc21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc21sXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1wZGJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJjaGVtaWNhbC94LXh5elwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHl6XCJdXG4gIH0sXG4gIFwiZm9udC9jb2xsZWN0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRjXCJdXG4gIH0sXG4gIFwiZm9udC9vdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90ZlwiXVxuICB9LFxuICBcImZvbnQvc2ZudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJmb250L3R0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRmXCJdXG4gIH0sXG4gIFwiZm9udC93b2ZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid29mZlwiXVxuICB9LFxuICBcImZvbnQvd29mZjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3b2ZmMlwiXVxuICB9LFxuICBcImltYWdlL2FjZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleHJcIl1cbiAgfSxcbiAgXCJpbWFnZS9hcG5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBuZ1wiXVxuICB9LFxuICBcImltYWdlL2F2Y2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdmNpXCJdXG4gIH0sXG4gIFwiaW1hZ2UvYXZjc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF2Y3NcIl1cbiAgfSxcbiAgXCJpbWFnZS9hdmlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXZpZlwiXVxuICB9LFxuICBcImltYWdlL2JtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYm1wXCIsXCJkaWJcIl1cbiAgfSxcbiAgXCJpbWFnZS9jZ21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZ21cIl1cbiAgfSxcbiAgXCJpbWFnZS9kaWNvbS1ybGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkcmxlXCJdXG4gIH0sXG4gIFwiaW1hZ2UvZHB4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHB4XCJdXG4gIH0sXG4gIFwiaW1hZ2UvZW1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZW1mXCJdXG4gIH0sXG4gIFwiaW1hZ2UvZml0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZpdHNcIl1cbiAgfSxcbiAgXCJpbWFnZS9nM2ZheFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImczXCJdXG4gIH0sXG4gIFwiaW1hZ2UvZ2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2lmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvaGVpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlaWNcIl1cbiAgfSxcbiAgXCJpbWFnZS9oZWljLXNlcXVlbmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGVpY3NcIl1cbiAgfSxcbiAgXCJpbWFnZS9oZWlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGVpZlwiXVxuICB9LFxuICBcImltYWdlL2hlaWYtc2VxdWVuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoZWlmc1wiXVxuICB9LFxuICBcImltYWdlL2hlajJrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGVqMlwiXVxuICB9LFxuICBcImltYWdlL2llZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImllZlwiXVxuICB9LFxuICBcImltYWdlL2oyY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS9qYWlpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamFpaVwiXVxuICB9LFxuICBcImltYWdlL2phaXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqYWlzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvamxzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamxzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanAyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianAyXCIsXCJqcGcyXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpwZ1wiLFwianBlZ1wiLFwianBlXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanBoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianBoXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanBoY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpoY1wiXVxuICB9LFxuICBcImltYWdlL2pwbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpwbVwiLFwianBnbVwiXVxuICB9LFxuICBcImltYWdlL2pweFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpweFwiLFwianBmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanhsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhsXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanhyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhyXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanhyYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4cmFcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhyc1wiXVxuICB9LFxuICBcImltYWdlL2p4c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4c1wiXVxuICB9LFxuICBcImltYWdlL2p4c2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHNjXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanhzaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4c2lcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhzc1wiXVxuICB9LFxuICBcImltYWdlL2t0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImt0eFwiXVxuICB9LFxuICBcImltYWdlL2t0eDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrdHgyXCJdXG4gIH0sXG4gIFwiaW1hZ2UvbmFwbHBzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3BqcGVnXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamZpZlwiXVxuICB9LFxuICBcImltYWdlL3BuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBuZ1wiXVxuICB9LFxuICBcImltYWdlL3Bycy5idGlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYnRpZlwiLFwiYnRmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvcHJzLnB0aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB0aVwiXVxuICB9LFxuICBcImltYWdlL3B3Zy1yYXN0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvc2dpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZ2lcIl1cbiAgfSxcbiAgXCJpbWFnZS9zdmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdmdcIixcInN2Z3pcIl1cbiAgfSxcbiAgXCJpbWFnZS90MzhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0MzhcIl1cbiAgfSxcbiAgXCJpbWFnZS90aWZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGlmXCIsXCJ0aWZmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvdGlmZi1meFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRmeFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5hZG9iZS5waG90b3Nob3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBzZFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5haXJ6aXAuYWNjZWxlcmF0b3IuYXp2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXp2XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmNsaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmNucy5pbmYyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5kZWNlLmdyYXBoaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dmlcIixcInV2dmlcIixcInV2Z1wiLFwidXZ2Z1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5kanZ1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGp2dVwiLFwiZGp2XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN1YlwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5kd2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkd2dcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZHhmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHhmXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZhc3RiaWRzaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZic1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5mcHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmcHhcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZnN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnN0XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtbW1yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW1yXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtcmxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmxjXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmdsb2JhbGdyYXBoaWNzLnBnYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImljb1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5taXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLm1vemlsbGEuYXBuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQubXMtZGRzXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZHNcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQubXMtbW9kaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1kaVwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5tcy1waG90b1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2RwXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLm5ldC1mcHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJucHhcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQucGNvLmIxNlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImIxNlwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5yYWRpYW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQuc2VhbGVkLnBuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuZ2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5qcGdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLnN2ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQudGVuY2VudC50YXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0YXBcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQudmFsdmUuc291cmNlLnRleHR1cmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2dGZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQud2FwLndibXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3Ym1wXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLnhpZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4aWZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuemJydXNoLnBjeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjeFwiXVxuICB9LFxuICBcImltYWdlL3dlYnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3ZWJwXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvd21mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21mXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC0zZHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjNkc1wiXVxuICB9LFxuICBcImltYWdlL3gtYWRvYmUtZG5nXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG5nXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1jbXUtcmFzdGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYXNcIl1cbiAgfSxcbiAgXCJpbWFnZS94LWNteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY214XCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1lbWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2UveC1mcmVlaGFuZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmhcIixcImZoY1wiLFwiZmg0XCIsXCJmaDVcIixcImZoN1wiXVxuICB9LFxuICBcImltYWdlL3gtaWNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpY29cIl1cbiAgfSxcbiAgXCJpbWFnZS94LWpuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqbmdcIl1cbiAgfSxcbiAgXCJpbWFnZS94LW1yc2lkLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaWRcIl1cbiAgfSxcbiAgXCJpbWFnZS94LW1zLWJtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJtcFwiXVxuICB9LFxuICBcImltYWdlL3gtcGN4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwY3hcIl1cbiAgfSxcbiAgXCJpbWFnZS94LXBpY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBpY1wiLFwicGN0XCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1wb3J0YWJsZS1hbnltYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBubVwiXVxuICB9LFxuICBcImltYWdlL3gtcG9ydGFibGUtYml0bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYm1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXBvcnRhYmxlLWdyYXltYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBnbVwiXVxuICB9LFxuICBcImltYWdlL3gtcG9ydGFibGUtcGl4bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcG1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXJnYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmdiXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC10Z2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRnYVwiXVxuICB9LFxuICBcImltYWdlL3gtd21mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3gteGJpdG1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGJtXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC14Y2ZcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiaW1hZ2UveC14cGl4bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cG1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXh3aW5kb3dkdW1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4d2RcIl1cbiAgfSxcbiAgXCJtZXNzYWdlL2JodHRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvY3BpbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL2RlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL2Rpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCJcbiAgICBdXG4gIH0sXG4gIFwibWVzc2FnZS9leHRlcm5hbC1ib2R5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvZmVlZGJhY2stcmVwb3J0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvZ2xvYmFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widThtc2dcIl1cbiAgfSxcbiAgXCJtZXNzYWdlL2dsb2JhbC1kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1OGRzblwiXVxuICB9LFxuICBcIm1lc3NhZ2UvZ2xvYmFsLWRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInU4bWRuXCJdXG4gIH0sXG4gIFwibWVzc2FnZS9nbG9iYWwtaGVhZGVyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInU4aGRyXCJdXG4gIH0sXG4gIFwibWVzc2FnZS9odHRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm1lc3NhZ2UvaW1kbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJtZXNzYWdlL21sc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL25ld3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJtZXNzYWdlL29odHRwLXJlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL29odHRwLXJlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL3BhcnRpYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwibWVzc2FnZS9yZmM4MjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVtbFwiLFwibWltZVwiLFwibWh0XCIsXCJtaHRtbFwiXVxuICB9LFxuICBcIm1lc3NhZ2Uvcy1odHRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwibWVzc2FnZS9zaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS9zaXBmcmFnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvdHJhY2tpbmctc3RhdHVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2Uvdm5kLnNpLnNpbXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJtZXNzYWdlL3ZuZC53ZmEud3NjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3NjXCJdXG4gIH0sXG4gIFwibW9kZWwvM21mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM21mXCJdXG4gIH0sXG4gIFwibW9kZWwvZTU3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL2dsdGYranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2x0ZlwiXVxuICB9LFxuICBcIm1vZGVsL2dsdGYtYmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbGJcIl1cbiAgfSxcbiAgXCJtb2RlbC9pZ2VzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWdzXCIsXCJpZ2VzXCJdXG4gIH0sXG4gIFwibW9kZWwvanRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqdFwiXVxuICB9LFxuICBcIm1vZGVsL21lc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2hcIixcIm1lc2hcIixcInNpbG9cIl1cbiAgfSxcbiAgXCJtb2RlbC9tdGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdGxcIl1cbiAgfSxcbiAgXCJtb2RlbC9vYmpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvYmpcIl1cbiAgfSxcbiAgXCJtb2RlbC9wcmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcmNcIl1cbiAgfSxcbiAgXCJtb2RlbC9zdGVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RlcFwiLFwic3RwXCIsXCJzdHBuY1wiLFwicDIxXCIsXCIyMTBcIl1cbiAgfSxcbiAgXCJtb2RlbC9zdGVwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RweFwiXVxuICB9LFxuICBcIm1vZGVsL3N0ZXAremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RwelwiXVxuICB9LFxuICBcIm1vZGVsL3N0ZXAteG1sK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0cHh6XCJdXG4gIH0sXG4gIFwibW9kZWwvc3RsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RsXCJdXG4gIH0sXG4gIFwibW9kZWwvdTNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widTNkXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLmJhcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJiYXJ5XCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLmNsZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNsZFwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5jb2xsYWRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGFlXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLmR3ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR3ZlwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5mbGF0bGFuZC4zZG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL3ZuZC5nZGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZGxcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQuZ3MtZ2RsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwibW9kZWwvdm5kLmdzLmdkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtb2RlbC92bmQuZ3R3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3R3XCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLm1vbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwibW9kZWwvdm5kLm10c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm10c1wiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5vcGVuZ2V4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2dleFwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQuYmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieF9iXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC50ZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieF90XCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnB5dGhhLnB5b3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJweW9cIixcInB5b3hcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQucm9zZXR0ZS5hbm5vdGF0ZWQtZGF0YS1tb2RlbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtb2RlbC92bmQuc2FwLnZkc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZkc1wiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC51c2RhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXNkYVwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC51c2R6K3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVzZHpcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQudmFsdmUuc291cmNlLmNvbXBpbGVkLW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJzcFwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC52dHVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2dHVcIl1cbiAgfSxcbiAgXCJtb2RlbC92cm1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3JsXCIsXCJ2cm1sXCJdXG4gIH0sXG4gIFwibW9kZWwveDNkK2JpbmFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieDNkYlwiLFwieDNkYnpcIl1cbiAgfSxcbiAgXCJtb2RlbC94M2QrZmFzdGluZm9zZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4M2RiXCJdXG4gIH0sXG4gIFwibW9kZWwveDNkK3ZybWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIngzZHZcIixcIngzZHZ6XCJdXG4gIH0sXG4gIFwibW9kZWwveDNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieDNkXCIsXCJ4M2R6XCJdXG4gIH0sXG4gIFwibW9kZWwveDNkLXZybWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4M2R2XCJdXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2FsdGVybmF0aXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm11bHRpcGFydC9hcHBsZWRvdWJsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvYnl0ZXJhbmdlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvZGlnZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtdWx0aXBhcnQvaGVhZGVyLXNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvbWl4ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L211bHRpbGluZ3VhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvcGFyYWxsZWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3JlbGF0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3JlcG9ydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvc2lnbmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm11bHRpcGFydC92bmQuYmludC5tZWQtcGx1c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvdm9pY2UtbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvY2FjaGUtbWFuaWZlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwcGNhY2hlXCIsXCJtYW5pZmVzdFwiXVxuICB9LFxuICBcInRleHQvY2FsZW5kYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpY3NcIixcImlmYlwiXVxuICB9LFxuICBcInRleHQvY2FsZW5kZXJcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJ0ZXh0L2NtZFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcInRleHQvY29mZmVlc2NyaXB0XCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY29mZmVlXCIsXCJsaXRjb2ZmZWVcIl1cbiAgfSxcbiAgXCJ0ZXh0L2NxbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2NxbC1leHByZXNzaW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvY3FsLWlkZW50aWZpZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9jc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3NzXCJdXG4gIH0sXG4gIFwidGV4dC9jc3ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNzdlwiXVxuICB9LFxuICBcInRleHQvY3N2LXNjaGVtYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2RpcmVjdG9yeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2Ruc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2VjbWFzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJ0ZXh0L2VuY2FwcnRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZW5yaWNoZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9maGlycGF0aFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2ZsZXhmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9md2RyZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9nZmYzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZ3JhbW1hci1yZWYtbGlzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2hsN3YyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvaHRtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHRtbFwiLFwiaHRtXCIsXCJzaHRtbFwiXVxuICB9LFxuICBcInRleHQvamFkZVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphZGVcIl1cbiAgfSxcbiAgXCJ0ZXh0L2phdmFzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianNcIixcIm1qc1wiXVxuICB9LFxuICBcInRleHQvamNyLWNuZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2pzeFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianN4XCJdXG4gIH0sXG4gIFwidGV4dC9sZXNzXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsZXNzXCJdXG4gIH0sXG4gIFwidGV4dC9tYXJrZG93blwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWRcIixcIm1hcmtkb3duXCJdXG4gIH0sXG4gIFwidGV4dC9tYXRobWxcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW1sXCJdXG4gIH0sXG4gIFwidGV4dC9tZHhcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1keFwiXVxuICB9LFxuICBcInRleHQvbWl6YXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9uM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuM1wiXVxuICB9LFxuICBcInRleHQvcGFyYW1ldGVyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIlxuICB9LFxuICBcInRleHQvcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcGxhaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInR4dFwiLFwidGV4dFwiLFwiY29uZlwiLFwiZGVmXCIsXCJsaXN0XCIsXCJsb2dcIixcImluXCIsXCJpbmlcIl1cbiAgfSxcbiAgXCJ0ZXh0L3Byb3ZlbmFuY2Utbm90YXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCJcbiAgfSxcbiAgXCJ0ZXh0L3Bycy5mYWxsZW5zdGVpbi5yc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9wcnMubGluZXMudGFnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHNjXCJdXG4gIH0sXG4gIFwidGV4dC9wcnMucHJvcC5sb2dpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3Bycy50ZXhpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcmFwdG9yZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcmZjODIyLWhlYWRlcnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9yaWNodGV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnR4XCJdXG4gIH0sXG4gIFwidGV4dC9ydGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJ0ZlwiXVxuICB9LFxuICBcInRleHQvcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3J0cGxvb3BiYWNrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcnR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvc2dtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNnbWxcIixcInNnbVwiXVxuICB9LFxuICBcInRleHQvc2hhY2xjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvc2hleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNoZXhcIl1cbiAgfSxcbiAgXCJ0ZXh0L3NsaW1cIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbGltXCIsXCJzbG1cIl1cbiAgfSxcbiAgXCJ0ZXh0L3NwZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcGR4XCJdXG4gIH0sXG4gIFwidGV4dC9zdHJpbmdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvc3R5bHVzXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3R5bHVzXCIsXCJzdHlsXCJdXG4gIH0sXG4gIFwidGV4dC90MTQwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRzdlwiXVxuICB9LFxuICBcInRleHQvdHJvZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0XCIsXCJ0clwiLFwicm9mZlwiLFwibWFuXCIsXCJtZVwiLFwibXNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3R1cnRsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRsXCJdXG4gIH0sXG4gIFwidGV4dC91bHBmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC91cmktbGlzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXJpXCIsXCJ1cmlzXCIsXCJ1cmxzXCJdXG4gIH0sXG4gIFwidGV4dC92Y2FyZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmNhcmRcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmFiY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5hc2NpaS1hcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuY3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImN1cmxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5jdXJsLmRjdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkY3VybFwiXVxuICB9LFxuICBcInRleHQvdm5kLmN1cmwubWN1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1jdXJsXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuY3VybC5zY3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2N1cmxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5kZWJpYW4uY29weXJpZ2h0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiXG4gIH0sXG4gIFwidGV4dC92bmQuZG1jbGllbnRzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3ViXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuZXNtZXJ0ZWMudGhlbWUtZGVzY3JpcHRvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIlxuICB9LFxuICBcInRleHQvdm5kLmV4Y2hhbmdlYWJsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2VkXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuZmljbGFiLmZsdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5mbHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbHlcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5mbWkuZmxleHN0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbHhcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5nbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuZ3JhcGh2aXpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJndlwiXVxuICB9LFxuICBcInRleHQvdm5kLmhhbnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuaGdsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmluM2QuM2RtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjNkbWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5pbjNkLnNwb3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcG90XCJdXG4gIH0sXG4gIFwidGV4dC92bmQuaXB0Yy5uZXdzbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuaXB0Yy5uaXRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmxhdGV4LXpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQubW90b3JvbGEucmVmbGV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLm1zLW1lZGlhcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5uZXQycGhvbmUuY29tbWNlbnRlci5jb21tYW5kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLnJhZGlzeXMubXNtbC1iYXNpYy1sYXlvdXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuc2VueC53YXJwc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLnNpLnVyaWNhdGFsb2d1ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcInRleHQvdm5kLnNvc2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuc3VuLmoybWUuYXBwLWRlc2NyaXB0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphZFwiXVxuICB9LFxuICBcInRleHQvdm5kLnRyb2xsdGVjaC5saW5ndWlzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIlxuICB9LFxuICBcInRleHQvdm5kLnZjZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC53YXAuc2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQud2FwLnNsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLndhcC53bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC53YXAud21sc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21sc1wiXVxuICB9LFxuICBcInRleHQvdm5kLnpvby5rY2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92dHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widnR0XCJdXG4gIH0sXG4gIFwidGV4dC93Z3NsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2dzbFwiXVxuICB9LFxuICBcInRleHQveC1hc21cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNcIixcImFzbVwiXVxuICB9LFxuICBcInRleHQveC1jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjXCIsXCJjY1wiLFwiY3h4XCIsXCJjcHBcIixcImhcIixcImhoXCIsXCJkaWNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtY29tcG9uZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh0Y1wiXVxuICB9LFxuICBcInRleHQveC1mb3J0cmFuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmXCIsXCJmb3JcIixcImY3N1wiLFwiZjkwXCJdXG4gIH0sXG4gIFwidGV4dC94LWd3dC1ycGNcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJ0ZXh0L3gtaGFuZGxlYmFycy10ZW1wbGF0ZVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhic1wiXVxuICB9LFxuICBcInRleHQveC1qYXZhLXNvdXJjZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamF2YVwiXVxuICB9LFxuICBcInRleHQveC1qcXVlcnktdG1wbFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcInRleHQveC1sdWFcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsdWFcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtbWFya2Rvd25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1rZFwiXVxuICB9LFxuICBcInRleHQveC1uZm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5mb1wiXVxuICB9LFxuICBcInRleHQveC1vcG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvcG1sXCJdXG4gIH0sXG4gIFwidGV4dC94LW9yZ1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3JnXCJdXG4gIH0sXG4gIFwidGV4dC94LXBhc2NhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicFwiLFwicGFzXCJdXG4gIH0sXG4gIFwidGV4dC94LXByb2Nlc3NpbmdcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBkZVwiXVxuICB9LFxuICBcInRleHQveC1zYXNzXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2Fzc1wiXVxuICB9LFxuICBcInRleHQveC1zY3NzXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2Nzc1wiXVxuICB9LFxuICBcInRleHQveC1zZXRleHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV0eFwiXVxuICB9LFxuICBcInRleHQveC1zZnZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNmdlwiXVxuICB9LFxuICBcInRleHQveC1zdXNlLXltcFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieW1wXCJdXG4gIH0sXG4gIFwidGV4dC94LXV1ZW5jb2RlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dVwiXVxuICB9LFxuICBcInRleHQveC12Y2FsZW5kYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZjc1wiXVxuICB9LFxuICBcInRleHQveC12Y2FyZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmNmXCJdXG4gIH0sXG4gIFwidGV4dC94bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhtbFwiXVxuICB9LFxuICBcInRleHQveG1sLWV4dGVybmFsLXBhcnNlZC1lbnRpdHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC95YW1sXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ5YW1sXCIsXCJ5bWxcIl1cbiAgfSxcbiAgXCJ2aWRlby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vM2dwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjNncFwiLFwiM2dwcFwiXVxuICB9LFxuICBcInZpZGVvLzNncHAtdHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vM2dwcDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCIzZzJcIl1cbiAgfSxcbiAgXCJ2aWRlby9hdjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vYm1wZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vYnQ2NTZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vY2VsYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9kdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9lbmNhcHJ0cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9ldmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vZmZ2MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9mbGV4ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoMjYxXCJdXG4gIH0sXG4gIFwidmlkZW8vaDI2M1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImgyNjNcIl1cbiAgfSxcbiAgXCJ2aWRlby9oMjYzLTE5OThcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vaDI2My0yMDAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoMjY0XCJdXG4gIH0sXG4gIFwidmlkZW8vaDI2NC1yY2RvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjQtc3ZjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vaDI2NlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9pc28uc2VnbWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm00c1wiXVxuICB9LFxuICBcInZpZGVvL2pwZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcGd2XCJdXG4gIH0sXG4gIFwidmlkZW8vanBlZzIwMDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vanBtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcG1cIixcImpwZ21cIl1cbiAgfSxcbiAgXCJ2aWRlby9qeHN2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2xvdHRpZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwidmlkZW8vbWF0cm9za2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbWF0cm9za2EtM2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbWoyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWoyXCIsXCJtanAyXCJdXG4gIH0sXG4gIFwidmlkZW8vbXAxc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9tcDJwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL21wMnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0c1wiLFwibTJ0XCIsXCJtMnRzXCIsXCJtdHNcIl1cbiAgfSxcbiAgXCJ2aWRlby9tcDRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcDRcIixcIm1wNHZcIixcIm1wZzRcIl1cbiAgfSxcbiAgXCJ2aWRlby9tcDR2LWVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL21wZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGVnXCIsXCJtcGdcIixcIm1wZVwiLFwibTF2XCIsXCJtMnZcIl1cbiAgfSxcbiAgXCJ2aWRlby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL21wdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9udlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9vZ2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZ3ZcIl1cbiAgfSxcbiAgXCJ2aWRlby9wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vcG9pbnRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9xdWlja3RpbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJxdFwiLFwibW92XCJdXG4gIH0sXG4gIFwidmlkZW8vcmFwdG9yZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3Jhd1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3J0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9zY2lwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3NtcHRlMjkxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3NtcHRlMjkybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby91bHBmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdmMxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZjMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuY2N0dlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuZGVjZS5oZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2aFwiLFwidXZ2aFwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5kZWNlLm1vYmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2bVwiLFwidXZ2bVwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5kZWNlLm1wNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuZGVjZS5wZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2cFwiLFwidXZ2cFwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5kZWNlLnNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZzXCIsXCJ1dnZzXCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRlY2UudmlkZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnZcIixcInV2dnZcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWctdHRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5kbG5hLm1wZWctdHRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR2YlwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5mdnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmdnRcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuaG5zLnZpZGVvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMWRwYXJpdHlmZWMtMTAxMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMmRwYXJpdHlmZWMtMjAwNVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c2F2Y1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c21wZWcyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5tb3Rvcm9sYS52aWRlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5tcGVndXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXh1XCIsXCJtNHVcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5dlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB5dlwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5ub2tpYS5pbnRlcmxlYXZlZC1tdWx0aW1lZGlhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5ub2tpYS5tcDR2clwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQubm9raWEudmlkZW92b2lwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5vYmplY3R2aWRlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQucGxhbmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLmJpbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuc21hY2tlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuc2VhbGVkLnN3ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubW92XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC51dnZ1Lm1wNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2dVwiLFwidXZ2dVwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC52aXZvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widml2XCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLnlvdXR1YmUueXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdnA4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZwOVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby93ZWJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3ZWJtXCJdXG4gIH0sXG4gIFwidmlkZW8veC1mNHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImY0dlwiXVxuICB9LFxuICBcInZpZGVvL3gtZmxpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbGlcIl1cbiAgfSxcbiAgXCJ2aWRlby94LWZsdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmx2XCJdXG4gIH0sXG4gIFwidmlkZW8veC1tNHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm00dlwiXVxuICB9LFxuICBcInZpZGVvL3gtbWF0cm9za2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1rdlwiLFwibWszZFwiLFwibWtzXCJdXG4gIH0sXG4gIFwidmlkZW8veC1tbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1uZ1wiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtYXNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhc2ZcIixcImFzeFwiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtdm9iXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2b2JcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLXdtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bVwiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtd212XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bXZcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLXdteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid214XCJdXG4gIH0sXG4gIFwidmlkZW8veC1tcy13dnhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInd2eFwiXVxuICB9LFxuICBcInZpZGVvL3gtbXN2aWRlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXZpXCJdXG4gIH0sXG4gIFwidmlkZW8veC1zZ2ktbW92aWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1vdmllXCJdXG4gIH0sXG4gIFwidmlkZW8veC1zbXZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtdlwiXVxuICB9LFxuICBcIngtY29uZmVyZW5jZS94LWNvb2x0YWxrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpY2VcIl1cbiAgfSxcbiAgXCJ4LXNoYWRlci94LWZyYWdtZW50XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwieC1zaGFkZXIveC12ZXJ0ZXhcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfVxufVxuIiwiLyohXG4gKiBtaW1lLWRiXG4gKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAqIENvcHlyaWdodChjKSAyMDE1LTIwMjIgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2RiLmpzb24nKVxuIiwiaW1wb3J0IHR5cGUgeyBQYXVzZVR5cGUsIFJlcGVhdFR5cGUgfSBmcm9tIFwiLi9jYW52YXNcIjtcblxuZXhwb3J0IHsgdmVyc2lvbiBhcyBQSVhJVk5fVkVSU0lPTiB9IGZyb20gXCIuLi9wYWNrYWdlLmpzb25cIjtcbmV4cG9ydCBjb25zdCBSZXBlYXQ6IFJlcGVhdFR5cGUgPSBcInJlcGVhdFwiO1xuLyoqXG4gKiBQYXVzZSB0aGUgdGlja2VycyBmb3IgYSBkdXJhdGlvbi5cbiAqIEBwYXJhbSBkdXJhdGlvbiBEdXJhdGlvbiBpbiBzZWNvbmRzXG4gKiBAcmV0dXJucyBUaGUgcGF1c2Ugb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQYXVzZShkdXJhdGlvbjogbnVtYmVyKTogUGF1c2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcInBhdXNlXCIsXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcbiAgICB9O1xufVxuXG4vKipcbiAqIElzIGEgc3BlY2lhbCBhbGlhcyB0byBpbmRpY2F0ZSB0aGUgZ2FtZSBsYXllci5cbiAqL1xuZXhwb3J0IGNvbnN0IENBTlZBU19BUFBfR0FNRV9MQVlFUl9BTElBUyA9IFwiX19nYW1lX2xheWVyX19cIjtcblxuZXhwb3J0IGNvbnN0IENBTlZBU19DT05UQUlORVJfSUQgPSBcIkNvbnRhaW5lclwiO1xuZXhwb3J0IGNvbnN0IENBTlZBU19JTUFHRV9DT05UQUlORVJfSUQgPSBcIkltYWdlQ29udGFpbmVyXCI7XG5leHBvcnQgY29uc3QgQ0FOVkFTX0lNQUdFX0lEID0gXCJJbWFnZVwiO1xuZXhwb3J0IGNvbnN0IENBTlZBU19TUFJJVEVfSUQgPSBcIlNwcml0ZVwiO1xuZXhwb3J0IGNvbnN0IENBTlZBU19URVhUX0lEID0gXCJUZXh0XCI7XG5leHBvcnQgY29uc3QgQ0FOVkFTX1ZJREVPX0lEID0gXCJWaWRlb1wiO1xuIiwiZXhwb3J0IG5hbWVzcGFjZSBsb2dnZXIge1xuICAgIGV4cG9ydCBjb25zdCBsb2cgPSAobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PlxuICAgICAgICBjb25zb2xlLmxvZyhgW1BpeGnigJlWTl0gJHttZXNzYWdlfWAsIC4uLm9wdGlvbmFsUGFyYW1zKTtcbiAgICBleHBvcnQgY29uc3Qgd2FybiA9IChtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pID0+XG4gICAgICAgIGNvbnNvbGUud2FybihgW1BpeGnigJlWTl0gJHttZXNzYWdlfWAsIC4uLm9wdGlvbmFsUGFyYW1zKTtcbiAgICBleHBvcnQgY29uc3QgZXJyb3IgPSAobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PlxuICAgICAgICBjb25zb2xlLmVycm9yKGBbUGl4aeKAmVZOXSAke21lc3NhZ2V9YCwgLi4ub3B0aW9uYWxQYXJhbXMpO1xuICAgIGV4cG9ydCBjb25zdCBpbmZvID0gKG1lc3NhZ2U/OiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSkgPT5cbiAgICAgICAgY29uc29sZS5pbmZvKGBbUGl4aeKAmVZOXSAke21lc3NhZ2V9YCwgLi4ub3B0aW9uYWxQYXJhbXMpO1xufVxuIiwiaW1wb3J0IHsgUGl4aUVycm9yIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9jb3JlXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2ctdXRpbGl0eVwiO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgYSBkZWVwIGNvcHkgb2YgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGJlIGNvcGllZFxuICogQHJldHVybnMgVGhlIGNvcGllZCBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFeHBvcnRhYmxlRWxlbWVudDxUPihlbGVtZW50OiBUKTogVCB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZWxlbWVudFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbGVtZW50U3RyaW5nKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihcIkVycm9yIGNyZWF0aW5nIGV4cG9ydGFibGUgZWxlbWVudFwiLCBlbGVtZW50LCBlKTtcbiAgICAgICAgdGhyb3cgbmV3IFBpeGlFcnJvcihcIm5vdF9qc29uX3NlcmlhbGl6YWJsZVwiLCBcIkVycm9yIGNyZWF0aW5nIGV4cG9ydGFibGUgZWxlbWVudFwiKTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBQaXhpRXJyb3IgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb24sIEFwcGxpY2F0aW9uT3B0aW9ucyB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBEZXZ0b29scywgaW5pdERldnRvb2xzIH0gZnJvbSBcIkBwaXhpL2RldnRvb2xzXCI7XG5pbXBvcnQgc2hhMSBmcm9tIFwiY3J5cHRvLWpzL3NoYTFcIjtcbmltcG9ydCB7IENBTlZBU19BUFBfR0FNRV9MQVlFUl9BTElBUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi91dGlscy9sb2ctdXRpbGl0eVwiO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tIFwiLi4vdXRpbHMvdGltZS11dGlsaXR5XCI7XG5pbXBvcnQgYWRkaXRpb25hbFBvc2l0aW9uc1Byb3BlcnRpZXMgZnJvbSBcIi4vcGl4aS1kZXZ0b29scy9hZGRpdGlvbmFsUG9zaXRpb25zUHJvcGVydGllc1wiO1xuaW1wb3J0IHsgVGlja2VySGlzdG9yeSwgVGlja2VySW5mbywgVGlja2Vyc1NlcXVlbmNlLCBUaWNrZXJUaW1lb3V0SGlzdG9yeSB9IGZyb20gXCIuL3RpY2tlcnNcIjtcbmltcG9ydCBQYXVzZVRpY2tlclR5cGUgZnJvbSBcIi4vdHlwZXMvUGF1c2VUaWNrZXJUeXBlXCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIGNhbnZhcywgdGhlIHRpY2tlcnMsIHRoZSBldmVudHMsIGFuZCB0aGUgd2luZG93IHNpemUgYW5kIHRoZSBjaGlsZHJlbiBvZiB0aGUgd2luZG93LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYW52YXNNYW5hZ2VyU3RhdGljIHtcbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHByaXZhdGUgc3RhdGljIF9hcHA6IEFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBnZXQgYXBwKCkge1xuICAgICAgICBpZiAoIUNhbnZhc01hbmFnZXJTdGF0aWMuX2FwcCkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiVGhlIGNhbnZhcyBpcyBub3QgaW5pdGlhbGl6ZWRcIik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGl4aUVycm9yKFwiaW52YWxpZF91c2FnZVwiLCBcIkNhbnZhc01hbmFnZXJTdGF0aWMuYXBwIGlzIHVuZGVmaW5lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5fYXBwO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IGdhbWVMYXllcigpIHtcbiAgICAgICAgbGV0IGxheWVyID0gdGhpcy5hcHAuc3RhZ2UuZ2V0Q2hpbGRCeUxhYmVsKENBTlZBU19BUFBfR0FNRV9MQVlFUl9BTElBUyk7XG4gICAgICAgIGlmICghbGF5ZXIpIHtcbiAgICAgICAgICAgIGxheWVyID0gbmV3IFBJWEkuQ29udGFpbmVyKCk7XG4gICAgICAgICAgICBsYXllci5sYWJlbCA9IENBTlZBU19BUFBfR0FNRV9MQVlFUl9BTElBUztcbiAgICAgICAgICAgIHRoaXMuYXBwLnN0YWdlLmFkZENoaWxkKGxheWVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGF5ZXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgdGhlIGRpdiB0aGF0IGhhdmUgc2FtZSBzaXplIG9mIHRoZSBjYW52YXMuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgdG8gcHV0IGludGVyZmFjZSBlbGVtZW50cy5cbiAgICAgKiBZb3UgY2FuIHVzZSBSZWFjdCBvciBvdGhlciBmcmFtZXdvcmsgdG8gcHV0IGVsZW1lbnRzIGluIHRoaXMgZGl2LlxuICAgICAqL1xuICAgIHN0YXRpYyBodG1sTGF5ZXJzOiBIVE1MRWxlbWVudFtdID0gW107XG4gICAgc3RhdGljIGNhbnZhc1dpZHRoOiBudW1iZXIgPSAzMDA7XG4gICAgc3RhdGljIGNhbnZhc0hlaWdodDogbnVtYmVyID0gMzAwO1xuICAgIHN0YXRpYyBfaXNJbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgc3RhdGljIGFzeW5jIGluaXQoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBvcHRpb25zPzogUGFydGlhbDxBcHBsaWNhdGlvbk9wdGlvbnM+ICYge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgaWQgb2YgdGhlIGNhbnZhcyBlbGVtZW50LlxuICAgICAgICAgICAgICogQGRlZmF1bHQgXCJwaXhpLXZuLWNhbnZhc1wiXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgcmVzaXplIG1vZGUgb2YgdGhlIGNhbnZhcy5cbiAgICAgICAgICAgICAqIEBkZWZhdWx0IFwiY29udGFpblwiXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJlc2l6ZU1vZGU/OiBcImNvbnRhaW5cIiB8IFwibm9uZVwiO1xuICAgICAgICB9LFxuICAgICAgICBkZXZ0b29sc09wdGlvbnM/OiBEZXZ0b29scyxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaWQgPSBcInBpeGktdm4tY2FudmFzXCIsXG4gICAgICAgICAgICB3aWR0aCA9IDgwMCxcbiAgICAgICAgICAgIGhlaWdodCA9IDYwMCxcbiAgICAgICAgICAgIHJlc29sdXRpb24gPSAxLFxuICAgICAgICAgICAgYXV0b0RlbnNpdHkgPSB0cnVlLFxuICAgICAgICAgICAgcmVzaXplTW9kZSA9IFwiY29udGFpblwiLFxuICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICB9ID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5jYW52YXNXaWR0aCA9IHdpZHRoO1xuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLmNhbnZhc0hlaWdodCA9IGhlaWdodDtcbiAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fYXBwID0gbmV3IFBJWEkuQXBwbGljYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIENhbnZhc01hbmFnZXJTdGF0aWMuYXBwXG4gICAgICAgICAgICAuaW5pdCh7XG4gICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgICAgICAgYXV0b0RlbnNpdHksXG4gICAgICAgICAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgICBhcHAgPSBDYW52YXNNYW5hZ2VyU3RhdGljLmFwcCxcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtdLFxuICAgICAgICAgICAgICAgICAgICAuLi5kZXZ0b29sc09wdGlvbnNSZXN0XG4gICAgICAgICAgICAgICAgfSA9IGRldnRvb2xzT3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgICAgICBpbml0RGV2dG9vbHMoe1xuICAgICAgICAgICAgICAgICAgICBhcHA6IGFwcCxcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW2FkZGl0aW9uYWxQb3NpdGlvbnNQcm9wZXJ0aWVzLCAuLi5leHRlbnNpb25zXSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZGV2dG9vbHNPcHRpb25zUmVzdCxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIE1hbmFnZXIuYXBwLnRpY2tlci5hZGQoTWFuYWdlci51cGRhdGUpXG4gICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5hZGRDYW52YXNJbnRvSFRNTEVsZW1lbnQoZWxlbWVudCwgaWQpO1xuICAgICAgICAgICAgICAgIC8vIGxpc3RlbiBmb3IgdGhlIGJyb3dzZXIgdGVsbGluZyB1cyB0aGF0IHRoZSBzY3JlZW4gc2l6ZSBjaGFuZ2VkXG4gICAgICAgICAgICAgICAgc3dpdGNoIChyZXNpemVNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJjb250YWluXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aHJvdHRsZWRSZXNpemUgPSB0aHJvdHRsZSgoKSA9PiBDYW52YXNNYW5hZ2VyU3RhdGljLnJlc2l6ZSgpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgUmVzaXplT2JzZXJ2ZXIodGhyb3R0bGVkUmVzaXplKS5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FsbCBpdCBtYW51YWxseSBvbmNlIHNvIHdlIGFyZSBzdXJlIHdlIGFyZSB0aGUgY29ycmVjdCBzaXplIGFmdGVyIHN0YXJ0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLnJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJub25lXCI6XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYWRkIHRoZSBnYW1lIGxheWVyXG4gICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5nYW1lTGF5ZXI7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjYW52YXMgaW50byBhIGh0bWwgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gZWxlbWVudCBpdCBpcyB0aGUgaHRtbCBlbGVtZW50IHdoZXJlIEkgd2lsbCBwdXQgdGhlIGNhbnZhcy4gRXhhbXBsZTogZG9jdW1lbnQuYm9keVxuICAgICAqIEBwYXJhbSBpZCBpdCBpcyB0aGUgaWQgb2YgdGhlIGNhbnZhcyBlbGVtZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGFkZENhbnZhc0ludG9IVE1MRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAoQ2FudmFzTWFuYWdlclN0YXRpYy5faXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChDYW52YXNNYW5hZ2VyU3RhdGljLmFwcC5jYW52YXMgYXMgSFRNTENhbnZhc0VsZW1lbnQpO1xuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5hcHAuY2FudmFzLmlkID0gaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJHYW1lV2luZG93TWFuYWdlciBpcyBub3QgaW5pdGlhbGl6ZWRcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGFkZEh0bWxMYXllcihcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgICAgIHN0eWxlOiBQaWNrPENTU1N0eWxlRGVjbGFyYXRpb24sIFwicG9zaXRpb25cIiB8IFwicG9pbnRlckV2ZW50c1wiPiA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgfSxcbiAgICApIHtcbiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoXCJpZFwiLCBpZCk7XG4gICAgICAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9IHN0eWxlLnBvc2l0aW9uO1xuICAgICAgICBkaXYuc3R5bGUucG9pbnRlckV2ZW50cyA9IHN0eWxlLnBvaW50ZXJFdmVudHM7XG4gICAgICAgIGxldCByZXMgPSBlbGVtZW50LmFwcGVuZENoaWxkKGRpdik7XG4gICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuaHRtbExheWVycy5wdXNoKGRpdik7XG4gICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMucmVzaXplKCk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHN0YXRpYyByZW1vdmVIdG1sTGF5ZXIoaWQ6IHN0cmluZykge1xuICAgICAgICBsZXQgZGl2ID0gQ2FudmFzTWFuYWdlclN0YXRpYy5odG1sTGF5ZXJzLmZpbmQoKGxheWVyKSA9PiBsYXllci5pZCA9PT0gaWQpO1xuICAgICAgICBpZiAoZGl2KSB7XG4gICAgICAgICAgICBkaXYucmVtb3ZlKCk7XG4gICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLmh0bWxMYXllcnMgPSBDYW52YXNNYW5hZ2VyU3RhdGljLmh0bWxMYXllcnMuZmlsdGVyKChsYXllcikgPT4gbGF5ZXIuaWQgIT09IGlkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZ2V0SHRtbExheWVyKGlkOiBzdHJpbmcpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBDYW52YXNNYW5hZ2VyU3RhdGljLmh0bWxMYXllcnMuZmluZCgobGF5ZXIpID0+IGxheWVyLmlkID09PSBpZCk7XG4gICAgfVxuXG4gICAgLyogUmVzaXplIE1ldG9kcyAqL1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHNjcmVlbiBpcyByZXNpemVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGFzeW5jIHJlc2l6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2FudmFzV2lkdGggPSBDYW52YXNNYW5hZ2VyU3RhdGljLmNhbnZhc1dpZHRoO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSBDYW52YXNNYW5hZ2VyU3RhdGljLmNhbnZhc0hlaWdodDtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IENhbnZhc01hbmFnZXJTdGF0aWMuYXBwLnJlc2l6ZVRvO1xuICAgICAgICBsZXQgc3R5bGUgPSBDYW52YXNNYW5hZ2VyU3RhdGljLmFwcC5jYW52YXMuc3R5bGU7XG4gICAgICAgIGlmICghKGNvbnRhaW5lciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgY29udGFpbmVyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGxldCBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgY29udGFpbmVySGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIC8vIElmIHRoZSBjb250YWluZXIgaXMgdGhlIGRvY3VtZW50IGJvZHkgb3IgdGhlIGRvY3VtZW50RWxlbWVudCxcbiAgICAgICAgLy8gdXNlIHRoZSB2aWV3cG9ydCBzaXplIChkb2N1bWVudEVsZW1lbnQgb3Igd2luZG93KSBiZWNhdXNlXG4gICAgICAgIC8vIGJvZHkuY2xpZW50SGVpZ2h0IGNhbiBiZSBhZmZlY3RlZCBieSBDU1MvY29udGVudCBhbmQgbm90XG4gICAgICAgIC8vIHJlZmxlY3QgdGhlIHZpc2libGUgdmlld3BvcnQgaGVpZ2h0LlxuICAgICAgICBpZiAoY29udGFpbmVyID09PSBkb2N1bWVudC5ib2R5IHx8IGNvbnRhaW5lciA9PT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb250YWluZXJXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoID0gcmVjdC53aWR0aCB8fCBjb250YWluZXIuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSByZWN0LmhlaWdodCB8fCBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oY29udGFpbmVyV2lkdGggLyBjYW52YXNXaWR0aCwgY29udGFpbmVySGVpZ2h0IC8gY2FudmFzSGVpZ2h0KTtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSBNYXRoLmZsb29yKHNjYWxlICogY2FudmFzV2lkdGgpO1xuICAgICAgICBjb25zdCBzY3JlZW5IZWlnaHQgPSBNYXRoLmZsb29yKHNjYWxlICogY2FudmFzSGVpZ2h0KTtcbiAgICAgICAgc3R5bGUud2lkdGggPSBgJHtzY3JlZW5XaWR0aH1weGA7XG4gICAgICAgIHN0eWxlLmhlaWdodCA9IGAke3NjcmVlbkhlaWdodH1weGA7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxNYXJnaW4gPSAoY29udGFpbmVyV2lkdGggLSBzY3JlZW5XaWR0aCkgLyAyO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbE1hcmdpbiA9IChjb250YWluZXJIZWlnaHQgLSBzY3JlZW5IZWlnaHQpIC8gMjtcbiAgICAgICAgKHN0eWxlIGFzIGFueSkubWFyZ2luTGVmdCA9IGAke2hvcml6b250YWxNYXJnaW59cHhgO1xuICAgICAgICAoc3R5bGUgYXMgYW55KS5tYXJnaW5SaWdodCA9IGAke2hvcml6b250YWxNYXJnaW59cHhgO1xuICAgICAgICAoc3R5bGUgYXMgYW55KS5tYXJnaW5Ub3AgPSBgJHt2ZXJ0aWNhbE1hcmdpbn1weGA7XG4gICAgICAgIChzdHlsZSBhcyBhbnkpLm1hcmdpbkJvdHRvbSA9IGAke3ZlcnRpY2FsTWFyZ2lufXB4YDtcblxuICAgICAgICBjb25zdCBwcm9taXNlcyA9IENhbnZhc01hbmFnZXJTdGF0aWMuaHRtbExheWVycy5tYXAoKGxheWVyKSA9PiB7XG4gICAgICAgICAgICBsYXllci5zdHlsZS53aWR0aCA9IGAke3NjcmVlbldpZHRofXB4YDtcbiAgICAgICAgICAgIGxheWVyLnN0eWxlLmhlaWdodCA9IGAke3NjcmVlbkhlaWdodH1weGA7XG4gICAgICAgICAgICBsYXllci5zdHlsZS5tYXJnaW5MZWZ0ID0gYCR7aG9yaXpvbnRhbE1hcmdpbn1weGA7XG4gICAgICAgICAgICBsYXllci5zdHlsZS5tYXJnaW5SaWdodCA9IGAke2hvcml6b250YWxNYXJnaW59cHhgO1xuICAgICAgICAgICAgbGF5ZXIuc3R5bGUubWFyZ2luVG9wID0gYCR7dmVydGljYWxNYXJnaW59cHhgO1xuICAgICAgICAgICAgbGF5ZXIuc3R5bGUubWFyZ2luQm90dG9tID0gYCR7dmVydGljYWxNYXJnaW59cHhgO1xuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH1cblxuICAgIC8qIEVkaXQgQ2FudmFzIEVsZW1lbnRzIE1ldGhvZHMgKi9cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIGNhbnZhcywgaXMgZGV0ZXJtaW5lZCBieSB0aGUgekluZGV4LlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXQgY2hpbGRyZW5BbGlhc2VzT3JkZXIoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5nYW1lTGF5ZXIuY2hpbGRyZW5cbiAgICAgICAgICAgIC5maWx0ZXIoKGNoaWxkKSA9PiBjaGlsZC5sYWJlbClcbiAgICAgICAgICAgIC5zb3J0KFxuICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLmdhbWVMYXllci5nZXRDaGlsZEluZGV4KGEpIC0gQ2FudmFzTWFuYWdlclN0YXRpYy5nYW1lTGF5ZXIuZ2V0Q2hpbGRJbmRleChiKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0ubGFiZWwpO1xuICAgIH1cblxuICAgIC8qKiBFZGl0IFRpY2tlcnMgTWV0aG9kcyAqL1xuXG4gICAgc3RhdGljIGdldCBjdXJyZW50VGlja2Vyc1dpdGhvdXRDcmVhdGVkQnlTdGVwcygpOiB7XG4gICAgICAgIFtrOiBzdHJpbmddOiBUaWNrZXJIaXN0b3J5PGFueT47XG4gICAgfSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChbXywgaW5mb10pID0+ICFpbmZvLmNyZWF0ZWRCeVRpY2tldFN0ZXBzKVxuICAgICAgICAgICAgICAgIC5tYXAoKFtpZCwgaW5mb10pID0+IFtcbiAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpbmZvLnRpY2tlci5hbGlhcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IGluZm8udGlja2VyLmFyZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNFbGVtZW50QWxpYXNlczogaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogaW5mby50aWNrZXIucHJpb3JpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogaW5mby50aWNrZXIuZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXVzZWQ6IGluZm8udGlja2VyLnBhdXNlZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgKTtcbiAgICB9XG4gICAgc3RhdGljIF9jdXJyZW50VGlja2VyczogeyBbaWQ6IHN0cmluZ106IFRpY2tlckluZm88YW55PiB9ID0ge307XG4gICAgc3RhdGljIF9jdXJyZW50VGlja2Vyc1NlcXVlbmNlOiB7IFthbGlhczogc3RyaW5nXTogeyBbdGlja2VySWQ6IHN0cmluZ106IFRpY2tlcnNTZXF1ZW5jZSB9IH0gPSB7fTtcbiAgICBzdGF0aWMgX2N1cnJlbnRUaWNrZXJzVGltZW91dHM6IHsgW3RpbWVvdXQ6IHN0cmluZ106IFRpY2tlclRpbWVvdXRIaXN0b3J5IH0gPSB7fTtcbiAgICBzdGF0aWMgX3RpY2tlcnNUb0NvbXBsZXRlT25TdGVwRW5kOiB7XG4gICAgICAgIHRpa2Vyc0lkczogeyBpZDogc3RyaW5nIH1bXTtcbiAgICAgICAgc3RlcEFsaWFzOiB7IGlkOiBzdHJpbmc7IGFsaWFzOiBzdHJpbmcgfVtdO1xuICAgIH0gPSB7IHRpa2Vyc0lkczogW10sIHN0ZXBBbGlhczogW10gfTtcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHN0YXRpYyBfdGlja2Vyc09uUGF1c2U6IHsgW2FsaWFzT3JJZDogc3RyaW5nXTogUGF1c2VUaWNrZXJUeXBlIH0gPSB7fTtcbiAgICBzdGF0aWMgZ2VuZXJhdGVUaWNrZXJJZCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gc2hhMShKU09OLnN0cmluZ2lmeShhcmdzKSkudG9TdHJpbmcoKSArIFwiX1wiICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGl4aUVycm9yKFwibm90X2pzb25fc2VyaWFsaXphYmxlXCIsIGBFcnJvciB0byBnZW5lcmF0ZSB0aWNrZXIgaWQ6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgYWRkVGlja2VyVGltZW91dEluZm8oXG4gICAgICAgIGFsaWFzZXM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgICAgICB0aWNrZXI6IHN0cmluZyxcbiAgICAgICAgdGltZW91dDogc3RyaW5nLFxuICAgICAgICBjYW5CZURlbGV0ZWRCZWZvcmVFbmQ6IGJvb2xlYW4sXG4gICAgKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYWxpYXNlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgYWxpYXNlcyA9IFthbGlhc2VzXTtcbiAgICAgICAgfVxuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1RpbWVvdXRzW3RpbWVvdXRdID0ge1xuICAgICAgICAgICAgYWxpYXNlczogYWxpYXNlcyxcbiAgICAgICAgICAgIHRpY2tlcjogdGlja2VyLFxuICAgICAgICAgICAgY2FuQmVEZWxldGVkQmVmb3JlRW5kOiBjYW5CZURlbGV0ZWRCZWZvcmVFbmQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXRpYyByZW1vdmVUaWNrZXJUaW1lb3V0SW5mbyh0aW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IHN0cmluZykge1xuICAgICAgICBpZiAodHlwZW9mIHRpbWVvdXQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRpbWVvdXQgPSB0aW1lb3V0LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHNbdGltZW91dF0pIHtcbiAgICAgICAgICAgIGRlbGV0ZSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1RpbWVvdXRzW3RpbWVvdXRdO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyByZW1vdmVUaWNrZXJUaW1lb3V0KHRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0IHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGltZW91dCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGltZW91dCA9IHRpbWVvdXQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBjbGVhclRpbWVvdXQoTnVtYmVyKHRpbWVvdXQpKTtcbiAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5yZW1vdmVUaWNrZXJUaW1lb3V0SW5mbyh0aW1lb3V0KTtcbiAgICB9XG4gICAgc3RhdGljIHJlbW92ZVRpY2tlclRpbWVvdXRzQnlBbGlhcyhhbGlhczogc3RyaW5nLCBjaGVja0NhbkJlRGVsZXRlZEJlZm9yZUVuZDogYm9vbGVhbikge1xuICAgICAgICAvLyB0b2RvXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHMpLmZvckVhY2goKFt0aW1lb3V0LCB0aWNrZXJUaW1lb3V0XSkgPT4ge1xuICAgICAgICAgICAgbGV0IGFsaWFzZXNXaXRob3V0QWxpYXNUb1JlbW92ZSA9IHRpY2tlclRpbWVvdXQuYWxpYXNlcy5maWx0ZXIoKHQpID0+IHQgIT09IGFsaWFzKTtcbiAgICAgICAgICAgIGlmIChhbGlhc2VzV2l0aG91dEFsaWFzVG9SZW1vdmUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNhbkJlRGVsZXRlZEJlZm9yZUVuZCA9IHRpY2tlclRpbWVvdXQuY2FuQmVEZWxldGVkQmVmb3JlRW5kO1xuICAgICAgICAgICAgICAgIGlmICghY2hlY2tDYW5CZURlbGV0ZWRCZWZvcmVFbmQgfHwgY2FuQmVEZWxldGVkQmVmb3JlRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMucmVtb3ZlVGlja2VyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHNbdGltZW91dF0uYWxpYXNlcyA9IGFsaWFzZXNXaXRob3V0QWxpYXNUb1JlbW92ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiZXhwb3J0IGNvbnN0IGRlYm91bmNlID0gPEYgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IHZvaWQ+KGZuOiBGLCB3YWl0ID0gMTAwKSA9PiB7XG4gICAgbGV0IHQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gICAgcmV0dXJuICguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KSA9PiB7XG4gICAgICAgIGlmICh0KSBjbGVhclRpbWVvdXQodCk7XG4gICAgICAgIHQgPSBzZXRUaW1lb3V0KCgpID0+IGZuKC4uLmFyZ3MpLCB3YWl0KTtcbiAgICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRocm90dGxlKGZ1bmM6ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTx2b2lkPiwgbGltaXQ6IG51bWJlcikge1xuICAgIGxldCBsYXN0Q2FsbCA9IDA7XG4gICAgcmV0dXJuIGFzeW5jICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBpZiAobm93IC0gbGFzdENhbGwgPj0gbGltaXQpIHtcbiAgICAgICAgICAgIGxhc3RDYWxsID0gbm93O1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGZ1bmMoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgUHJvcGVydGllc0V4dGVuc2lvbiB9IGZyb20gXCJAcGl4aS9kZXZ0b29sc1wiO1xuaW1wb3J0IHsgQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvbiwgQ29udGFpbmVyIH0gZnJvbSBcIi4uXCI7XG5cbmNvbnN0IGFkZGl0aW9uYWxQb3NpdGlvbnNQcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzRXh0ZW5zaW9uID0ge1xuICAgIGV4dGVuc2lvbjoge1xuICAgICAgICB0eXBlOiBcInNjZW5lUHJvcGVydGllc1wiLFxuICAgICAgICBuYW1lOiBcImFkZGl0aW9uYWwtcG9zaXRpb25zXCIsXG4gICAgfSxcbiAgICB0ZXN0Tm9kZShjb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwieEFsaWduXCIgaW4gY29udGFpbmVyIHx8XG4gICAgICAgICAgICBcInlBbGlnblwiIGluIGNvbnRhaW5lciB8fFxuICAgICAgICAgICAgXCJwZXJjZW50YWdlWFwiIGluIGNvbnRhaW5lciB8fFxuICAgICAgICAgICAgXCJwZXJjZW50YWdlWVwiIGluIGNvbnRhaW5lciB8fFxuICAgICAgICAgICAgXCJwb3NpdGlvblR5cGVcIiBpbiBjb250YWluZXJcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIHRlc3RQcm9wKHByb3ApIHtcbiAgICAgICAgc3dpdGNoIChwcm9wKSB7XG4gICAgICAgICAgICBjYXNlIFwieEFsaWduXCI6XG4gICAgICAgICAgICBjYXNlIFwieUFsaWduXCI6XG4gICAgICAgICAgICBjYXNlIFwicGVyY2VudGFnZVhcIjpcbiAgICAgICAgICAgIGNhc2UgXCJwZXJjZW50YWdlWVwiOlxuICAgICAgICAgICAgY2FzZSBcInBvc2l0aW9uVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNldFByb3BlcnR5KGNvbnRhaW5lciwgcHJvcCwgdmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChwcm9wKSB7XG4gICAgICAgICAgICBjYXNlIFwieEFsaWduXCI6XG4gICAgICAgICAgICAgICAgaWYgKFwieEFsaWduXCIgaW4gY29udGFpbmVyKSBjb250YWluZXIueEFsaWduID0gdmFsdWUgLyAxMDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwieUFsaWduXCI6XG4gICAgICAgICAgICAgICAgaWYgKFwieUFsaWduXCIgaW4gY29udGFpbmVyKSBjb250YWluZXIueUFsaWduID0gdmFsdWUgLyAxMDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicGVyY2VudGFnZVhcIjpcbiAgICAgICAgICAgICAgICBpZiAoXCJwZXJjZW50YWdlWFwiIGluIGNvbnRhaW5lcikgY29udGFpbmVyLnBlcmNlbnRhZ2VYID0gdmFsdWUgLyAxMDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicGVyY2VudGFnZVlcIjpcbiAgICAgICAgICAgICAgICBpZiAoXCJwZXJjZW50YWdlWVwiIGluIGNvbnRhaW5lcikgY29udGFpbmVyLnBlcmNlbnRhZ2VZID0gdmFsdWUgLyAxMDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFByb3BlcnRpZXMoY29udGFpbmVyOiBDb250YWluZXIgJiBBZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbnRhaW5lci5wb3NpdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgcHJvcDogXCJwb3NpdGlvblR5cGVcIixcbiAgICAgICAgICAgICAgICBlbnRyeToge1xuICAgICAgICAgICAgICAgICAgICBzZWN0aW9uOiBcIlRyYW5zZm9ybVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiUG9zaXRpb24gVHlwZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBjb250YWluZXIueEFsaWduICogMTAwLFxuICAgICAgICAgICAgICAgIHByb3A6IFwieEFsaWduXCIsXG4gICAgICAgICAgICAgICAgZW50cnk6IHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbjogXCJUcmFuc2Zvcm1cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYW5nZVwiLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJYIEFsaWduXCIsXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IFwiMCUgaXMgbGVmdCwgMTAwJSBpcyByaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29udGFpbmVyLnlBbGlnbiAqIDEwMCxcbiAgICAgICAgICAgICAgICBwcm9wOiBcInlBbGlnblwiLFxuICAgICAgICAgICAgICAgIGVudHJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb246IFwiVHJhbnNmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmFuZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiWSBBbGlnblwiLFxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiBcIjAlIGlzIHRvcCwgMTAwJSBpcyBib3R0b21cIixcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbnRhaW5lci5wZXJjZW50YWdlWCAqIDEwMCxcbiAgICAgICAgICAgICAgICBwcm9wOiBcInBlcmNlbnRhZ2VYXCIsXG4gICAgICAgICAgICAgICAgZW50cnk6IHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbjogXCJUcmFuc2Zvcm1cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYW5nZVwiLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJYIFBlcmNlbnRhZ2UgUG9zaXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogXCIwJSBpcyBsZWZ0LCAxMDAlIGlzIHJpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogMTAwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBjb250YWluZXIucGVyY2VudGFnZVkgKiAxMDAsXG4gICAgICAgICAgICAgICAgcHJvcDogXCJwZXJjZW50YWdlWVwiLFxuICAgICAgICAgICAgICAgIGVudHJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb246IFwiVHJhbnNmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmFuZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiWSBQZXJjZW50YWdlIFBvc2l0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IFwiMCUgaXMgdG9wLCAxMDAlIGlzIGJvdHRvbVwiLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9LFxufTtcbmV4cG9ydCBkZWZhdWx0IGFkZGl0aW9uYWxQb3NpdGlvbnNQcm9wZXJ0aWVzO1xuIiwiLyoqXG4gKiBAbW9kdWxlIExSVUNhY2hlXG4gKi9cblxuLy8gbW9kdWxlLXByaXZhdGUgbmFtZXMgYW5kIHR5cGVzXG4vLyB0aGlzIHByb3ZpZGVzIHRoZSBkZWZhdWx0IFBlcmYgb2JqZWN0IHNvdXJjZS5cbi8vIGl0IGNhbiBiZSBwYXNzZWQgaW4gdmlhIGNvbmZpZ3VyYXRpb24gdG8gb3ZlcnJpZGUgaXRcbi8vIGZvciBhIHNpbmdsZSBMUlUgb2JqZWN0LlxuZXhwb3J0IHR5cGUgUGVyZiA9IHsgbm93OiAoKSA9PiBudW1iZXIgfVxuY29uc3QgZGVmYXVsdFBlcmY6IFBlcmYgPVxuICAoXG4gICAgdHlwZW9mIHBlcmZvcm1hbmNlID09PSAnb2JqZWN0JyAmJlxuICAgIHBlcmZvcm1hbmNlICYmXG4gICAgdHlwZW9mIHBlcmZvcm1hbmNlLm5vdyA9PT0gJ2Z1bmN0aW9uJ1xuICApID9cbiAgICBwZXJmb3JtYW5jZVxuICA6IERhdGVcblxuY29uc3Qgd2FybmVkID0gbmV3IFNldDxzdHJpbmc+KClcblxuLy8gZWl0aGVyIGEgZnVuY3Rpb24gb3IgYSBjbGFzc1xudHlwZSBGb3JDID0gKCguLi5hOiBhbnlbXSkgPT4gYW55KSB8IHsgbmV3ICguLi5hOiBhbnlbXSk6IGFueSB9XG5cbi8qIGM4IGlnbm9yZSBzdGFydCAqL1xuY29uc3QgUFJPQ0VTUyA9IChcbiAgdHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmICEhcHJvY2VzcyA/XG4gICAgcHJvY2Vzc1xuICA6IHt9KSBhcyB7IFtrOiBzdHJpbmddOiBhbnkgfVxuLyogYzggaWdub3JlIHN0YXJ0ICovXG5cbmNvbnN0IGVtaXRXYXJuaW5nID0gKFxuICBtc2c6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBjb2RlOiBzdHJpbmcsXG4gIGZuOiBGb3JDLFxuKSA9PiB7XG4gIHR5cGVvZiBQUk9DRVNTLmVtaXRXYXJuaW5nID09PSAnZnVuY3Rpb24nID9cbiAgICBQUk9DRVNTLmVtaXRXYXJuaW5nKG1zZywgdHlwZSwgY29kZSwgZm4pXG4gIDogY29uc29sZS5lcnJvcihgWyR7Y29kZX1dICR7dHlwZX06ICR7bXNnfWApXG59XG5cbmxldCBBQyA9IGdsb2JhbFRoaXMuQWJvcnRDb250cm9sbGVyXG5sZXQgQVMgPSBnbG9iYWxUaGlzLkFib3J0U2lnbmFsXG5cbi8qIGM4IGlnbm9yZSBzdGFydCAqL1xuaWYgKHR5cGVvZiBBQyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgLy9AdHMtaWdub3JlXG4gIEFTID0gY2xhc3MgQWJvcnRTaWduYWwge1xuICAgIG9uYWJvcnQ/OiAoLi4uYTogYW55W10pID0+IGFueVxuICAgIF9vbmFib3J0OiAoKC4uLmE6IGFueVtdKSA9PiBhbnkpW10gPSBbXVxuICAgIHJlYXNvbj86IGFueVxuICAgIGFib3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZVxuICAgIGFkZEV2ZW50TGlzdGVuZXIoXzogc3RyaW5nLCBmbjogKC4uLmE6IGFueVtdKSA9PiBhbnkpIHtcbiAgICAgIHRoaXMuX29uYWJvcnQucHVzaChmbilcbiAgICB9XG4gIH1cbiAgLy9AdHMtaWdub3JlXG4gIEFDID0gY2xhc3MgQWJvcnRDb250cm9sbGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHdhcm5BQ1BvbHlmaWxsKClcbiAgICB9XG4gICAgc2lnbmFsID0gbmV3IEFTKClcbiAgICBhYm9ydChyZWFzb246IGFueSkge1xuICAgICAgaWYgKHRoaXMuc2lnbmFsLmFib3J0ZWQpIHJldHVyblxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICB0aGlzLnNpZ25hbC5yZWFzb24gPSByZWFzb25cbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdGhpcy5zaWduYWwuYWJvcnRlZCA9IHRydWVcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgZm9yIChjb25zdCBmbiBvZiB0aGlzLnNpZ25hbC5fb25hYm9ydCkge1xuICAgICAgICBmbihyZWFzb24pXG4gICAgICB9XG4gICAgICB0aGlzLnNpZ25hbC5vbmFib3J0Py4ocmVhc29uKVxuICAgIH1cbiAgfVxuICBsZXQgcHJpbnRBQ1BvbHlmaWxsV2FybmluZyA9XG4gICAgUFJPQ0VTUy5lbnY/LkxSVV9DQUNIRV9JR05PUkVfQUNfV0FSTklORyAhPT0gJzEnXG4gIGNvbnN0IHdhcm5BQ1BvbHlmaWxsID0gKCkgPT4ge1xuICAgIGlmICghcHJpbnRBQ1BvbHlmaWxsV2FybmluZykgcmV0dXJuXG4gICAgcHJpbnRBQ1BvbHlmaWxsV2FybmluZyA9IGZhbHNlXG4gICAgZW1pdFdhcm5pbmcoXG4gICAgICAnQWJvcnRDb250cm9sbGVyIGlzIG5vdCBkZWZpbmVkLiBJZiB1c2luZyBscnUtY2FjaGUgaW4gJyArXG4gICAgICAgICdub2RlIDE0LCBsb2FkIGFuIEFib3J0Q29udHJvbGxlciBwb2x5ZmlsbCBmcm9tIHRoZSAnICtcbiAgICAgICAgJ2Bub2RlLWFib3J0LWNvbnRyb2xsZXJgIHBhY2thZ2UuIEEgbWluaW1hbCBwb2x5ZmlsbCBpcyAnICtcbiAgICAgICAgJ3Byb3ZpZGVkIGZvciB1c2UgYnkgTFJVQ2FjaGUuZmV0Y2goKSwgYnV0IGl0IHNob3VsZCBub3QgYmUgJyArXG4gICAgICAgICdyZWxpZWQgdXBvbiBpbiBvdGhlciBjb250ZXh0cyAoZWcsIHBhc3NpbmcgaXQgdG8gb3RoZXIgQVBJcyB0aGF0ICcgK1xuICAgICAgICAndXNlIEFib3J0Q29udHJvbGxlci9BYm9ydFNpZ25hbCBtaWdodCBoYXZlIHVuZGVzaXJhYmxlIGVmZmVjdHMpLiAnICtcbiAgICAgICAgJ1lvdSBtYXkgZGlzYWJsZSB0aGlzIHdpdGggTFJVX0NBQ0hFX0lHTk9SRV9BQ19XQVJOSU5HPTEgaW4gdGhlIGVudi4nLFxuICAgICAgJ05PX0FCT1JUX0NPTlRST0xMRVInLFxuICAgICAgJ0VOT1RTVVAnLFxuICAgICAgd2FybkFDUG9seWZpbGwsXG4gICAgKVxuICB9XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG5jb25zdCBzaG91bGRXYXJuID0gKGNvZGU6IHN0cmluZykgPT4gIXdhcm5lZC5oYXMoY29kZSlcblxuY29uc3QgVFlQRSA9IFN5bWJvbCgndHlwZScpXG5leHBvcnQgdHlwZSBQb3NJbnQgPSBudW1iZXIgJiB7IFtUWVBFXTogJ1Bvc2l0aXZlIEludGVnZXInIH1cbmV4cG9ydCB0eXBlIEluZGV4ID0gbnVtYmVyICYgeyBbVFlQRV06ICdMUlVDYWNoZSBJbmRleCcgfVxuXG5jb25zdCBpc1Bvc0ludCA9IChuOiBhbnkpOiBuIGlzIFBvc0ludCA9PlxuICBuICYmIG4gPT09IE1hdGguZmxvb3IobikgJiYgbiA+IDAgJiYgaXNGaW5pdGUobilcblxuZXhwb3J0IHR5cGUgVWludEFycmF5ID0gVWludDhBcnJheSB8IFVpbnQxNkFycmF5IHwgVWludDMyQXJyYXlcbmV4cG9ydCB0eXBlIE51bWJlckFycmF5ID0gVWludEFycmF5IHwgbnVtYmVyW11cblxuLyogYzggaWdub3JlIHN0YXJ0ICovXG4vLyBUaGlzIGlzIGEgbGl0dGxlIGJpdCByaWRpY3Vsb3VzLCB0YmguXG4vLyBUaGUgbWF4aW11bSBhcnJheSBsZW5ndGggaXMgMl4zMi0xIG9yIHRoZXJlYWJvdXRzIG9uIG1vc3QgSlMgaW1wbHMuXG4vLyBBbmQgd2VsbCBiZWZvcmUgdGhhdCBwb2ludCwgeW91J3JlIGNhY2hpbmcgdGhlIGVudGlyZSB3b3JsZCwgSSBtZWFuLFxuLy8gdGhhdCdzIH4zMkdCIG9mIGp1c3QgaW50ZWdlcnMgZm9yIHRoZSBuZXh0L3ByZXYgbGlua3MsIHBsdXMgd2hhdGV2ZXJcbi8vIGVsc2UgdG8gaG9sZCB0aGF0IG1hbnkga2V5cyBhbmQgdmFsdWVzLiAgSnVzdCBmaWxsaW5nIHRoZSBtZW1vcnkgd2l0aFxuLy8gemVyb2VzIGF0IGluaXQgdGltZSBpcyBicnV0YWwgd2hlbiB5b3UgZ2V0IHRoYXQgYmlnLlxuLy8gQnV0IHdoeSBub3QgYmUgY29tcGxldGU/XG4vLyBNYXliZSBpbiB0aGUgZnV0dXJlLCB0aGVzZSBsaW1pdHMgd2lsbCBoYXZlIGV4cGFuZGVkLlxuY29uc3QgZ2V0VWludEFycmF5ID0gKG1heDogbnVtYmVyKSA9PlxuICAhaXNQb3NJbnQobWF4KSA/IG51bGxcbiAgOiBtYXggPD0gTWF0aC5wb3coMiwgOCkgPyBVaW50OEFycmF5XG4gIDogbWF4IDw9IE1hdGgucG93KDIsIDE2KSA/IFVpbnQxNkFycmF5XG4gIDogbWF4IDw9IE1hdGgucG93KDIsIDMyKSA/IFVpbnQzMkFycmF5XG4gIDogbWF4IDw9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSID8gWmVyb0FycmF5XG4gIDogbnVsbFxuLyogYzggaWdub3JlIHN0b3AgKi9cblxuY2xhc3MgWmVyb0FycmF5IGV4dGVuZHMgQXJyYXk8bnVtYmVyPiB7XG4gIGNvbnN0cnVjdG9yKHNpemU6IG51bWJlcikge1xuICAgIHN1cGVyKHNpemUpXG4gICAgdGhpcy5maWxsKDApXG4gIH1cbn1cbmV4cG9ydCB0eXBlIHsgWmVyb0FycmF5IH1cbmV4cG9ydCB0eXBlIHsgU3RhY2sgfVxuXG5leHBvcnQgdHlwZSBTdGFja0xpa2UgPSBTdGFjayB8IEluZGV4W11cbmNsYXNzIFN0YWNrIHtcbiAgaGVhcDogTnVtYmVyQXJyYXlcbiAgbGVuZ3RoOiBudW1iZXJcbiAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvclxuICBzdGF0aWMgI2NvbnN0cnVjdGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIHN0YXRpYyBjcmVhdGUobWF4OiBudW1iZXIpOiBTdGFja0xpa2Uge1xuICAgIGNvbnN0IEhlYXBDbHMgPSBnZXRVaW50QXJyYXkobWF4KVxuICAgIGlmICghSGVhcENscykgcmV0dXJuIFtdXG4gICAgU3RhY2suI2NvbnN0cnVjdGluZyA9IHRydWVcbiAgICBjb25zdCBzID0gbmV3IFN0YWNrKG1heCwgSGVhcENscylcbiAgICBTdGFjay4jY29uc3RydWN0aW5nID0gZmFsc2VcbiAgICByZXR1cm4gc1xuICB9XG4gIGNvbnN0cnVjdG9yKG1heDogbnVtYmVyLCBIZWFwQ2xzOiB7IG5ldyAobjogbnVtYmVyKTogTnVtYmVyQXJyYXkgfSkge1xuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgIGlmICghU3RhY2suI2NvbnN0cnVjdGluZykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW5zdGFudGlhdGUgU3RhY2sgdXNpbmcgU3RhY2suY3JlYXRlKG4pJylcbiAgICB9XG4gICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICB0aGlzLmhlYXAgPSBuZXcgSGVhcENscyhtYXgpXG4gICAgdGhpcy5sZW5ndGggPSAwXG4gIH1cbiAgcHVzaChuOiBJbmRleCkge1xuICAgIHRoaXMuaGVhcFt0aGlzLmxlbmd0aCsrXSA9IG5cbiAgfVxuICBwb3AoKTogSW5kZXgge1xuICAgIHJldHVybiB0aGlzLmhlYXBbLS10aGlzLmxlbmd0aF0gYXMgSW5kZXhcbiAgfVxufVxuXG4vKipcbiAqIFByb21pc2UgcmVwcmVzZW50aW5nIGFuIGluLXByb2dyZXNzIHtAbGluayBMUlVDYWNoZSNmZXRjaH0gY2FsbFxuICovXG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kRmV0Y2g8Vj4gPSBQcm9taXNlPFYgfCB1bmRlZmluZWQ+ICYge1xuICBfX3JldHVybmVkOiBCYWNrZ3JvdW5kRmV0Y2g8Vj4gfCB1bmRlZmluZWRcbiAgX19hYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlclxuICBfX3N0YWxlV2hpbGVGZXRjaGluZzogViB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBEaXNwb3NlVGFzazxLLCBWPiA9IFtcbiAgdmFsdWU6IFYsXG4gIGtleTogSyxcbiAgcmVhc29uOiBMUlVDYWNoZS5EaXNwb3NlUmVhc29uLFxuXVxuXG5leHBvcnQgbmFtZXNwYWNlIExSVUNhY2hlIHtcbiAgLyoqXG4gICAqIEFuIGludGVnZXIgZ3JlYXRlciB0aGFuIDAsIHJlZmxlY3RpbmcgdGhlIGNhbGN1bGF0ZWQgc2l6ZSBvZiBpdGVtc1xuICAgKi9cbiAgZXhwb3J0IHR5cGUgU2l6ZSA9IG51bWJlclxuXG4gIC8qKlxuICAgKiBJbnRlZ2VyIGdyZWF0ZXIgdGhhbiAwLCByZXByZXNlbnRpbmcgc29tZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCBvciB0aGVcbiAgICogdGltZSBhdCB3aGljaCBhIFRUTCBzdGFydGVkIGNvdW50aW5nIGZyb20uXG4gICAqL1xuICBleHBvcnQgdHlwZSBNaWxsaXNlY29uZHMgPSBudW1iZXJcblxuICAvKipcbiAgICogQW4gaW50ZWdlciBncmVhdGVyIHRoYW4gMCwgcmVmbGVjdGluZyBhIG51bWJlciBvZiBpdGVtc1xuICAgKi9cbiAgZXhwb3J0IHR5cGUgQ291bnQgPSBudW1iZXJcblxuICAvKipcbiAgICogVGhlIHJlYXNvbiB3aHkgYW4gaXRlbSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZSwgcGFzc2VkXG4gICAqIHRvIHRoZSB7QGxpbmsgRGlzcG9zZXJ9IG1ldGhvZHMuXG4gICAqXG4gICAqIC0gYGV2aWN0YDogVGhlIGl0ZW0gd2FzIGV2aWN0ZWQgYmVjYXVzZSBpdCBpcyB0aGUgbGVhc3QgcmVjZW50bHkgdXNlZCxcbiAgICogICBhbmQgdGhlIGNhY2hlIGlzIGZ1bGwuXG4gICAqIC0gYHNldGA6IEEgbmV3IHZhbHVlIHdhcyBzZXQsIG92ZXJ3cml0aW5nIHRoZSBvbGQgdmFsdWUgYmVpbmcgZGlzcG9zZWQuXG4gICAqIC0gYGRlbGV0ZWA6IFRoZSBpdGVtIHdhcyBleHBsaWNpdGx5IGRlbGV0ZWQsIGVpdGhlciBieSBjYWxsaW5nXG4gICAqICAge0BsaW5rIExSVUNhY2hlI2RlbGV0ZX0sIHtAbGluayBMUlVDYWNoZSNjbGVhcn0sIG9yXG4gICAqICAge0BsaW5rIExSVUNhY2hlI3NldH0gd2l0aCBhbiB1bmRlZmluZWQgdmFsdWUuXG4gICAqIC0gYGV4cGlyZWA6IFRoZSBpdGVtIHdhcyByZW1vdmVkIGR1ZSB0byBleGNlZWRpbmcgaXRzIFRUTC5cbiAgICogLSBgZmV0Y2hgOiBBIHtAbGluayBPcHRpb25zQmFzZSNmZXRjaE1ldGhvZH0gb3BlcmF0aW9uIHJldHVybmVkXG4gICAqICAgYHVuZGVmaW5lZGAgb3Igd2FzIGFib3J0ZWQsIGNhdXNpbmcgdGhlIGl0ZW0gdG8gYmUgZGVsZXRlZC5cbiAgICovXG4gIGV4cG9ydCB0eXBlIERpc3Bvc2VSZWFzb24gPVxuICAgIHwgJ2V2aWN0J1xuICAgIHwgJ3NldCdcbiAgICB8ICdkZWxldGUnXG4gICAgfCAnZXhwaXJlJ1xuICAgIHwgJ2ZldGNoJ1xuICAvKipcbiAgICogQSBtZXRob2QgY2FsbGVkIHVwb24gaXRlbSByZW1vdmFsLCBwYXNzZWQgYXMgdGhlXG4gICAqIHtAbGluayBPcHRpb25zQmFzZS5kaXNwb3NlfSBhbmQvb3JcbiAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmRpc3Bvc2VBZnRlcn0gb3B0aW9ucy5cbiAgICovXG4gIGV4cG9ydCB0eXBlIERpc3Bvc2VyPEssIFY+ID0gKFxuICAgIHZhbHVlOiBWLFxuICAgIGtleTogSyxcbiAgICByZWFzb246IERpc3Bvc2VSZWFzb24sXG4gICkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBUaGUgcmVhc29uIHdoeSBhbiBpdGVtIHdhcyBhZGRlZCB0byB0aGUgY2FjaGUsIHBhc3NlZFxuICAgKiB0byB0aGUge0BsaW5rIEluc2VydGVyfSBtZXRob2RzLlxuICAgKlxuICAgKiAtIGBhZGRgOiB0aGUgaXRlbSB3YXMgbm90IGZvdW5kIGluIHRoZSBjYWNoZSwgYW5kIHdhcyBhZGRlZFxuICAgKiAtIGB1cGRhdGVgOiB0aGUgaXRlbSB3YXMgaW4gdGhlIGNhY2hlLCB3aXRoIHRoZSBzYW1lIHZhbHVlIHByb3ZpZGVkXG4gICAqIC0gYHJlcGxhY2VgOiB0aGUgaXRlbSB3YXMgaW4gdGhlIGNhY2hlLCBhbmQgcmVwbGFjZWRcbiAgICovXG4gIGV4cG9ydCB0eXBlIEluc2VydFJlYXNvbiA9ICdhZGQnIHwgJ3VwZGF0ZScgfCAncmVwbGFjZSdcblxuICAvKipcbiAgICogQSBtZXRob2QgY2FsbGVkIHVwb24gaXRlbSBpbnNlcnRpb24sIHBhc3NlZCBhcyB0aGVcbiAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmluc2VydH1cbiAgICovXG4gIGV4cG9ydCB0eXBlIEluc2VydGVyPEssIFY+ID0gKFxuICAgIHZhbHVlOiBWLFxuICAgIGtleTogSyxcbiAgICByZWFzb246IEluc2VydFJlYXNvbixcbiAgKSA9PiB2b2lkXG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBlZmZlY3RpdmUgY2FsY3VsYXRlZCBzaXplXG4gICAqIG9mIGFuIGVudHJ5IGluIHRoZSBjYWNoZS5cbiAgICovXG4gIGV4cG9ydCB0eXBlIFNpemVDYWxjdWxhdG9yPEssIFY+ID0gKHZhbHVlOiBWLCBrZXk6IEspID0+IFNpemVcblxuICAvKipcbiAgICogT3B0aW9ucyBwcm92aWRlZCB0byB0aGVcbiAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSBmdW5jdGlvbi5cbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hlck9wdGlvbnM8SywgViwgRkMgPSB1bmtub3duPiB7XG4gICAgc2lnbmFsOiBBYm9ydFNpZ25hbFxuICAgIG9wdGlvbnM6IEZldGNoZXJGZXRjaE9wdGlvbnM8SywgViwgRkM+XG4gICAgLyoqXG4gICAgICogT2JqZWN0IHByb3ZpZGVkIGluIHRoZSB7QGxpbmsgRmV0Y2hPcHRpb25zLmNvbnRleHR9IG9wdGlvbiB0b1xuICAgICAqIHtAbGluayBMUlVDYWNoZSNmZXRjaH1cbiAgICAgKi9cbiAgICBjb250ZXh0OiBGQ1xuICB9XG5cbiAgLyoqXG4gICAqIE9jY2FzaW9uYWxseSwgaXQgbWF5IGJlIHVzZWZ1bCB0byB0cmFjayB0aGUgaW50ZXJuYWwgYmVoYXZpb3Igb2YgdGhlXG4gICAqIGNhY2hlLCBwYXJ0aWN1bGFybHkgZm9yIGxvZ2dpbmcsIGRlYnVnZ2luZywgb3IgZm9yIGJlaGF2aW9yIHdpdGhpbiB0aGVcbiAgICogYGZldGNoTWV0aG9kYC4gVG8gZG8gdGhpcywgeW91IGNhbiBwYXNzIGEgYHN0YXR1c2Agb2JqZWN0IHRvIHRoZVxuICAgKiB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9LCB7QGxpbmsgTFJVQ2FjaGUjZ2V0fSwge0BsaW5rIExSVUNhY2hlI3NldH0sXG4gICAqIHtAbGluayBMUlVDYWNoZSNtZW1vfSwgYW5kIHtAbGluayBMUlVDYWNoZSNoYXN9IG1ldGhvZHMuXG4gICAqXG4gICAqIFRoZSBgc3RhdHVzYCBvcHRpb24gc2hvdWxkIGJlIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QuIFRoZSBmb2xsb3dpbmdcbiAgICogZmllbGRzIHdpbGwgYmUgc2V0IG9uIGl0IGFwcHJvcHJpYXRlbHksIGRlcGVuZGluZyBvbiB0aGUgc2l0dWF0aW9uLlxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0dXM8Vj4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgb2YgYSBzZXQoKSBvcGVyYXRpb24uXG4gICAgICpcbiAgICAgKiAtIGFkZDogdGhlIGl0ZW0gd2FzIG5vdCBmb3VuZCBpbiB0aGUgY2FjaGUsIGFuZCB3YXMgYWRkZWRcbiAgICAgKiAtIHVwZGF0ZTogdGhlIGl0ZW0gd2FzIGluIHRoZSBjYWNoZSwgd2l0aCB0aGUgc2FtZSB2YWx1ZSBwcm92aWRlZFxuICAgICAqIC0gcmVwbGFjZTogdGhlIGl0ZW0gd2FzIGluIHRoZSBjYWNoZSwgYW5kIHJlcGxhY2VkXG4gICAgICogLSBtaXNzOiB0aGUgaXRlbSB3YXMgbm90IGFkZGVkIHRvIHRoZSBjYWNoZSBmb3Igc29tZSByZWFzb25cbiAgICAgKi9cbiAgICBzZXQ/OiAnYWRkJyB8ICd1cGRhdGUnIHwgJ3JlcGxhY2UnIHwgJ21pc3MnXG5cbiAgICAvKipcbiAgICAgKiB0aGUgdHRsIHN0b3JlZCBmb3IgdGhlIGl0ZW0sIG9yIHVuZGVmaW5lZCBpZiB0dGxzIGFyZSBub3QgdXNlZC5cbiAgICAgKi9cbiAgICB0dGw/OiBNaWxsaXNlY29uZHNcblxuICAgIC8qKlxuICAgICAqIHRoZSBzdGFydCB0aW1lIGZvciB0aGUgaXRlbSwgb3IgdW5kZWZpbmVkIGlmIHR0bHMgYXJlIG5vdCB1c2VkLlxuICAgICAqL1xuICAgIHN0YXJ0PzogTWlsbGlzZWNvbmRzXG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGltZXN0YW1wIHVzZWQgZm9yIFRUTCBjYWxjdWxhdGlvblxuICAgICAqL1xuICAgIG5vdz86IE1pbGxpc2Vjb25kc1xuXG4gICAgLyoqXG4gICAgICogdGhlIHJlbWFpbmluZyB0dGwgZm9yIHRoZSBpdGVtLCBvciB1bmRlZmluZWQgaWYgdHRscyBhcmUgbm90IHVzZWQuXG4gICAgICovXG4gICAgcmVtYWluaW5nVFRMPzogTWlsbGlzZWNvbmRzXG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2FsY3VsYXRlZCBzaXplIGZvciB0aGUgaXRlbSwgaWYgc2l6ZXMgYXJlIHVzZWQuXG4gICAgICovXG4gICAgZW50cnlTaXplPzogU2l6ZVxuXG4gICAgLyoqXG4gICAgICogVGhlIHRvdGFsIGNhbGN1bGF0ZWQgc2l6ZSBvZiB0aGUgY2FjaGUsIGlmIHNpemVzIGFyZSB1c2VkLlxuICAgICAqL1xuICAgIHRvdGFsQ2FsY3VsYXRlZFNpemU/OiBTaXplXG5cbiAgICAvKipcbiAgICAgKiBBIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBpdGVtIHdhcyBub3Qgc3RvcmVkLCBkdWUgdG8gZXhjZWVkaW5nIHRoZVxuICAgICAqIHtAbGluayBPcHRpb25zQmFzZS5tYXhFbnRyeVNpemV9XG4gICAgICovXG4gICAgbWF4RW50cnlTaXplRXhjZWVkZWQ/OiB0cnVlXG5cbiAgICAvKipcbiAgICAgKiBUaGUgb2xkIHZhbHVlLCBzcGVjaWZpZWQgaW4gdGhlIGNhc2Ugb2YgYHNldDondXBkYXRlJ2Agb3JcbiAgICAgKiBgc2V0OidyZXBsYWNlJ2BcbiAgICAgKi9cbiAgICBvbGRWYWx1ZT86IFZcblxuICAgIC8qKlxuICAgICAqIFRoZSByZXN1bHRzIG9mIGEge0BsaW5rIExSVUNhY2hlI2hhc30gb3BlcmF0aW9uXG4gICAgICpcbiAgICAgKiAtIGhpdDogdGhlIGl0ZW0gd2FzIGZvdW5kIGluIHRoZSBjYWNoZVxuICAgICAqIC0gc3RhbGU6IHRoZSBpdGVtIHdhcyBmb3VuZCBpbiB0aGUgY2FjaGUsIGJ1dCBpcyBzdGFsZVxuICAgICAqIC0gbWlzczogdGhlIGl0ZW0gd2FzIG5vdCBmb3VuZCBpbiB0aGUgY2FjaGVcbiAgICAgKi9cbiAgICBoYXM/OiAnaGl0JyB8ICdzdGFsZScgfCAnbWlzcydcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgb2YgYSB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9IG9wZXJhdGlvbi5cbiAgICAgKiBOb3RlIHRoYXQgdGhpcyBjYW4gY2hhbmdlIGFzIHRoZSB1bmRlcmx5aW5nIGZldGNoKCkgbW92ZXMgdGhyb3VnaFxuICAgICAqIHZhcmlvdXMgc3RhdGVzLlxuICAgICAqXG4gICAgICogLSBpbmZsaWdodDogdGhlcmUgaXMgYW5vdGhlciBmZXRjaCgpIGZvciB0aGlzIGtleSB3aGljaCBpcyBpbiBwcm9jZXNzXG4gICAgICogLSBnZXQ6IHRoZXJlIGlzIG5vIHtAbGluayBPcHRpb25zQmFzZS5mZXRjaE1ldGhvZH0sIHNvXG4gICAgICogICB7QGxpbmsgTFJVQ2FjaGUjZ2V0fSB3YXMgY2FsbGVkLlxuICAgICAqIC0gbWlzczogdGhlIGl0ZW0gaXMgbm90IGluIGNhY2hlLCBhbmQgd2lsbCBiZSBmZXRjaGVkLlxuICAgICAqIC0gaGl0OiB0aGUgaXRlbSBpcyBpbiB0aGUgY2FjaGUsIGFuZCB3YXMgcmVzb2x2ZWQgaW1tZWRpYXRlbHkuXG4gICAgICogLSBzdGFsZTogdGhlIGl0ZW0gaXMgaW4gdGhlIGNhY2hlLCBidXQgc3RhbGUuXG4gICAgICogLSByZWZyZXNoOiB0aGUgaXRlbSBpcyBpbiB0aGUgY2FjaGUsIGFuZCBub3Qgc3RhbGUsIGJ1dFxuICAgICAqICAge0BsaW5rIEZldGNoT3B0aW9ucy5mb3JjZVJlZnJlc2h9IHdhcyBzcGVjaWZpZWQuXG4gICAgICovXG4gICAgZmV0Y2g/OiAnZ2V0JyB8ICdpbmZsaWdodCcgfCAnbWlzcycgfCAnaGl0JyB8ICdzdGFsZScgfCAncmVmcmVzaCdcblxuICAgIC8qKlxuICAgICAqIFRoZSB7QGxpbmsgT3B0aW9uc0Jhc2UuZmV0Y2hNZXRob2R9IHdhcyBjYWxsZWRcbiAgICAgKi9cbiAgICBmZXRjaERpc3BhdGNoZWQ/OiB0cnVlXG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2FjaGVkIHZhbHVlIHdhcyB1cGRhdGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIHRvXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfVxuICAgICAqL1xuICAgIGZldGNoVXBkYXRlZD86IHRydWVcblxuICAgIC8qKlxuICAgICAqIFRoZSByZWFzb24gZm9yIGEgZmV0Y2goKSByZWplY3Rpb24uICBFaXRoZXIgdGhlIGVycm9yIHJhaXNlZCBieSB0aGVcbiAgICAgKiB7QGxpbmsgT3B0aW9uc0Jhc2UuZmV0Y2hNZXRob2R9LCBvciB0aGUgcmVhc29uIGZvciBhblxuICAgICAqIEFib3J0U2lnbmFsLlxuICAgICAqL1xuICAgIGZldGNoRXJyb3I/OiBFcnJvclxuXG4gICAgLyoqXG4gICAgICogVGhlIGZldGNoIHJlY2VpdmVkIGFuIGFib3J0IHNpZ25hbFxuICAgICAqL1xuICAgIGZldGNoQWJvcnRlZD86IHRydWVcblxuICAgIC8qKlxuICAgICAqIFRoZSBhYm9ydCBzaWduYWwgcmVjZWl2ZWQgd2FzIGlnbm9yZWQsIGFuZCB0aGUgZmV0Y2ggd2FzIGFsbG93ZWQgdG9cbiAgICAgKiBjb250aW51ZS5cbiAgICAgKi9cbiAgICBmZXRjaEFib3J0SWdub3JlZD86IHRydWVcblxuICAgIC8qKlxuICAgICAqIFRoZSBmZXRjaE1ldGhvZCBwcm9taXNlIHJlc29sdmVkIHN1Y2Nlc3NmdWxseVxuICAgICAqL1xuICAgIGZldGNoUmVzb2x2ZWQ/OiB0cnVlXG5cbiAgICAvKipcbiAgICAgKiBUaGUgZmV0Y2hNZXRob2QgcHJvbWlzZSB3YXMgcmVqZWN0ZWRcbiAgICAgKi9cbiAgICBmZXRjaFJlamVjdGVkPzogdHJ1ZVxuXG4gICAgLyoqXG4gICAgICogVGhlIHN0YXR1cyBvZiBhIHtAbGluayBMUlVDYWNoZSNnZXR9IG9wZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIC0gZmV0Y2hpbmc6IFRoZSBpdGVtIGlzIGN1cnJlbnRseSBiZWluZyBmZXRjaGVkLiAgSWYgYSBwcmV2aW91cyB2YWx1ZVxuICAgICAqICAgaXMgcHJlc2VudCBhbmQgYWxsb3dlZCwgdGhhdCB3aWxsIGJlIHJldHVybmVkLlxuICAgICAqIC0gc3RhbGU6IFRoZSBpdGVtIGlzIGluIHRoZSBjYWNoZSwgYW5kIGlzIHN0YWxlLlxuICAgICAqIC0gaGl0OiB0aGUgaXRlbSBpcyBpbiB0aGUgY2FjaGVcbiAgICAgKiAtIG1pc3M6IHRoZSBpdGVtIGlzIG5vdCBpbiB0aGUgY2FjaGVcbiAgICAgKi9cbiAgICBnZXQ/OiAnc3RhbGUnIHwgJ2hpdCcgfCAnbWlzcydcblxuICAgIC8qKlxuICAgICAqIEEgZmV0Y2ggb3IgZ2V0IG9wZXJhdGlvbiByZXR1cm5lZCBhIHN0YWxlIHZhbHVlLlxuICAgICAqL1xuICAgIHJldHVybmVkU3RhbGU/OiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogb3B0aW9ucyB3aGljaCBvdmVycmlkZSB0aGUgb3B0aW9ucyBzZXQgaW4gdGhlIExSVUNhY2hlIGNvbnN0cnVjdG9yXG4gICAqIHdoZW4gY2FsbGluZyB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9LlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSB1bmlvbiBvZiB7QGxpbmsgR2V0T3B0aW9uc30gYW5kIHtAbGluayBTZXRPcHRpb25zfSwgcGx1c1xuICAgKiB7QGxpbmsgT3B0aW9uc0Jhc2Uubm9EZWxldGVPbkZldGNoUmVqZWN0aW9ufSxcbiAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9ufSxcbiAgICoge0BsaW5rIEZldGNoT3B0aW9ucy5mb3JjZVJlZnJlc2h9LCBhbmRcbiAgICoge0BsaW5rIEZldGNoZXJPcHRpb25zLmNvbnRleHR9XG4gICAqXG4gICAqIEFueSBvZiB0aGVzZSBtYXkgYmUgbW9kaWZpZWQgaW4gdGhlIHtAbGluayBPcHRpb25zQmFzZS5mZXRjaE1ldGhvZH1cbiAgICogZnVuY3Rpb24sIGJ1dCB0aGUge0BsaW5rIEdldE9wdGlvbnN9IGZpZWxkcyB3aWxsIG9mIGNvdXJzZSBoYXZlIG5vXG4gICAqIGVmZmVjdCwgYXMgdGhlIHtAbGluayBMUlVDYWNoZSNnZXR9IGNhbGwgYWxyZWFkeSBoYXBwZW5lZCBieSB0aGUgdGltZVxuICAgKiB0aGUgZmV0Y2hNZXRob2QgaXMgY2FsbGVkLlxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBGZXRjaGVyRmV0Y2hPcHRpb25zPEssIFYsIEZDID0gdW5rbm93bj5cbiAgICBleHRlbmRzIFBpY2s8XG4gICAgICBPcHRpb25zQmFzZTxLLCBWLCBGQz4sXG4gICAgICB8ICdhbGxvd1N0YWxlJ1xuICAgICAgfCAndXBkYXRlQWdlT25HZXQnXG4gICAgICB8ICdub0RlbGV0ZU9uU3RhbGVHZXQnXG4gICAgICB8ICdzaXplQ2FsY3VsYXRpb24nXG4gICAgICB8ICd0dGwnXG4gICAgICB8ICdub0Rpc3Bvc2VPblNldCdcbiAgICAgIHwgJ25vVXBkYXRlVFRMJ1xuICAgICAgfCAnbm9EZWxldGVPbkZldGNoUmVqZWN0aW9uJ1xuICAgICAgfCAnYWxsb3dTdGFsZU9uRmV0Y2hSZWplY3Rpb24nXG4gICAgICB8ICdpZ25vcmVGZXRjaEFib3J0J1xuICAgICAgfCAnYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydCdcbiAgICA+IHtcbiAgICBzdGF0dXM/OiBTdGF0dXM8Vj5cbiAgICBzaXplPzogU2l6ZVxuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdGhhdCBtYXkgYmUgcGFzc2VkIHRvIHRoZSB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9IG1ldGhvZC5cbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hPcHRpb25zPEssIFYsIEZDPlxuICAgIGV4dGVuZHMgRmV0Y2hlckZldGNoT3B0aW9uczxLLCBWLCBGQz4ge1xuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIHRvIGZvcmNlIGEgcmUtbG9hZCBvZiB0aGUgZXhpc3RpbmcgZGF0YSwgZXZlbiBpZiBpdFxuICAgICAqIGlzIG5vdCB5ZXQgc3RhbGUuXG4gICAgICovXG4gICAgZm9yY2VSZWZyZXNoPzogYm9vbGVhblxuICAgIC8qKlxuICAgICAqIENvbnRleHQgcHJvdmlkZWQgdG8gdGhlIHtAbGluayBPcHRpb25zQmFzZS5mZXRjaE1ldGhvZH0gYXNcbiAgICAgKiB0aGUge0BsaW5rIEZldGNoZXJPcHRpb25zLmNvbnRleHR9IHBhcmFtLlxuICAgICAqXG4gICAgICogSWYgdGhlIEZDIHR5cGUgaXMgc3BlY2lmaWVkIGFzIHVua25vd24gKHRoZSBkZWZhdWx0KSxcbiAgICAgKiB1bmRlZmluZWQgb3Igdm9pZCwgdGhlbiB0aGlzIGlzIG9wdGlvbmFsLiAgT3RoZXJ3aXNlLCBpdCB3aWxsXG4gICAgICogYmUgcmVxdWlyZWQuXG4gICAgICovXG4gICAgY29udGV4dD86IEZDXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWxcbiAgICBzdGF0dXM/OiBTdGF0dXM8Vj5cbiAgfVxuICAvKipcbiAgICogT3B0aW9ucyBwcm92aWRlZCB0byB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9IHdoZW4gdGhlIEZDIHR5cGUgaXMgc29tZXRoaW5nXG4gICAqIG90aGVyIHRoYW4gYHVua25vd25gLCBgdW5kZWZpbmVkYCwgb3IgYHZvaWRgXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEZldGNoT3B0aW9uc1dpdGhDb250ZXh0PEssIFYsIEZDPlxuICAgIGV4dGVuZHMgRmV0Y2hPcHRpb25zPEssIFYsIEZDPiB7XG4gICAgY29udGV4dDogRkNcbiAgfVxuICAvKipcbiAgICogT3B0aW9ucyBwcm92aWRlZCB0byB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9IHdoZW4gdGhlIEZDIHR5cGUgaXNcbiAgICogYHVuZGVmaW5lZGAgb3IgYHZvaWRgXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEZldGNoT3B0aW9uc05vQ29udGV4dDxLLCBWPlxuICAgIGV4dGVuZHMgRmV0Y2hPcHRpb25zPEssIFYsIHVuZGVmaW5lZD4ge1xuICAgIGNvbnRleHQ/OiB1bmRlZmluZWRcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTWVtb09wdGlvbnM8SywgViwgRkMgPSB1bmtub3duPlxuICAgIGV4dGVuZHMgUGljazxcbiAgICAgIE9wdGlvbnNCYXNlPEssIFYsIEZDPixcbiAgICAgIHwgJ2FsbG93U3RhbGUnXG4gICAgICB8ICd1cGRhdGVBZ2VPbkdldCdcbiAgICAgIHwgJ25vRGVsZXRlT25TdGFsZUdldCdcbiAgICAgIHwgJ3NpemVDYWxjdWxhdGlvbidcbiAgICAgIHwgJ3R0bCdcbiAgICAgIHwgJ25vRGlzcG9zZU9uU2V0J1xuICAgICAgfCAnbm9VcGRhdGVUVEwnXG4gICAgICB8ICdub0RlbGV0ZU9uRmV0Y2hSZWplY3Rpb24nXG4gICAgICB8ICdhbGxvd1N0YWxlT25GZXRjaFJlamVjdGlvbidcbiAgICAgIHwgJ2lnbm9yZUZldGNoQWJvcnQnXG4gICAgICB8ICdhbGxvd1N0YWxlT25GZXRjaEFib3J0J1xuICAgID4ge1xuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIHRvIGZvcmNlIGEgcmUtbG9hZCBvZiB0aGUgZXhpc3RpbmcgZGF0YSwgZXZlbiBpZiBpdFxuICAgICAqIGlzIG5vdCB5ZXQgc3RhbGUuXG4gICAgICovXG4gICAgZm9yY2VSZWZyZXNoPzogYm9vbGVhblxuICAgIC8qKlxuICAgICAqIENvbnRleHQgcHJvdmlkZWQgdG8gdGhlIHtAbGluayBPcHRpb25zQmFzZS5tZW1vTWV0aG9kfSBhc1xuICAgICAqIHRoZSB7QGxpbmsgTWVtb2l6ZXJPcHRpb25zLmNvbnRleHR9IHBhcmFtLlxuICAgICAqXG4gICAgICogSWYgdGhlIEZDIHR5cGUgaXMgc3BlY2lmaWVkIGFzIHVua25vd24gKHRoZSBkZWZhdWx0KSxcbiAgICAgKiB1bmRlZmluZWQgb3Igdm9pZCwgdGhlbiB0aGlzIGlzIG9wdGlvbmFsLiAgT3RoZXJ3aXNlLCBpdCB3aWxsXG4gICAgICogYmUgcmVxdWlyZWQuXG4gICAgICovXG4gICAgY29udGV4dD86IEZDXG4gICAgc3RhdHVzPzogU3RhdHVzPFY+XG4gIH1cbiAgLyoqXG4gICAqIE9wdGlvbnMgcHJvdmlkZWQgdG8ge0BsaW5rIExSVUNhY2hlI21lbW99IHdoZW4gdGhlIEZDIHR5cGUgaXMgc29tZXRoaW5nXG4gICAqIG90aGVyIHRoYW4gYHVua25vd25gLCBgdW5kZWZpbmVkYCwgb3IgYHZvaWRgXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIE1lbW9PcHRpb25zV2l0aENvbnRleHQ8SywgViwgRkM+XG4gICAgZXh0ZW5kcyBNZW1vT3B0aW9uczxLLCBWLCBGQz4ge1xuICAgIGNvbnRleHQ6IEZDXG4gIH1cbiAgLyoqXG4gICAqIE9wdGlvbnMgcHJvdmlkZWQgdG8ge0BsaW5rIExSVUNhY2hlI21lbW99IHdoZW4gdGhlIEZDIHR5cGUgaXNcbiAgICogYHVuZGVmaW5lZGAgb3IgYHZvaWRgXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIE1lbW9PcHRpb25zTm9Db250ZXh0PEssIFY+XG4gICAgZXh0ZW5kcyBNZW1vT3B0aW9uczxLLCBWLCB1bmRlZmluZWQ+IHtcbiAgICBjb250ZXh0PzogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogT3B0aW9ucyBwcm92aWRlZCB0byB0aGVcbiAgICoge0BsaW5rIE9wdGlvbnNCYXNlLm1lbW9NZXRob2R9IGZ1bmN0aW9uLlxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBNZW1vaXplck9wdGlvbnM8SywgViwgRkMgPSB1bmtub3duPiB7XG4gICAgb3B0aW9uczogTWVtb2l6ZXJNZW1vT3B0aW9uczxLLCBWLCBGQz5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgcHJvdmlkZWQgaW4gdGhlIHtAbGluayBNZW1vT3B0aW9ucy5jb250ZXh0fSBvcHRpb24gdG9cbiAgICAgKiB7QGxpbmsgTFJVQ2FjaGUjbWVtb31cbiAgICAgKi9cbiAgICBjb250ZXh0OiBGQ1xuICB9XG5cbiAgLyoqXG4gICAqIG9wdGlvbnMgd2hpY2ggb3ZlcnJpZGUgdGhlIG9wdGlvbnMgc2V0IGluIHRoZSBMUlVDYWNoZSBjb25zdHJ1Y3RvclxuICAgKiB3aGVuIGNhbGxpbmcge0BsaW5rIExSVUNhY2hlI21lbW99LlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSB1bmlvbiBvZiB7QGxpbmsgR2V0T3B0aW9uc30gYW5kIHtAbGluayBTZXRPcHRpb25zfSwgcGx1c1xuICAgKiB7QGxpbmsgTWVtb09wdGlvbnMuZm9yY2VSZWZyZXNofSwgYW5kXG4gICAqIHtAbGluayBNZW1vT3B0aW9ucy5jb250ZXh0fVxuICAgKlxuICAgKiBBbnkgb2YgdGhlc2UgbWF5IGJlIG1vZGlmaWVkIGluIHRoZSB7QGxpbmsgT3B0aW9uc0Jhc2UubWVtb01ldGhvZH1cbiAgICogZnVuY3Rpb24sIGJ1dCB0aGUge0BsaW5rIEdldE9wdGlvbnN9IGZpZWxkcyB3aWxsIG9mIGNvdXJzZSBoYXZlIG5vXG4gICAqIGVmZmVjdCwgYXMgdGhlIHtAbGluayBMUlVDYWNoZSNnZXR9IGNhbGwgYWxyZWFkeSBoYXBwZW5lZCBieSB0aGUgdGltZVxuICAgKiB0aGUgbWVtb01ldGhvZCBpcyBjYWxsZWQuXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIE1lbW9pemVyTWVtb09wdGlvbnM8SywgViwgRkMgPSB1bmtub3duPlxuICAgIGV4dGVuZHMgUGljazxcbiAgICAgIE9wdGlvbnNCYXNlPEssIFYsIEZDPixcbiAgICAgIHwgJ2FsbG93U3RhbGUnXG4gICAgICB8ICd1cGRhdGVBZ2VPbkdldCdcbiAgICAgIHwgJ25vRGVsZXRlT25TdGFsZUdldCdcbiAgICAgIHwgJ3NpemVDYWxjdWxhdGlvbidcbiAgICAgIHwgJ3R0bCdcbiAgICAgIHwgJ25vRGlzcG9zZU9uU2V0J1xuICAgICAgfCAnbm9VcGRhdGVUVEwnXG4gICAgPiB7XG4gICAgc3RhdHVzPzogU3RhdHVzPFY+XG4gICAgc2l6ZT86IFNpemVcbiAgICBzdGFydD86IE1pbGxpc2Vjb25kc1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdGhhdCBtYXkgYmUgcGFzc2VkIHRvIHRoZSB7QGxpbmsgTFJVQ2FjaGUjaGFzfSBtZXRob2QuXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEhhc09wdGlvbnM8SywgViwgRkM+XG4gICAgZXh0ZW5kcyBQaWNrPE9wdGlvbnNCYXNlPEssIFYsIEZDPiwgJ3VwZGF0ZUFnZU9uSGFzJz4ge1xuICAgIHN0YXR1cz86IFN0YXR1czxWPlxuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdGhhdCBtYXkgYmUgcGFzc2VkIHRvIHRoZSB7QGxpbmsgTFJVQ2FjaGUjZ2V0fSBtZXRob2QuXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEdldE9wdGlvbnM8SywgViwgRkM+XG4gICAgZXh0ZW5kcyBQaWNrPFxuICAgICAgT3B0aW9uc0Jhc2U8SywgViwgRkM+LFxuICAgICAgJ2FsbG93U3RhbGUnIHwgJ3VwZGF0ZUFnZU9uR2V0JyB8ICdub0RlbGV0ZU9uU3RhbGVHZXQnXG4gICAgPiB7XG4gICAgc3RhdHVzPzogU3RhdHVzPFY+XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9ucyB0aGF0IG1heSBiZSBwYXNzZWQgdG8gdGhlIHtAbGluayBMUlVDYWNoZSNwZWVrfSBtZXRob2QuXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIFBlZWtPcHRpb25zPEssIFYsIEZDPlxuICAgIGV4dGVuZHMgUGljazxPcHRpb25zQmFzZTxLLCBWLCBGQz4sICdhbGxvd1N0YWxlJz4ge31cblxuICAvKipcbiAgICogT3B0aW9ucyB0aGF0IG1heSBiZSBwYXNzZWQgdG8gdGhlIHtAbGluayBMUlVDYWNoZSNzZXR9IG1ldGhvZC5cbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgU2V0T3B0aW9uczxLLCBWLCBGQz5cbiAgICBleHRlbmRzIFBpY2s8XG4gICAgICBPcHRpb25zQmFzZTxLLCBWLCBGQz4sXG4gICAgICAnc2l6ZUNhbGN1bGF0aW9uJyB8ICd0dGwnIHwgJ25vRGlzcG9zZU9uU2V0JyB8ICdub1VwZGF0ZVRUTCdcbiAgICA+IHtcbiAgICAvKipcbiAgICAgKiBJZiBzaXplIHRyYWNraW5nIGlzIGVuYWJsZWQsIHRoZW4gc2V0dGluZyBhbiBleHBsaWNpdCBzaXplXG4gICAgICogaW4gdGhlIHtAbGluayBMUlVDYWNoZSNzZXR9IGNhbGwgd2lsbCBwcmV2ZW50IGNhbGxpbmcgdGhlXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLnNpemVDYWxjdWxhdGlvbn0gZnVuY3Rpb24uXG4gICAgICovXG4gICAgc2l6ZT86IFNpemVcbiAgICAvKipcbiAgICAgKiBJZiBUVEwgdHJhY2tpbmcgaXMgZW5hYmxlZCwgdGhlbiBzZXR0aW5nIGFuIGV4cGxpY2l0IHN0YXJ0XG4gICAgICogdGltZSBpbiB0aGUge0BsaW5rIExSVUNhY2hlI3NldH0gY2FsbCB3aWxsIG92ZXJyaWRlIHRoZVxuICAgICAqIGRlZmF1bHQgdGltZSBmcm9tIGBwZXJmb3JtYW5jZS5ub3coKWAgb3IgYERhdGUubm93KClgLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IGl0IG11c3QgYmUgYSB2YWxpZCB2YWx1ZSBmb3Igd2hpY2hldmVyIHRpbWUtdHJhY2tpbmdcbiAgICAgKiBtZXRob2QgaXMgaW4gdXNlLlxuICAgICAqL1xuICAgIHN0YXJ0PzogTWlsbGlzZWNvbmRzXG4gICAgc3RhdHVzPzogU3RhdHVzPFY+XG4gIH1cblxuICAvKipcbiAgICogVGhlIHR5cGUgc2lnbmF0dXJlIGZvciB0aGUge0BsaW5rIE9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSBvcHRpb24uXG4gICAqL1xuICBleHBvcnQgdHlwZSBGZXRjaGVyPEssIFYsIEZDID0gdW5rbm93bj4gPSAoXG4gICAga2V5OiBLLFxuICAgIHN0YWxlVmFsdWU6IFYgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogRmV0Y2hlck9wdGlvbnM8SywgViwgRkM+LFxuICApID0+IFByb21pc2U8ViB8IHVuZGVmaW5lZCB8IHZvaWQ+IHwgViB8IHVuZGVmaW5lZCB8IHZvaWRcblxuICAvKipcbiAgICogdGhlIHR5cGUgc2lnbmF0dXJlIGZvciB0aGUge0BsaW5rIE9wdGlvbnNCYXNlLm1lbW9NZXRob2R9IG9wdGlvbi5cbiAgICovXG4gIGV4cG9ydCB0eXBlIE1lbW9pemVyPEssIFYsIEZDID0gdW5rbm93bj4gPSAoXG4gICAga2V5OiBLLFxuICAgIHN0YWxlVmFsdWU6IFYgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogTWVtb2l6ZXJPcHRpb25zPEssIFYsIEZDPixcbiAgKSA9PiBWXG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgd2hpY2ggbWF5IGJlIHBhc3NlZCB0byB0aGUge0BsaW5rIExSVUNhY2hlfSBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogTW9zdCBvZiB0aGVzZSBtYXkgYmUgb3ZlcnJpZGRlbiBpbiB0aGUgdmFyaW91cyBvcHRpb25zIHRoYXQgdXNlXG4gICAqIHRoZW0uXG4gICAqXG4gICAqIERlc3BpdGUgYWxsIGJlaW5nIHRlY2huaWNhbGx5IG9wdGlvbmFsLCB0aGUgY29uc3RydWN0b3IgcmVxdWlyZXMgdGhhdFxuICAgKiBhIGNhY2hlIGlzIGF0IG1pbmltdW0gbGltaXRlZCBieSBvbmUgb3IgbW9yZSBvZiB7QGxpbmsgT3B0aW9uc0Jhc2UubWF4fSxcbiAgICoge0BsaW5rIE9wdGlvbnNCYXNlLnR0bH0sIG9yIHtAbGluayBPcHRpb25zQmFzZS5tYXhTaXplfS5cbiAgICpcbiAgICogSWYge0BsaW5rIE9wdGlvbnNCYXNlLnR0bH0gaXMgdXNlZCBhbG9uZSwgdGhlbiBpdCBpcyBzdHJvbmdseSBhZHZpc2VkXG4gICAqIChhbmQgaW4gZmFjdCByZXF1aXJlZCBieSB0aGUgdHlwZSBkZWZpbml0aW9ucyBoZXJlKSB0aGF0IHRoZSBjYWNoZVxuICAgKiBhbHNvIHNldCB7QGxpbmsgT3B0aW9uc0Jhc2UudHRsQXV0b3B1cmdlfSwgdG8gcHJldmVudCBwb3RlbnRpYWxseVxuICAgKiB1bmJvdW5kZWQgc3RvcmFnZS5cbiAgICpcbiAgICogQWxsIG9wdGlvbnMgYXJlIGFsc28gYXZhaWxhYmxlIG9uIHRoZSB7QGxpbmsgTFJVQ2FjaGV9IGluc3RhbmNlLCBtYWtpbmdcbiAgICogaXQgc2FmZSB0byBwYXNzIGFuIExSVUNhY2hlIGluc3RhbmNlIGFzIHRoZSBvcHRpb25zIGFyZ3VtZW1udCB0b1xuICAgKiBtYWtlIGFub3RoZXIgZW1wdHkgY2FjaGUgb2YgdGhlIHNhbWUgdHlwZS5cbiAgICpcbiAgICogU29tZSBvcHRpb25zIGFyZSBtYXJrZWQgYXMgcmVhZC1vbmx5LCBiZWNhdXNlIGNoYW5naW5nIHRoZW0gYWZ0ZXJcbiAgICogaW5zdGFudGlhdGlvbiBpcyBub3Qgc2FmZS4gQ2hhbmdpbmcgYW55IG9mIHRoZSBvdGhlciBvcHRpb25zIHdpbGwgb2ZcbiAgICogY291cnNlIG9ubHkgaGF2ZSBhbiBlZmZlY3Qgb24gc3Vic2VxdWVudCBtZXRob2QgY2FsbHMuXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnNCYXNlPEssIFYsIEZDPiB7XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIHN0b3JlIGluIHRoZSBjYWNoZSBiZWZvcmUgZXZpY3RpbmdcbiAgICAgKiBvbGQgZW50cmllcy4gVGhpcyBpcyByZWFkLW9ubHkgb24gdGhlIHtAbGluayBMUlVDYWNoZX0gaW5zdGFuY2UsXG4gICAgICogYW5kIG1heSBub3QgYmUgb3ZlcnJpZGRlbi5cbiAgICAgKlxuICAgICAqIElmIHNldCwgdGhlbiBzdG9yYWdlIHNwYWNlIHdpbGwgYmUgcHJlLWFsbG9jYXRlZCBhdCBjb25zdHJ1Y3Rpb25cbiAgICAgKiB0aW1lLCBhbmQgdGhlIGNhY2hlIHdpbGwgcGVyZm9ybSBzaWduaWZpY2FudGx5IGZhc3Rlci5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCBzaWduaWZpY2FudGx5IGZld2VyIGl0ZW1zIG1heSBiZSBzdG9yZWQsIGlmXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLm1heFNpemV9IGFuZC9vciB7QGxpbmsgT3B0aW9uc0Jhc2UudHRsfSBhcmUgYWxzb1xuICAgICAqIHNldC5cbiAgICAgKlxuICAgICAqICoqSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gc2V0IGEgYG1heGAgdG8gcHJldmVudCB1bmJvdW5kZWQgZ3Jvd3RoXG4gICAgICogb2YgdGhlIGNhY2hlLioqXG4gICAgICovXG4gICAgbWF4PzogQ291bnRcblxuICAgIC8qKlxuICAgICAqIE1heCB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgaXRlbXMgdG8gbGl2ZSBpbiBjYWNoZSBiZWZvcmUgdGhleSBhcmVcbiAgICAgKiBjb25zaWRlcmVkIHN0YWxlLiAgTm90ZSB0aGF0IHN0YWxlIGl0ZW1zIGFyZSBOT1QgcHJlZW1wdGl2ZWx5IHJlbW92ZWQgYnlcbiAgICAgKiBkZWZhdWx0LCBhbmQgTUFZIGxpdmUgaW4gdGhlIGNhY2hlLCBjb250cmlidXRpbmcgdG8gaXRzIExSVSBtYXgsIGxvbmdcbiAgICAgKiBhZnRlciB0aGV5IGhhdmUgZXhwaXJlZCwgdW5sZXNzIHtAbGluayBPcHRpb25zQmFzZS50dGxBdXRvcHVyZ2V9IGlzXG4gICAgICogc2V0LlxuICAgICAqXG4gICAgICogSWYgc2V0IHRvIGAwYCAodGhlIGRlZmF1bHQgdmFsdWUpLCB0aGVuIHRoYXQgbWVhbnMgXCJkbyBub3QgdHJhY2tcbiAgICAgKiBUVExcIiwgbm90IFwiZXhwaXJlIGltbWVkaWF0ZWx5XCIuXG4gICAgICpcbiAgICAgKiBBbHNvLCBhcyB0aGlzIGNhY2hlIGlzIG9wdGltaXplZCBmb3IgTFJVL01SVSBvcGVyYXRpb25zLCBzb21lIG9mXG4gICAgICogdGhlIHN0YWxlbmVzcy9UVEwgY2hlY2tzIHdpbGwgcmVkdWNlIHBlcmZvcm1hbmNlLCBhcyB0aGV5IHdpbGwgaW5jdXJcbiAgICAgKiBvdmVyaGVhZCBieSBkZWxldGluZyBpdGVtcy5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgbm90IHByaW1hcmlseSBhIFRUTCBjYWNoZSwgYW5kIGRvZXMgbm90IG1ha2Ugc3Ryb25nIFRUTFxuICAgICAqIGd1YXJhbnRlZXMuIFRoZXJlIGlzIG5vIHByZS1lbXB0aXZlIHBydW5pbmcgb2YgZXhwaXJlZCBpdGVtcywgYnV0IHlvdVxuICAgICAqIF9tYXlfIHNldCBhIFRUTCBvbiB0aGUgY2FjaGUsIGFuZCBpdCB3aWxsIHRyZWF0IGV4cGlyZWQgaXRlbXMgYXMgbWlzc2luZ1xuICAgICAqIHdoZW4gdGhleSBhcmUgZmV0Y2hlZCwgYW5kIGRlbGV0ZSB0aGVtLlxuICAgICAqXG4gICAgICogT3B0aW9uYWwsIGJ1dCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgaW4gbXMgaWYgc3BlY2lmaWVkLlxuICAgICAqXG4gICAgICogVGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBwYXNzaW5nIGFuIG9wdGlvbnMgb2JqZWN0IHRvIGBjYWNoZS5zZXQoKWAuXG4gICAgICpcbiAgICAgKiBBdCBsZWFzdCBvbmUgb2YgYG1heGAsIGBtYXhTaXplYCwgb3IgYFRUTGAgaXMgcmVxdWlyZWQuIFRoaXMgbXVzdCBiZSBhXG4gICAgICogcG9zaXRpdmUgaW50ZWdlciBpZiBzZXQuXG4gICAgICpcbiAgICAgKiBFdmVuIGlmIHR0bCB0cmFja2luZyBpcyBlbmFibGVkLCAqKml0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHNldCBhXG4gICAgICogYG1heGAgdG8gcHJldmVudCB1bmJvdW5kZWQgZ3Jvd3RoIG9mIHRoZSBjYWNoZS4qKlxuICAgICAqXG4gICAgICogSWYgdHRsIHRyYWNraW5nIGlzIGVuYWJsZWQsIGFuZCBgbWF4YCBhbmQgYG1heFNpemVgIGFyZSBub3Qgc2V0LFxuICAgICAqIGFuZCBgdHRsQXV0b3B1cmdlYCBpcyBub3Qgc2V0LCB0aGVuIGEgd2FybmluZyB3aWxsIGJlIGVtaXR0ZWRcbiAgICAgKiBjYXV0aW9uaW5nIGFib3V0IHRoZSBwb3RlbnRpYWwgZm9yIHVuYm91bmRlZCBtZW1vcnkgY29uc3VtcHRpb24uXG4gICAgICogKFRoZSBUeXBlU2NyaXB0IGRlZmluaXRpb25zIHdpbGwgYWxzbyBkaXNjb3VyYWdlIHRoaXMuKVxuICAgICAqL1xuICAgIHR0bD86IE1pbGxpc2Vjb25kc1xuXG4gICAgLyoqXG4gICAgICogTWluaW11bSBhbW91bnQgb2YgdGltZSBpbiBtcyBpbiB3aGljaCB0byBjaGVjayBmb3Igc3RhbGVuZXNzLlxuICAgICAqIERlZmF1bHRzIHRvIDEsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGN1cnJlbnQgdGltZSBpcyBjaGVja2VkXG4gICAgICogYXQgbW9zdCBvbmNlIHBlciBtaWxsaXNlY29uZC5cbiAgICAgKlxuICAgICAqIFNldCB0byAwIHRvIGNoZWNrIHRoZSBjdXJyZW50IHRpbWUgZXZlcnkgdGltZSBzdGFsZW5lc3MgaXMgdGVzdGVkLlxuICAgICAqIChUaGlzIHJlZHVjZXMgcGVyZm9ybWFuY2UsIGFuZCBpcyB0aGVvcmV0aWNhbGx5IHVubmVjZXNzYXJ5LilcbiAgICAgKlxuICAgICAqIFNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciB2YWx1ZSB3aWxsIGltcHJvdmUgcGVyZm9ybWFuY2Ugc29tZXdoYXRcbiAgICAgKiB3aGlsZSB1c2luZyB0dGwgdHJhY2tpbmcsIGFsYmVpdCBhdCB0aGUgZXhwZW5zZSBvZiBrZWVwaW5nIHN0YWxlXG4gICAgICogaXRlbXMgYXJvdW5kIGEgYml0IGxvbmdlciB0aGFuIHRoZWlyIFRUTHMgd291bGQgaW5kaWNhdGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAxXG4gICAgICovXG4gICAgdHRsUmVzb2x1dGlvbj86IE1pbGxpc2Vjb25kc1xuXG4gICAgLyoqXG4gICAgICogUHJlZW1wdGl2ZWx5IHJlbW92ZSBzdGFsZSBpdGVtcyBmcm9tIHRoZSBjYWNoZS5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCB0aGlzIG1heSAqc2lnbmlmaWNhbnRseSogZGVncmFkZSBwZXJmb3JtYW5jZSwgZXNwZWNpYWxseSBpZlxuICAgICAqIHRoZSBjYWNoZSBpcyBzdG9yaW5nIGEgbGFyZ2UgbnVtYmVyIG9mIGl0ZW1zLiBJdCBpcyBhbG1vc3QgYWx3YXlzIGJlc3RcbiAgICAgKiB0byBqdXN0IGxlYXZlIHRoZSBzdGFsZSBpdGVtcyBpbiB0aGUgY2FjaGUsIGFuZCBsZXQgdGhlbSBmYWxsIG91dCBhcyBuZXdcbiAgICAgKiBpdGVtcyBhcmUgYWRkZWQuXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0IHtAbGluayBPcHRpb25zQmFzZS5hbGxvd1N0YWxlfSBpcyBhIGJpdFxuICAgICAqIHBvaW50bGVzcywgYXMgc3RhbGUgaXRlbXMgd2lsbCBiZSBkZWxldGVkIGFsbW9zdCBhcyBzb29uIGFzIHRoZXlcbiAgICAgKiBleHBpcmUuXG4gICAgICpcbiAgICAgKiBVc2Ugd2l0aCBjYXV0aW9uIVxuICAgICAqL1xuICAgIHR0bEF1dG9wdXJnZT86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIFdoZW4gdXNpbmcgdGltZS1leHBpcmluZyBlbnRyaWVzIHdpdGggYHR0bGAsIHNldHRpbmcgdGhpcyB0byBgdHJ1ZWAgd2lsbFxuICAgICAqIG1ha2UgZWFjaCBpdGVtJ3MgYWdlIHJlc2V0IHRvIDAgd2hlbmV2ZXIgaXQgaXMgcmV0cmlldmVkIGZyb20gY2FjaGUgd2l0aFxuICAgICAqIHtAbGluayBMUlVDYWNoZSNnZXR9LCBjYXVzaW5nIGl0IHRvIG5vdCBleHBpcmUuIChJdCBjYW4gc3RpbGwgZmFsbCBvdXRcbiAgICAgKiBvZiBjYWNoZSBiYXNlZCBvbiByZWNlbmN5IG9mIHVzZSwgb2YgY291cnNlLilcbiAgICAgKlxuICAgICAqIEhhcyBubyBlZmZlY3QgaWYge0BsaW5rIE9wdGlvbnNCYXNlLnR0bH0gaXMgbm90IHNldC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgcGFzc2luZyBhbiBvcHRpb25zIG9iamVjdCB0byBgY2FjaGUuZ2V0KClgLlxuICAgICAqL1xuICAgIHVwZGF0ZUFnZU9uR2V0PzogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICogV2hlbiB1c2luZyB0aW1lLWV4cGlyaW5nIGVudHJpZXMgd2l0aCBgdHRsYCwgc2V0dGluZyB0aGlzIHRvIGB0cnVlYCB3aWxsXG4gICAgICogbWFrZSBlYWNoIGl0ZW0ncyBhZ2UgcmVzZXQgdG8gMCB3aGVuZXZlciBpdHMgcHJlc2VuY2UgaW4gdGhlIGNhY2hlIGlzXG4gICAgICogY2hlY2tlZCB3aXRoIHtAbGluayBMUlVDYWNoZSNoYXN9LCBjYXVzaW5nIGl0IHRvIG5vdCBleHBpcmUuIChJdCBjYW5cbiAgICAgKiBzdGlsbCBmYWxsIG91dCBvZiBjYWNoZSBiYXNlZCBvbiByZWNlbmN5IG9mIHVzZSwgb2YgY291cnNlLilcbiAgICAgKlxuICAgICAqIEhhcyBubyBlZmZlY3QgaWYge0BsaW5rIE9wdGlvbnNCYXNlLnR0bH0gaXMgbm90IHNldC5cbiAgICAgKi9cbiAgICB1cGRhdGVBZ2VPbkhhcz86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIEFsbG93IHtAbGluayBMUlVDYWNoZSNnZXR9IGFuZCB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9IGNhbGxzIHRvIHJldHVyblxuICAgICAqIHN0YWxlIGRhdGEsIGlmIGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIGlmIHlvdSBzZXQgYHR0bGAsIHN0YWxlIGl0ZW1zIHdpbGwgb25seSBiZSBkZWxldGVkIGZyb20gdGhlXG4gICAgICogY2FjaGUgd2hlbiB5b3UgYGdldChrZXkpYC4gVGhhdCBpcywgaXQncyBub3QgcHJlZW1wdGl2ZWx5IHBydW5pbmcgaXRlbXMsXG4gICAgICogdW5sZXNzIHtAbGluayBPcHRpb25zQmFzZS50dGxBdXRvcHVyZ2V9IGlzIHNldC5cbiAgICAgKlxuICAgICAqIElmIHlvdSBzZXQgYGFsbG93U3RhbGU6dHJ1ZWAsIGl0J2xsIHJldHVybiB0aGUgc3RhbGUgdmFsdWUgKmFzIHdlbGwgYXMqXG4gICAgICogZGVsZXRpbmcgaXQuIElmIHlvdSBkb24ndCBzZXQgdGhpcywgdGhlbiBpdCdsbCByZXR1cm4gYHVuZGVmaW5lZGAgd2hlblxuICAgICAqIHlvdSB0cnkgdG8gZ2V0IGEgc3RhbGUgZW50cnkuXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgd2hlbiBhIHN0YWxlIGVudHJ5IGlzIGZldGNoZWQsIF9ldmVuIGlmIGl0IGlzIHJldHVybmVkIGR1ZSB0b1xuICAgICAqIGBhbGxvd1N0YWxlYCBiZWluZyBzZXRfLCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIGNhY2hlIGltbWVkaWF0ZWx5LiBZb3VcbiAgICAgKiBjYW4gc3VwcHJlc3MgdGhpcyBiZWhhdmlvciBieSBzZXR0aW5nXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLm5vRGVsZXRlT25TdGFsZUdldH0sIGVpdGhlciBpbiB0aGUgY29uc3RydWN0b3IsIG9yIGluXG4gICAgICogdGhlIG9wdGlvbnMgcHJvdmlkZWQgdG8ge0BsaW5rIExSVUNhY2hlI2dldH0uXG4gICAgICpcbiAgICAgKiBUaGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IHBhc3NpbmcgYW4gb3B0aW9ucyBvYmplY3QgdG8gYGNhY2hlLmdldCgpYC5cbiAgICAgKiBUaGUgYGNhY2hlLmhhcygpYCBtZXRob2Qgd2lsbCBhbHdheXMgcmV0dXJuIGBmYWxzZWAgZm9yIHN0YWxlIGl0ZW1zLlxuICAgICAqXG4gICAgICogT25seSByZWxldmFudCBpZiBhIHR0bCBpcyBzZXQuXG4gICAgICovXG4gICAgYWxsb3dTdGFsZT86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIG9uIGl0ZW1zIHdoZW4gdGhleSBhcmUgZHJvcHBlZCBmcm9tIHRoZVxuICAgICAqIGNhY2hlLCBhcyBgZGlzcG9zZSh2YWx1ZSwga2V5LCByZWFzb24pYC5cbiAgICAgKlxuICAgICAqIFRoaXMgY2FuIGJlIGhhbmR5IGlmIHlvdSB3YW50IHRvIGNsb3NlIGZpbGUgZGVzY3JpcHRvcnMgb3IgZG9cbiAgICAgKiBvdGhlciBjbGVhbnVwIHRhc2tzIHdoZW4gaXRlbXMgYXJlIG5vIGxvbmdlciBzdG9yZWQgaW4gdGhlIGNhY2hlLlxuICAgICAqXG4gICAgICogKipOT1RFKio6IEl0IGlzIGNhbGxlZCBfYmVmb3JlXyB0aGUgaXRlbSBoYXMgYmVlbiBmdWxseSByZW1vdmVkXG4gICAgICogZnJvbSB0aGUgY2FjaGUsIHNvIGlmIHlvdSB3YW50IHRvIHB1dCBpdCByaWdodCBiYWNrIGluLCB5b3UgbmVlZFxuICAgICAqIHRvIHdhaXQgdW50aWwgdGhlIG5leHQgdGljay4gSWYgeW91IHRyeSB0byBhZGQgaXQgYmFjayBpbiBkdXJpbmdcbiAgICAgKiB0aGUgYGRpc3Bvc2UoKWAgZnVuY3Rpb24gY2FsbCwgaXQgd2lsbCBicmVhayB0aGluZ3MgaW4gc3VidGxlIGFuZFxuICAgICAqIHdlaXJkIHdheXMuXG4gICAgICpcbiAgICAgKiBVbmxpa2Ugc2V2ZXJhbCBvdGhlciBvcHRpb25zLCB0aGlzIG1heSBfbm90XyBiZSBvdmVycmlkZGVuIGJ5XG4gICAgICogcGFzc2luZyBhbiBvcHRpb24gdG8gYHNldCgpYCwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuXG4gICAgICpcbiAgICAgKiBUaGUgYHJlYXNvbmAgd2lsbCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBzdHJpbmdzLCBjb3JyZXNwb25kaW5nXG4gICAgICogdG8gdGhlIHJlYXNvbiBmb3IgdGhlIGl0ZW0ncyBkZWxldGlvbjpcbiAgICAgKlxuICAgICAqIC0gYGV2aWN0YCBJdGVtIHdhcyBldmljdGVkIHRvIG1ha2Ugc3BhY2UgZm9yIGEgbmV3IGFkZGl0aW9uXG4gICAgICogLSBgc2V0YCBJdGVtIHdhcyBvdmVyd3JpdHRlbiBieSBhIG5ldyB2YWx1ZVxuICAgICAqIC0gYGV4cGlyZWAgSXRlbSBleHBpcmVkIGl0cyBUVExcbiAgICAgKiAtIGBmZXRjaGAgSXRlbSB3YXMgZGVsZXRlZCBkdWUgdG8gYSBmYWlsZWQgb3IgYWJvcnRlZCBmZXRjaCwgb3IgYVxuICAgICAqICAgZmV0Y2hNZXRob2QgcmV0dXJuaW5nIGB1bmRlZmluZWQuXG4gICAgICogLSBgZGVsZXRlYCBJdGVtIHdhcyByZW1vdmVkIGJ5IGV4cGxpY2l0IGBjYWNoZS5kZWxldGUoa2V5KWAsXG4gICAgICogICBgY2FjaGUuY2xlYXIoKWAsIG9yIGBjYWNoZS5zZXQoa2V5LCB1bmRlZmluZWQpYC5cbiAgICAgKi9cbiAgICBkaXNwb3NlPzogRGlzcG9zZXI8SywgVj5cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gbmV3IGl0ZW1zIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSBjYWNoZSxcbiAgICAgKiBhcyBgb25JbnNlcnQodmFsdWUsIGtleSwgcmVhc29uKWAuXG4gICAgICpcbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgeW91IG5lZWQgdG8gcGVyZm9ybSBhY3Rpb25zIHdoZW4gYW4gaXRlbSBpc1xuICAgICAqIGFkZGVkLCBzdWNoIGFzIGxvZ2dpbmcgb3IgdHJhY2tpbmcgaW5zZXJ0aW9ucy5cbiAgICAgKlxuICAgICAqIFVubGlrZSBzb21lIG90aGVyIG9wdGlvbnMsIHRoaXMgbWF5IF9ub3RfIGJlIG92ZXJyaWRkZW4gYnkgcGFzc2luZ1xuICAgICAqIGFuIG9wdGlvbiB0byBgc2V0KClgLCBmb3IgcGVyZm9ybWFuY2UgYW5kIGNvbnNpc3RlbmN5IHJlYXNvbnMuXG4gICAgICovXG4gICAgb25JbnNlcnQ/OiBJbnNlcnRlcjxLLCBWPlxuXG4gICAgLyoqXG4gICAgICogVGhlIHNhbWUgYXMge0BsaW5rIE9wdGlvbnNCYXNlLmRpc3Bvc2V9LCBidXQgY2FsbGVkICphZnRlciogdGhlIGVudHJ5XG4gICAgICogaXMgY29tcGxldGVseSByZW1vdmVkIGFuZCB0aGUgY2FjaGUgaXMgb25jZSBhZ2FpbiBpbiBhIGNsZWFuIHN0YXRlLlxuICAgICAqXG4gICAgICogSXQgaXMgc2FmZSB0byBhZGQgYW4gaXRlbSByaWdodCBiYWNrIGludG8gdGhlIGNhY2hlIGF0IHRoaXMgcG9pbnQuXG4gICAgICogSG93ZXZlciwgbm90ZSB0aGF0IGl0IGlzICp2ZXJ5KiBlYXN5IHRvIGluYWR2ZXJ0ZW50bHkgY3JlYXRlIGluZmluaXRlXG4gICAgICogcmVjdXJzaW9uIHRoaXMgd2F5LlxuICAgICAqL1xuICAgIGRpc3Bvc2VBZnRlcj86IERpc3Bvc2VyPEssIFY+XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdG8gdHJ1ZSB0byBzdXBwcmVzcyBjYWxsaW5nIHRoZVxuICAgICAqIHtAbGluayBPcHRpb25zQmFzZS5kaXNwb3NlfSBmdW5jdGlvbiBpZiB0aGUgZW50cnkga2V5IGlzXG4gICAgICogc3RpbGwgYWNjZXNzaWJsZSB3aXRoaW4gdGhlIGNhY2hlLlxuICAgICAqXG4gICAgICogVGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBwYXNzaW5nIGFuIG9wdGlvbnMgb2JqZWN0IHRvXG4gICAgICoge0BsaW5rIExSVUNhY2hlI3NldH0uXG4gICAgICpcbiAgICAgKiBPbmx5IHJlbGV2YW50IGlmIGBkaXNwb3NlYCBvciBgZGlzcG9zZUFmdGVyYCBhcmUgc2V0LlxuICAgICAqL1xuICAgIG5vRGlzcG9zZU9uU2V0PzogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBmbGFnIHRvIHRlbGwgdGhlIGNhY2hlIHRvIG5vdCB1cGRhdGUgdGhlIFRUTCB3aGVuIHNldHRpbmcgYSBuZXdcbiAgICAgKiB2YWx1ZSBmb3IgYW4gZXhpc3Rpbmcga2V5IChpZSwgd2hlbiB1cGRhdGluZyBhIHZhbHVlIHJhdGhlciB0aGFuXG4gICAgICogaW5zZXJ0aW5nIGEgbmV3IHZhbHVlKS4gIE5vdGUgdGhhdCB0aGUgVFRMIHZhbHVlIGlzIF9hbHdheXNfIHNldCAoaWZcbiAgICAgKiBwcm92aWRlZCkgd2hlbiBhZGRpbmcgYSBuZXcgZW50cnkgaW50byB0aGUgY2FjaGUuXG4gICAgICpcbiAgICAgKiBIYXMgbm8gZWZmZWN0IGlmIGEge0BsaW5rIE9wdGlvbnNCYXNlLnR0bH0gaXMgbm90IHNldC5cbiAgICAgKlxuICAgICAqIE1heSBiZSBwYXNzZWQgYXMgYW4gb3B0aW9uIHRvIHtAbGluayBMUlVDYWNoZSNzZXR9LlxuICAgICAqL1xuICAgIG5vVXBkYXRlVFRMPzogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGEgcG9zaXRpdmUgaW50ZWdlciB0byB0cmFjayB0aGUgc2l6ZXMgb2YgaXRlbXMgYWRkZWQgdG8gdGhlXG4gICAgICogY2FjaGUsIGFuZCBhdXRvbWF0aWNhbGx5IGV2aWN0IGl0ZW1zIGluIG9yZGVyIHRvIHN0YXkgYmVsb3cgdGhpcyBzaXplLlxuICAgICAqIE5vdGUgdGhhdCB0aGlzIG1heSByZXN1bHQgaW4gZmV3ZXIgdGhhbiBgbWF4YCBpdGVtcyBiZWluZyBzdG9yZWQuXG4gICAgICpcbiAgICAgKiBBdHRlbXB0aW5nIHRvIGFkZCBhbiBpdGVtIHRvIHRoZSBjYWNoZSB3aG9zZSBjYWxjdWxhdGVkIHNpemUgaXMgZ3JlYXRlclxuICAgICAqIHRoYXQgdGhpcyBhbW91bnQgd2lsbCBiZSBhIG5vLW9wLiBUaGUgaXRlbSB3aWxsIG5vdCBiZSBjYWNoZWQsIGFuZCBub1xuICAgICAqIG90aGVyIGl0ZW1zIHdpbGwgYmUgZXZpY3RlZC5cbiAgICAgKlxuICAgICAqIE9wdGlvbmFsLCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciBpZiBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIFNldHMgYG1heEVudHJ5U2l6ZWAgdG8gdGhlIHNhbWUgdmFsdWUsIHVubGVzcyBhIGRpZmZlcmVudCB2YWx1ZSBpc1xuICAgICAqIHByb3ZpZGVkIGZvciBgbWF4RW50cnlTaXplYC5cbiAgICAgKlxuICAgICAqIEF0IGxlYXN0IG9uZSBvZiBgbWF4YCwgYG1heFNpemVgLCBvciBgVFRMYCBpcyByZXF1aXJlZC4gVGhpcyBtdXN0IGJlIGFcbiAgICAgKiBwb3NpdGl2ZSBpbnRlZ2VyIGlmIHNldC5cbiAgICAgKlxuICAgICAqIEV2ZW4gaWYgc2l6ZSB0cmFja2luZyBpcyBlbmFibGVkLCAqKml0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHNldCBhXG4gICAgICogYG1heGAgdG8gcHJldmVudCB1bmJvdW5kZWQgZ3Jvd3RoIG9mIHRoZSBjYWNoZS4qKlxuICAgICAqXG4gICAgICogTm90ZSBhbHNvIHRoYXQgc2l6ZSB0cmFja2luZyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgcGVyZm9ybWFuY2UsXG4gICAgICogdGhvdWdoIGZvciBtb3N0IGNhc2VzLCBvbmx5IG1pbmltYWxseS5cbiAgICAgKi9cbiAgICBtYXhTaXplPzogU2l6ZVxuXG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gYWxsb3dlZCBzaXplIGZvciBhbnkgc2luZ2xlIGl0ZW0gaW4gdGhlIGNhY2hlLlxuICAgICAqXG4gICAgICogSWYgYSBsYXJnZXIgaXRlbSBpcyBwYXNzZWQgdG8ge0BsaW5rIExSVUNhY2hlI3NldH0gb3IgcmV0dXJuZWQgYnkgYVxuICAgICAqIHtAbGluayBPcHRpb25zQmFzZS5mZXRjaE1ldGhvZH0gb3Ige0BsaW5rIE9wdGlvbnNCYXNlLm1lbW9NZXRob2R9LCB0aGVuXG4gICAgICogaXQgd2lsbCBub3QgYmUgc3RvcmVkIGluIHRoZSBjYWNoZS5cbiAgICAgKlxuICAgICAqIEF0dGVtcHRpbmcgdG8gYWRkIGFuIGl0ZW0gd2hvc2UgY2FsY3VsYXRlZCBzaXplIGlzIGdyZWF0ZXIgdGhhblxuICAgICAqIHRoaXMgYW1vdW50IHdpbGwgbm90IGNhY2hlIHRoZSBpdGVtIG9yIGV2aWN0IGFueSBvbGQgaXRlbXMsIGJ1dFxuICAgICAqIFdJTEwgZGVsZXRlIGFuIGV4aXN0aW5nIHZhbHVlIGlmIG9uZSBpcyBhbHJlYWR5IHByZXNlbnQuXG4gICAgICpcbiAgICAgKiBPcHRpb25hbCwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgaWYgcHJvdmlkZWQuIERlZmF1bHRzIHRvXG4gICAgICogdGhlIHZhbHVlIG9mIGBtYXhTaXplYCBpZiBwcm92aWRlZC5cbiAgICAgKi9cbiAgICBtYXhFbnRyeVNpemU/OiBTaXplXG5cbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG51bWJlciBpbmRpY2F0aW5nIHRoZSBpdGVtJ3Mgc2l6ZS5cbiAgICAgKlxuICAgICAqIFJlcXVpcmVzIHtAbGluayBPcHRpb25zQmFzZS5tYXhTaXplfSB0byBiZSBzZXQuXG4gICAgICpcbiAgICAgKiBJZiBub3QgcHJvdmlkZWQsIGFuZCB7QGxpbmsgT3B0aW9uc0Jhc2UubWF4U2l6ZX0gb3JcbiAgICAgKiB7QGxpbmsgT3B0aW9uc0Jhc2UubWF4RW50cnlTaXplfSBhcmUgc2V0LCB0aGVuIGFsbFxuICAgICAqIHtAbGluayBMUlVDYWNoZSNzZXR9IGNhbGxzICoqbXVzdCoqIHByb3ZpZGUgYW4gZXhwbGljaXRcbiAgICAgKiB7QGxpbmsgU2V0T3B0aW9ucy5zaXplfSBvciBzaXplQ2FsY3VsYXRpb24gcGFyYW0uXG4gICAgICovXG4gICAgc2l6ZUNhbGN1bGF0aW9uPzogU2l6ZUNhbGN1bGF0b3I8SywgVj5cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHByb3ZpZGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3Ige0BsaW5rIExSVUNhY2hlI2ZldGNofVxuICAgICAqXG4gICAgICogYGBgdHNcbiAgICAgKiBmZXRjaE1ldGhvZChrZXksIHN0YWxlVmFsdWUsIHsgc2lnbmFsLCBvcHRpb25zLCBjb250ZXh0IH0pXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBJZiBgZmV0Y2hNZXRob2RgIGlzIG5vdCBwcm92aWRlZCwgdGhlbiBgY2FjaGUuZmV0Y2goa2V5KWAgaXMgZXF1aXZhbGVudFxuICAgICAqIHRvIGBQcm9taXNlLnJlc29sdmUoY2FjaGUuZ2V0KGtleSkpYC5cbiAgICAgKlxuICAgICAqIElmIGF0IGFueSB0aW1lLCBgc2lnbmFsLmFib3J0ZWRgIGlzIHNldCB0byBgdHJ1ZWAsIG9yIGlmIHRoZVxuICAgICAqIGBzaWduYWwub25hYm9ydGAgbWV0aG9kIGlzIGNhbGxlZCwgb3IgaWYgaXQgZW1pdHMgYW4gYCdhYm9ydCdgIGV2ZW50XG4gICAgICogd2hpY2ggeW91IGNhbiBsaXN0ZW4gdG8gd2l0aCBgYWRkRXZlbnRMaXN0ZW5lcmAsIHRoZW4gdGhhdCBtZWFucyB0aGF0XG4gICAgICogdGhlIGZldGNoIHNob3VsZCBiZSBhYmFuZG9uZWQuIFRoaXMgbWF5IGJlIHBhc3NlZCBhbG9uZyB0byBhc3luY1xuICAgICAqIGZ1bmN0aW9ucyBhd2FyZSBvZiBBYm9ydENvbnRyb2xsZXIvQWJvcnRTaWduYWwgYmVoYXZpb3IuXG4gICAgICpcbiAgICAgKiBUaGUgYGZldGNoTWV0aG9kYCBzaG91bGQgKipvbmx5KiogcmV0dXJuIGB1bmRlZmluZWRgIG9yIGEgUHJvbWlzZVxuICAgICAqIHJlc29sdmluZyB0byBgdW5kZWZpbmVkYCBpZiB0aGUgQWJvcnRDb250cm9sbGVyIHNpZ25hbGVkIGFuIGBhYm9ydGBcbiAgICAgKiBldmVudC4gSW4gYWxsIG90aGVyIGNhc2VzLCBpdCBzaG91bGQgcmV0dXJuIG9yIHJlc29sdmUgdG8gYSB2YWx1ZVxuICAgICAqIHN1aXRhYmxlIGZvciBhZGRpbmcgdG8gdGhlIGNhY2hlLlxuICAgICAqXG4gICAgICogVGhlIGBvcHRpb25zYCBvYmplY3QgaXMgYSB1bmlvbiBvZiB0aGUgb3B0aW9ucyB0aGF0IG1heSBiZSBwcm92aWRlZCB0b1xuICAgICAqIGBzZXQoKWAgYW5kIGBnZXQoKWAuIElmIHRoZXkgYXJlIG1vZGlmaWVkLCB0aGVuIHRoYXQgd2lsbCByZXN1bHQgaW5cbiAgICAgKiBtb2RpZnlpbmcgdGhlIHNldHRpbmdzIHRvIGBjYWNoZS5zZXQoKWAgd2hlbiB0aGUgdmFsdWUgaXMgcmVzb2x2ZWQsIGFuZFxuICAgICAqIGluIHRoZSBjYXNlIG9mXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLm5vRGVsZXRlT25GZXRjaFJlamVjdGlvbn0gYW5kXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9ufSwgdGhlIGhhbmRsaW5nIG9mXG4gICAgICogYGZldGNoTWV0aG9kYCBmYWlsdXJlcy5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlLCBhIEROUyBjYWNoZSBtYXkgdXBkYXRlIHRoZSBUVEwgYmFzZWQgb24gdGhlIHZhbHVlIHJldHVybmVkXG4gICAgICogZnJvbSBhIHJlbW90ZSBETlMgc2VydmVyIGJ5IGNoYW5naW5nIGBvcHRpb25zLnR0bGAgaW4gdGhlIGBmZXRjaE1ldGhvZGAuXG4gICAgICovXG4gICAgZmV0Y2hNZXRob2Q/OiBGZXRjaGVyPEssIFYsIEZDPlxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgcHJvdmlkZXMgdGhlIGltcGxlbWVudGF0aW9uIGZvciB7QGxpbmsgTFJVQ2FjaGUjbWVtb31cbiAgICAgKi9cbiAgICBtZW1vTWV0aG9kPzogTWVtb2l6ZXI8SywgViwgRkM+XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdG8gdHJ1ZSB0byBzdXBwcmVzcyB0aGUgZGVsZXRpb24gb2Ygc3RhbGUgZGF0YSB3aGVuIGFcbiAgICAgKiB7QGxpbmsgT3B0aW9uc0Jhc2UuZmV0Y2hNZXRob2R9IHJldHVybnMgYSByZWplY3RlZCBwcm9taXNlLlxuICAgICAqL1xuICAgIG5vRGVsZXRlT25GZXRjaFJlamVjdGlvbj86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIERvIG5vdCBkZWxldGUgc3RhbGUgaXRlbXMgd2hlbiB0aGV5IGFyZSByZXRyaWV2ZWQgd2l0aFxuICAgICAqIHtAbGluayBMUlVDYWNoZSNnZXR9LlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IHRoZSBgZ2V0YCByZXR1cm4gdmFsdWUgd2lsbCBzdGlsbCBiZSBgdW5kZWZpbmVkYFxuICAgICAqIHVubGVzcyB7QGxpbmsgT3B0aW9uc0Jhc2UuYWxsb3dTdGFsZX0gaXMgdHJ1ZS5cbiAgICAgKlxuICAgICAqIFdoZW4gdXNpbmcgdGltZS1leHBpcmluZyBlbnRyaWVzIHdpdGggYHR0bGAsIGJ5IGRlZmF1bHQgc3RhbGVcbiAgICAgKiBpdGVtcyB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUgd2hlbiB0aGUga2V5IGlzIGFjY2Vzc2VkXG4gICAgICogd2l0aCBgY2FjaGUuZ2V0KClgLlxuICAgICAqXG4gICAgICogU2V0dGluZyB0aGlzIG9wdGlvbiB3aWxsIGNhdXNlIHN0YWxlIGl0ZW1zIHRvIHJlbWFpbiBpbiB0aGUgY2FjaGUsIHVudGlsXG4gICAgICogdGhleSBhcmUgZXhwbGljaXRseSBkZWxldGVkIHdpdGggYGNhY2hlLmRlbGV0ZShrZXkpYCwgb3IgcmV0cmlldmVkIHdpdGhcbiAgICAgKiBgbm9EZWxldGVPblN0YWxlR2V0YCBzZXQgdG8gYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgcGFzc2luZyBhbiBvcHRpb25zIG9iamVjdCB0byBgY2FjaGUuZ2V0KClgLlxuICAgICAqXG4gICAgICogT25seSByZWxldmFudCBpZiBhIHR0bCBpcyB1c2VkLlxuICAgICAqL1xuICAgIG5vRGVsZXRlT25TdGFsZUdldD86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIHRvIGFsbG93IHJldHVybmluZyBzdGFsZSBkYXRhIHdoZW4gYVxuICAgICAqIHtAbGluayBPcHRpb25zQmFzZS5mZXRjaE1ldGhvZH0gdGhyb3dzIGFuIGVycm9yIG9yIHJldHVybnMgYSByZWplY3RlZFxuICAgICAqIHByb21pc2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGRpZmZlcnMgZnJvbSB1c2luZyB7QGxpbmsgT3B0aW9uc0Jhc2UuYWxsb3dTdGFsZX0gaW4gdGhhdCBzdGFsZVxuICAgICAqIGRhdGEgd2lsbCBPTkxZIGJlIHJldHVybmVkIGluIHRoZSBjYXNlIHRoYXQgdGhlIHtAbGluayBMUlVDYWNoZSNmZXRjaH1cbiAgICAgKiBmYWlscywgbm90IGFueSBvdGhlciB0aW1lcy5cbiAgICAgKlxuICAgICAqIElmIGEgYGZldGNoTWV0aG9kYCBmYWlscywgYW5kIHRoZXJlIGlzIG5vIHN0YWxlIHZhbHVlIGF2YWlsYWJsZSwgdGhlXG4gICAgICogYGZldGNoKClgIHdpbGwgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC4gSWUsIGFsbCBgZmV0Y2hNZXRob2RgIGVycm9ycyBhcmVcbiAgICAgKiBzdXBwcmVzc2VkLlxuICAgICAqXG4gICAgICogSW1wbGllcyBgbm9EZWxldGVPbkZldGNoUmVqZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWF5IGJlIHNldCBpbiBjYWxscyB0byBgZmV0Y2goKWAsIG9yIGRlZmF1bHRlZCBvbiB0aGUgY29uc3RydWN0b3IsXG4gICAgICogb3Igb3ZlcnJpZGRlbiBieSBtb2RpZnlpbmcgdGhlIG9wdGlvbnMgb2JqZWN0IGluIHRoZSBgZmV0Y2hNZXRob2RgLlxuICAgICAqL1xuICAgIGFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9uPzogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIHRydWUgdG8gcmV0dXJuIGEgc3RhbGUgdmFsdWUgZnJvbSB0aGUgY2FjaGUgd2hlbiB0aGVcbiAgICAgKiBgQWJvcnRTaWduYWxgIHBhc3NlZCB0byB0aGUge0BsaW5rIE9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSBkaXNwYXRjaGVzXG4gICAgICogYW4gYCdhYm9ydCdgIGV2ZW50LCB3aGV0aGVyIHVzZXItdHJpZ2dlcmVkLCBvciBkdWUgdG8gaW50ZXJuYWwgY2FjaGVcbiAgICAgKiBiZWhhdmlvci5cbiAgICAgKlxuICAgICAqIFVubGVzcyB7QGxpbmsgT3B0aW9uc0Jhc2UuaWdub3JlRmV0Y2hBYm9ydH0gaXMgYWxzbyBzZXQsIHRoZSB1bmRlcmx5aW5nXG4gICAgICoge0BsaW5rIE9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSB3aWxsIHN0aWxsIGJlIGNvbnNpZGVyZWQgY2FuY2VsZWQsIGFuZFxuICAgICAqIGFueSB2YWx1ZSBpdCByZXR1cm5zIHdpbGwgYmUgaWdub3JlZCBhbmQgbm90IGNhY2hlZC5cbiAgICAgKlxuICAgICAqIENhdmVhdDogc2luY2UgZmV0Y2hlcyBhcmUgYWJvcnRlZCB3aGVuIGEgbmV3IHZhbHVlIGlzIGV4cGxpY2l0bHlcbiAgICAgKiBzZXQgaW4gdGhlIGNhY2hlLCB0aGlzIGNhbiBsZWFkIHRvIGZldGNoIHJldHVybmluZyBhIHN0YWxlIHZhbHVlLFxuICAgICAqIHNpbmNlIHRoYXQgd2FzIHRoZSBmYWxsYmFjayB2YWx1ZSBfYXQgdGhlIG1vbWVudCB0aGUgYGZldGNoKClgIHdhc1xuICAgICAqIGluaXRpYXRlZF8sIGV2ZW4gdGhvdWdoIHRoZSBuZXcgdXBkYXRlZCB2YWx1ZSBpcyBub3cgcHJlc2VudCBpblxuICAgICAqIHRoZSBjYWNoZS5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqXG4gICAgICogYGBgdHNcbiAgICAgKiBjb25zdCBjYWNoZSA9IG5ldyBMUlVDYWNoZTxzdHJpbmcsIGFueT4oe1xuICAgICAqICAgdHRsOiAxMDAsXG4gICAgICogICBmZXRjaE1ldGhvZDogYXN5bmMgKHVybCwgb2xkVmFsdWUsIHsgc2lnbmFsIH0pID0+ICB7XG4gICAgICogICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwgeyBzaWduYWwgfSlcbiAgICAgKiAgICAgcmV0dXJuIGF3YWl0IHJlcy5qc29uKClcbiAgICAgKiAgIH1cbiAgICAgKiB9KVxuICAgICAqIGNhY2hlLnNldCgnaHR0cHM6Ly9leGFtcGxlLmNvbS8nLCB7IHNvbWU6ICdkYXRhJyB9KVxuICAgICAqIC8vIDEwMG1zIGdvIGJ5Li4uXG4gICAgICogY29uc3QgcmVzdWx0ID0gY2FjaGUuZmV0Y2goJ2h0dHBzOi8vZXhhbXBsZS5jb20vJylcbiAgICAgKiBjYWNoZS5zZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20vJywgeyBvdGhlcjogJ3RoaW5nJyB9KVxuICAgICAqIGNvbnNvbGUubG9nKGF3YWl0IHJlc3VsdCkgLy8geyBzb21lOiAnZGF0YScgfVxuICAgICAqIGNvbnNvbGUubG9nKGNhY2hlLmdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbS8nKSkgLy8geyBvdGhlcjogJ3RoaW5nJyB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydD86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIHRvIGlnbm9yZSB0aGUgYGFib3J0YCBldmVudCBlbWl0dGVkIGJ5IHRoZSBgQWJvcnRTaWduYWxgXG4gICAgICogb2JqZWN0IHBhc3NlZCB0byB7QGxpbmsgT3B0aW9uc0Jhc2UuZmV0Y2hNZXRob2R9LCBhbmQgc3RpbGwgY2FjaGUgdGhlXG4gICAgICogcmVzdWx0aW5nIHJlc29sdXRpb24gdmFsdWUsIGFzIGxvbmcgYXMgaXQgaXMgbm90IGB1bmRlZmluZWRgLlxuICAgICAqXG4gICAgICogV2hlbiB1c2VkIG9uIGl0cyBvd24sIHRoaXMgbWVhbnMgYWJvcnRlZCB7QGxpbmsgTFJVQ2FjaGUjZmV0Y2h9IGNhbGxzXG4gICAgICogYXJlIG5vdCBpbW1lZGlhdGVseSByZXNvbHZlZCBvciByZWplY3RlZCB3aGVuIHRoZXkgYXJlIGFib3J0ZWQsIGFuZFxuICAgICAqIGluc3RlYWQgdGFrZSB0aGUgZnVsbCB0aW1lIHRvIGF3YWl0LlxuICAgICAqXG4gICAgICogV2hlbiB1c2VkIHdpdGgge0BsaW5rIE9wdGlvbnNCYXNlLmFsbG93U3RhbGVPbkZldGNoQWJvcnR9LCBhYm9ydGVkXG4gICAgICoge0BsaW5rIExSVUNhY2hlI2ZldGNofSBjYWxscyB3aWxsIHJlc29sdmUgaW1tZWRpYXRlbHkgdG8gdGhlaXIgc3RhbGVcbiAgICAgKiBjYWNoZWQgdmFsdWUgb3IgYHVuZGVmaW5lZGAsIGFuZCB3aWxsIGNvbnRpbnVlIHRvIHByb2Nlc3MgYW5kIGV2ZW50dWFsbHlcbiAgICAgKiB1cGRhdGUgdGhlIGNhY2hlIHdoZW4gdGhleSByZXNvbHZlLCBhcyBsb25nIGFzIHRoZSByZXN1bHRpbmcgdmFsdWUgaXNcbiAgICAgKiBub3QgYHVuZGVmaW5lZGAsIHRodXMgc3VwcG9ydGluZyBhIFwicmV0dXJuIHN0YWxlIG9uIHRpbWVvdXQgd2hpbGVcbiAgICAgKiByZWZyZXNoaW5nXCIgbWVjaGFuaXNtIGJ5IHBhc3NpbmcgYEFib3J0U2lnbmFsLnRpbWVvdXQobilgIGFzIHRoZSBzaWduYWwuXG4gICAgICpcbiAgICAgKiBGb3IgZXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYHRzXG4gICAgICogY29uc3QgYyA9IG5ldyBMUlVDYWNoZSh7XG4gICAgICogICB0dGw6IDEwMCxcbiAgICAgKiAgIGlnbm9yZUZldGNoQWJvcnQ6IHRydWUsXG4gICAgICogICBhbGxvd1N0YWxlT25GZXRjaEFib3J0OiB0cnVlLFxuICAgICAqICAgZmV0Y2hNZXRob2Q6IGFzeW5jIChrZXksIG9sZFZhbHVlLCB7IHNpZ25hbCB9KSA9PiB7XG4gICAgICogICAgIC8vIG5vdGU6IGRvIE5PVCBwYXNzIHRoZSBzaWduYWwgdG8gZmV0Y2goKSFcbiAgICAgKiAgICAgLy8gbGV0J3Mgc2F5IHRoaXMgZmV0Y2ggY2FuIHRha2UgYSBsb25nIHRpbWUuXG4gICAgICogICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGBodHRwczovL3Nsb3ctYmFja2VuZC1zZXJ2ZXIvJHtrZXl9YClcbiAgICAgKiAgICAgcmV0dXJuIGF3YWl0IHJlcy5qc29uKClcbiAgICAgKiAgIH0sXG4gICAgICogfSlcbiAgICAgKlxuICAgICAqIC8vIHRoaXMgd2lsbCByZXR1cm4gdGhlIHN0YWxlIHZhbHVlIGFmdGVyIDEwMG1zLCB3aGlsZSBzdGlsbFxuICAgICAqIC8vIHVwZGF0aW5nIGluIHRoZSBiYWNrZ3JvdW5kIGZvciBuZXh0IHRpbWUuXG4gICAgICogY29uc3QgdmFsID0gYXdhaXQgYy5mZXRjaCgna2V5JywgeyBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTAwKSB9KVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogKipOb3RlKio6IHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nLCBhbiBgYWJvcnRgIGV2ZW50IF9pcyBzdGlsbFxuICAgICAqIGVtaXR0ZWQgb24gdGhlIGBBYm9ydFNpZ25hbGAgb2JqZWN0Xywgc28gbWF5IHJlc3VsdCBpbiBpbnZhbGlkIHJlc3VsdHNcbiAgICAgKiB3aGVuIHBhc3NlZCB0byBvdGhlciB1bmRlcmx5aW5nIEFQSXMgdGhhdCB1c2UgQWJvcnRTaWduYWxzLlxuICAgICAqXG4gICAgICogVGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBpbiB0aGUge0BsaW5rIE9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSBvciB0aGVcbiAgICAgKiBjYWxsIHRvIHtAbGluayBMUlVDYWNoZSNmZXRjaH0uXG4gICAgICovXG4gICAgaWdub3JlRmV0Y2hBYm9ydD86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIEluIHNvbWUgY2FzZXMsIHlvdSBtYXkgd2FudCB0byBzd2FwIG91dCB0aGUgcGVyZm9ybWFuY2UvRGF0ZSBvYmplY3RcbiAgICAgKiB1c2VkIGZvciBUVEwgdHJhY2tpbmcuIFRoaXMgc2hvdWxkIGFsbW9zdCBjZXJ0YWlubHkgTk9UIGJlIGRvbmUgaW5cbiAgICAgKiBwcm9kdWN0aW9uIGVudmlyb25tZW50cyFcbiAgICAgKlxuICAgICAqIFRoaXMgdmFsdWUgZGVmYXVsdHMgdG8gYGdsb2JhbC5wZXJmb3JtYW5jZWAgaWYgaXQgaGFzIGEgYG5vdygpYCBtZXRob2QsXG4gICAgICogb3IgdGhlIGBnbG9iYWwuRGF0ZWAgb2JqZWN0IG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwZXJmPzogUGVyZlxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zTWF4TGltaXQ8SywgViwgRkM+XG4gICAgZXh0ZW5kcyBPcHRpb25zQmFzZTxLLCBWLCBGQz4ge1xuICAgIG1heDogQ291bnRcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnNUVExMaW1pdDxLLCBWLCBGQz5cbiAgICBleHRlbmRzIE9wdGlvbnNCYXNlPEssIFYsIEZDPiB7XG4gICAgdHRsOiBNaWxsaXNlY29uZHNcbiAgICB0dGxBdXRvcHVyZ2U6IGJvb2xlYW5cbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnNTaXplTGltaXQ8SywgViwgRkM+XG4gICAgZXh0ZW5kcyBPcHRpb25zQmFzZTxLLCBWLCBGQz4ge1xuICAgIG1heFNpemU6IFNpemVcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsaWQgc2FmZSBvcHRpb25zIGZvciB0aGUge0BsaW5rIExSVUNhY2hlfSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgZXhwb3J0IHR5cGUgT3B0aW9uczxLLCBWLCBGQz4gPVxuICAgIHwgT3B0aW9uc01heExpbWl0PEssIFYsIEZDPlxuICAgIHwgT3B0aW9uc1NpemVMaW1pdDxLLCBWLCBGQz5cbiAgICB8IE9wdGlvbnNUVExMaW1pdDxLLCBWLCBGQz5cblxuICAvKipcbiAgICogRW50cnkgb2JqZWN0cyB1c2VkIGJ5IHtAbGluayBMUlVDYWNoZSNsb2FkfSBhbmQge0BsaW5rIExSVUNhY2hlI2R1bXB9LFxuICAgKiBhbmQgcmV0dXJuZWQgYnkge0BsaW5rIExSVUNhY2hlI2luZm99LlxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBFbnRyeTxWPiB7XG4gICAgdmFsdWU6IFZcbiAgICB0dGw/OiBNaWxsaXNlY29uZHNcbiAgICBzaXplPzogU2l6ZVxuICAgIHN0YXJ0PzogTWlsbGlzZWNvbmRzXG4gIH1cbn1cblxuLyoqXG4gKiBEZWZhdWx0IGV4cG9ydCwgdGhlIHRoaW5nIHlvdSdyZSB1c2luZyB0aGlzIG1vZHVsZSB0byBnZXQuXG4gKlxuICogVGhlIGBLYCBhbmQgYFZgIHR5cGVzIGRlZmluZSB0aGUga2V5IGFuZCB2YWx1ZSB0eXBlcywgcmVzcGVjdGl2ZWx5LiBUaGVcbiAqIG9wdGlvbmFsIGBGQ2AgdHlwZSBkZWZpbmVzIHRoZSB0eXBlIG9mIHRoZSBgY29udGV4dGAgb2JqZWN0IHBhc3NlZCB0b1xuICogYGNhY2hlLmZldGNoKClgIGFuZCBgY2FjaGUubWVtbygpYC5cbiAqXG4gKiBLZXlzIGFuZCB2YWx1ZXMgKiptdXN0IG5vdCoqIGJlIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAqXG4gKiBBbGwgcHJvcGVydGllcyBmcm9tIHRoZSBvcHRpb25zIG9iamVjdCAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIGBtYXhgLFxuICogYG1heFNpemVgLCBgZmV0Y2hNZXRob2RgLCBgbWVtb01ldGhvZGAsIGBkaXNwb3NlYCBhbmQgYGRpc3Bvc2VBZnRlcmApIGFyZVxuICogYWRkZWQgYXMgbm9ybWFsIHB1YmxpYyBtZW1iZXJzLiAoVGhlIGxpc3RlZCBvcHRpb25zIGFyZSByZWFkLW9ubHkgZ2V0dGVycy4pXG4gKlxuICogQ2hhbmdpbmcgYW55IG9mIHRoZXNlIHdpbGwgYWx0ZXIgdGhlIGRlZmF1bHRzIGZvciBzdWJzZXF1ZW50IG1ldGhvZCBjYWxscy5cbiAqL1xuZXhwb3J0IGNsYXNzIExSVUNhY2hlPEsgZXh0ZW5kcyB7fSwgViBleHRlbmRzIHt9LCBGQyA9IHVua25vd24+IHtcbiAgLy8gb3B0aW9ucyB0aGF0IGNhbm5vdCBiZSBjaGFuZ2VkIHdpdGhvdXQgZGlzYXN0ZXJcbiAgcmVhZG9ubHkgI21heDogTFJVQ2FjaGUuQ291bnRcbiAgcmVhZG9ubHkgI21heFNpemU6IExSVUNhY2hlLlNpemVcbiAgcmVhZG9ubHkgI2Rpc3Bvc2U/OiBMUlVDYWNoZS5EaXNwb3NlcjxLLCBWPlxuICByZWFkb25seSAjb25JbnNlcnQ/OiBMUlVDYWNoZS5JbnNlcnRlcjxLLCBWPlxuICByZWFkb25seSAjZGlzcG9zZUFmdGVyPzogTFJVQ2FjaGUuRGlzcG9zZXI8SywgVj5cbiAgcmVhZG9ubHkgI2ZldGNoTWV0aG9kPzogTFJVQ2FjaGUuRmV0Y2hlcjxLLCBWLCBGQz5cbiAgcmVhZG9ubHkgI21lbW9NZXRob2Q/OiBMUlVDYWNoZS5NZW1vaXplcjxLLCBWLCBGQz5cbiAgcmVhZG9ubHkgI3BlcmY6IFBlcmZcblxuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLnBlcmZ9XG4gICAqL1xuICBnZXQgcGVyZigpIHtcbiAgICByZXR1cm4gdGhpcy4jcGVyZlxuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS50dGx9XG4gICAqL1xuICB0dGw6IExSVUNhY2hlLk1pbGxpc2Vjb25kc1xuXG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UudHRsUmVzb2x1dGlvbn1cbiAgICovXG4gIHR0bFJlc29sdXRpb246IExSVUNhY2hlLk1pbGxpc2Vjb25kc1xuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLnR0bEF1dG9wdXJnZX1cbiAgICovXG4gIHR0bEF1dG9wdXJnZTogYm9vbGVhblxuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLnVwZGF0ZUFnZU9uR2V0fVxuICAgKi9cbiAgdXBkYXRlQWdlT25HZXQ6IGJvb2xlYW5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS51cGRhdGVBZ2VPbkhhc31cbiAgICovXG4gIHVwZGF0ZUFnZU9uSGFzOiBib29sZWFuXG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UuYWxsb3dTdGFsZX1cbiAgICovXG4gIGFsbG93U3RhbGU6IGJvb2xlYW5cblxuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLm5vRGlzcG9zZU9uU2V0fVxuICAgKi9cbiAgbm9EaXNwb3NlT25TZXQ6IGJvb2xlYW5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5ub1VwZGF0ZVRUTH1cbiAgICovXG4gIG5vVXBkYXRlVFRMOiBib29sZWFuXG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UubWF4RW50cnlTaXplfVxuICAgKi9cbiAgbWF4RW50cnlTaXplOiBMUlVDYWNoZS5TaXplXG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2Uuc2l6ZUNhbGN1bGF0aW9ufVxuICAgKi9cbiAgc2l6ZUNhbGN1bGF0aW9uPzogTFJVQ2FjaGUuU2l6ZUNhbGN1bGF0b3I8SywgVj5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5ub0RlbGV0ZU9uRmV0Y2hSZWplY3Rpb259XG4gICAqL1xuICBub0RlbGV0ZU9uRmV0Y2hSZWplY3Rpb246IGJvb2xlYW5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5ub0RlbGV0ZU9uU3RhbGVHZXR9XG4gICAqL1xuICBub0RlbGV0ZU9uU3RhbGVHZXQ6IGJvb2xlYW5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5hbGxvd1N0YWxlT25GZXRjaEFib3J0fVxuICAgKi9cbiAgYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydDogYm9vbGVhblxuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLmFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9ufVxuICAgKi9cbiAgYWxsb3dTdGFsZU9uRmV0Y2hSZWplY3Rpb246IGJvb2xlYW5cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5pZ25vcmVGZXRjaEFib3J0fVxuICAgKi9cbiAgaWdub3JlRmV0Y2hBYm9ydDogYm9vbGVhblxuXG4gIC8vIGNvbXB1dGVkIHByb3BlcnRpZXNcbiAgI3NpemU6IExSVUNhY2hlLkNvdW50XG4gICNjYWxjdWxhdGVkU2l6ZTogTFJVQ2FjaGUuU2l6ZVxuICAja2V5TWFwOiBNYXA8SywgSW5kZXg+XG4gICNrZXlMaXN0OiAoSyB8IHVuZGVmaW5lZClbXVxuICAjdmFsTGlzdDogKFYgfCBCYWNrZ3JvdW5kRmV0Y2g8Vj4gfCB1bmRlZmluZWQpW11cbiAgI25leHQ6IE51bWJlckFycmF5XG4gICNwcmV2OiBOdW1iZXJBcnJheVxuICAjaGVhZDogSW5kZXhcbiAgI3RhaWw6IEluZGV4XG4gICNmcmVlOiBTdGFja0xpa2VcbiAgI2Rpc3Bvc2VkPzogRGlzcG9zZVRhc2s8SywgVj5bXVxuICAjc2l6ZXM/OiBaZXJvQXJyYXlcbiAgI3N0YXJ0cz86IFplcm9BcnJheVxuICAjdHRscz86IFplcm9BcnJheVxuICAjYXV0b3B1cmdlVGltZXJzPzogKHVuZGVmaW5lZCB8IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+KVtdXG5cbiAgI2hhc0Rpc3Bvc2U6IGJvb2xlYW5cbiAgI2hhc0ZldGNoTWV0aG9kOiBib29sZWFuXG4gICNoYXNEaXNwb3NlQWZ0ZXI6IGJvb2xlYW5cbiAgI2hhc09uSW5zZXJ0OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIERvIG5vdCBjYWxsIHRoaXMgbWV0aG9kIHVubGVzcyB5b3UgbmVlZCB0byBpbnNwZWN0IHRoZVxuICAgKiBpbm5lciB3b3JraW5ncyBvZiB0aGUgY2FjaGUuICBJZiBhbnl0aGluZyByZXR1cm5lZCBieSB0aGlzXG4gICAqIG9iamVjdCBpcyBtb2RpZmllZCBpbiBhbnkgd2F5LCBzdHJhbmdlIGJyZWFrYWdlIG1heSBvY2N1ci5cbiAgICpcbiAgICogVGhlc2UgZmllbGRzIGFyZSBwcml2YXRlIGZvciBhIHJlYXNvbiFcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdGF0aWMgdW5zYWZlRXhwb3NlSW50ZXJuYWxzPFxuICAgIEsgZXh0ZW5kcyB7fSxcbiAgICBWIGV4dGVuZHMge30sXG4gICAgRkMgZXh0ZW5kcyB1bmtub3duID0gdW5rbm93bixcbiAgPihjOiBMUlVDYWNoZTxLLCBWLCBGQz4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gcHJvcGVydGllc1xuICAgICAgc3RhcnRzOiBjLiNzdGFydHMsXG4gICAgICB0dGxzOiBjLiN0dGxzLFxuICAgICAgYXV0b3B1cmdlVGltZXJzOiBjLiNhdXRvcHVyZ2VUaW1lcnMsXG4gICAgICBzaXplczogYy4jc2l6ZXMsXG4gICAgICBrZXlNYXA6IGMuI2tleU1hcCBhcyBNYXA8SywgbnVtYmVyPixcbiAgICAgIGtleUxpc3Q6IGMuI2tleUxpc3QsXG4gICAgICB2YWxMaXN0OiBjLiN2YWxMaXN0LFxuICAgICAgbmV4dDogYy4jbmV4dCxcbiAgICAgIHByZXY6IGMuI3ByZXYsXG4gICAgICBnZXQgaGVhZCgpIHtcbiAgICAgICAgcmV0dXJuIGMuI2hlYWRcbiAgICAgIH0sXG4gICAgICBnZXQgdGFpbCgpIHtcbiAgICAgICAgcmV0dXJuIGMuI3RhaWxcbiAgICAgIH0sXG4gICAgICBmcmVlOiBjLiNmcmVlLFxuICAgICAgLy8gbWV0aG9kc1xuICAgICAgaXNCYWNrZ3JvdW5kRmV0Y2g6IChwOiBhbnkpID0+IGMuI2lzQmFja2dyb3VuZEZldGNoKHApLFxuICAgICAgYmFja2dyb3VuZEZldGNoOiAoXG4gICAgICAgIGs6IEssXG4gICAgICAgIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgICAgIG9wdGlvbnM6IExSVUNhY2hlLkZldGNoT3B0aW9uczxLLCBWLCBGQz4sXG4gICAgICAgIGNvbnRleHQ6IGFueSxcbiAgICAgICk6IEJhY2tncm91bmRGZXRjaDxWPiA9PlxuICAgICAgICBjLiNiYWNrZ3JvdW5kRmV0Y2goXG4gICAgICAgICAgayxcbiAgICAgICAgICBpbmRleCBhcyBJbmRleCB8IHVuZGVmaW5lZCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICksXG4gICAgICBtb3ZlVG9UYWlsOiAoaW5kZXg6IG51bWJlcik6IHZvaWQgPT4gYy4jbW92ZVRvVGFpbChpbmRleCBhcyBJbmRleCksXG4gICAgICBpbmRleGVzOiAob3B0aW9ucz86IHsgYWxsb3dTdGFsZTogYm9vbGVhbiB9KSA9PiBjLiNpbmRleGVzKG9wdGlvbnMpLFxuICAgICAgcmluZGV4ZXM6IChvcHRpb25zPzogeyBhbGxvd1N0YWxlOiBib29sZWFuIH0pID0+XG4gICAgICAgIGMuI3JpbmRleGVzKG9wdGlvbnMpLFxuICAgICAgaXNTdGFsZTogKGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQpID0+IGMuI2lzU3RhbGUoaW5kZXggYXMgSW5kZXgpLFxuICAgIH1cbiAgfVxuXG4gIC8vIFByb3RlY3RlZCByZWFkLW9ubHkgbWVtYmVyc1xuXG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UubWF4fSAocmVhZC1vbmx5KVxuICAgKi9cbiAgZ2V0IG1heCgpOiBMUlVDYWNoZS5Db3VudCB7XG4gICAgcmV0dXJuIHRoaXMuI21heFxuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UubWF4U2l6ZX0gKHJlYWQtb25seSlcbiAgICovXG4gIGdldCBtYXhTaXplKCk6IExSVUNhY2hlLkNvdW50IHtcbiAgICByZXR1cm4gdGhpcy4jbWF4U2l6ZVxuICB9XG4gIC8qKlxuICAgKiBUaGUgdG90YWwgY29tcHV0ZWQgc2l6ZSBvZiBpdGVtcyBpbiB0aGUgY2FjaGUgKHJlYWQtb25seSlcbiAgICovXG4gIGdldCBjYWxjdWxhdGVkU2l6ZSgpOiBMUlVDYWNoZS5TaXplIHtcbiAgICByZXR1cm4gdGhpcy4jY2FsY3VsYXRlZFNpemVcbiAgfVxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBpdGVtcyBzdG9yZWQgaW4gdGhlIGNhY2hlIChyZWFkLW9ubHkpXG4gICAqL1xuICBnZXQgc2l6ZSgpOiBMUlVDYWNoZS5Db3VudCB7XG4gICAgcmV0dXJuIHRoaXMuI3NpemVcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSAocmVhZC1vbmx5KVxuICAgKi9cbiAgZ2V0IGZldGNoTWV0aG9kKCk6IExSVUNhY2hlLkZldGNoZXI8SywgViwgRkM+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jZmV0Y2hNZXRob2RcbiAgfVxuICBnZXQgbWVtb01ldGhvZCgpOiBMUlVDYWNoZS5NZW1vaXplcjxLLCBWLCBGQz4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNtZW1vTWV0aG9kXG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5kaXNwb3NlfSAocmVhZC1vbmx5KVxuICAgKi9cbiAgZ2V0IGRpc3Bvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2Rpc3Bvc2VcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLm9uSW5zZXJ0fSAocmVhZC1vbmx5KVxuICAgKi9cbiAgZ2V0IG9uSW5zZXJ0KCkge1xuICAgIHJldHVybiB0aGlzLiNvbkluc2VydFxuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UuZGlzcG9zZUFmdGVyfSAocmVhZC1vbmx5KVxuICAgKi9cbiAgZ2V0IGRpc3Bvc2VBZnRlcigpIHtcbiAgICByZXR1cm4gdGhpcy4jZGlzcG9zZUFmdGVyXG4gIH1cblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMUlVDYWNoZS5PcHRpb25zPEssIFYsIEZDPiB8IExSVUNhY2hlPEssIFYsIEZDPikge1xuICAgIGNvbnN0IHtcbiAgICAgIG1heCA9IDAsXG4gICAgICB0dGwsXG4gICAgICB0dGxSZXNvbHV0aW9uID0gMSxcbiAgICAgIHR0bEF1dG9wdXJnZSxcbiAgICAgIHVwZGF0ZUFnZU9uR2V0LFxuICAgICAgdXBkYXRlQWdlT25IYXMsXG4gICAgICBhbGxvd1N0YWxlLFxuICAgICAgZGlzcG9zZSxcbiAgICAgIG9uSW5zZXJ0LFxuICAgICAgZGlzcG9zZUFmdGVyLFxuICAgICAgbm9EaXNwb3NlT25TZXQsXG4gICAgICBub1VwZGF0ZVRUTCxcbiAgICAgIG1heFNpemUgPSAwLFxuICAgICAgbWF4RW50cnlTaXplID0gMCxcbiAgICAgIHNpemVDYWxjdWxhdGlvbixcbiAgICAgIGZldGNoTWV0aG9kLFxuICAgICAgbWVtb01ldGhvZCxcbiAgICAgIG5vRGVsZXRlT25GZXRjaFJlamVjdGlvbixcbiAgICAgIG5vRGVsZXRlT25TdGFsZUdldCxcbiAgICAgIGFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9uLFxuICAgICAgYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydCxcbiAgICAgIGlnbm9yZUZldGNoQWJvcnQsXG4gICAgICBwZXJmLFxuICAgIH0gPSBvcHRpb25zXG5cbiAgICBpZiAocGVyZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIHBlcmY/Lm5vdyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdwZXJmIG9wdGlvbiBtdXN0IGhhdmUgYSBub3coKSBtZXRob2QgaWYgc3BlY2lmaWVkJyxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI3BlcmYgPSBwZXJmID8/IGRlZmF1bHRQZXJmXG5cbiAgICBpZiAobWF4ICE9PSAwICYmICFpc1Bvc0ludChtYXgpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtYXggb3B0aW9uIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyJylcbiAgICB9XG5cbiAgICBjb25zdCBVaW50QXJyYXkgPSBtYXggPyBnZXRVaW50QXJyYXkobWF4KSA6IEFycmF5XG4gICAgaWYgKCFVaW50QXJyYXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBtYXggdmFsdWU6ICcgKyBtYXgpXG4gICAgfVxuXG4gICAgdGhpcy4jbWF4ID0gbWF4XG4gICAgdGhpcy4jbWF4U2l6ZSA9IG1heFNpemVcbiAgICB0aGlzLm1heEVudHJ5U2l6ZSA9IG1heEVudHJ5U2l6ZSB8fCB0aGlzLiNtYXhTaXplXG4gICAgdGhpcy5zaXplQ2FsY3VsYXRpb24gPSBzaXplQ2FsY3VsYXRpb25cbiAgICBpZiAodGhpcy5zaXplQ2FsY3VsYXRpb24pIHtcbiAgICAgIGlmICghdGhpcy4jbWF4U2l6ZSAmJiAhdGhpcy5tYXhFbnRyeVNpemUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnY2Fubm90IHNldCBzaXplQ2FsY3VsYXRpb24gd2l0aG91dCBzZXR0aW5nIG1heFNpemUgb3IgbWF4RW50cnlTaXplJyxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnNpemVDYWxjdWxhdGlvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaXplQ2FsY3VsYXRpb24gc2V0IHRvIG5vbi1mdW5jdGlvbicpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1lbW9NZXRob2QgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgbWVtb01ldGhvZCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWVtb01ldGhvZCBtdXN0IGJlIGEgZnVuY3Rpb24gaWYgZGVmaW5lZCcpXG4gICAgfVxuICAgIHRoaXMuI21lbW9NZXRob2QgPSBtZW1vTWV0aG9kXG5cbiAgICBpZiAoZmV0Y2hNZXRob2QgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZmV0Y2hNZXRob2QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZldGNoTWV0aG9kIG11c3QgYmUgYSBmdW5jdGlvbiBpZiBzcGVjaWZpZWQnKVxuICAgIH1cbiAgICB0aGlzLiNmZXRjaE1ldGhvZCA9IGZldGNoTWV0aG9kXG4gICAgdGhpcy4jaGFzRmV0Y2hNZXRob2QgPSAhIWZldGNoTWV0aG9kXG5cbiAgICB0aGlzLiNrZXlNYXAgPSBuZXcgTWFwKClcbiAgICB0aGlzLiNrZXlMaXN0ID0gbmV3IEFycmF5KG1heCkuZmlsbCh1bmRlZmluZWQpXG4gICAgdGhpcy4jdmFsTGlzdCA9IG5ldyBBcnJheShtYXgpLmZpbGwodW5kZWZpbmVkKVxuICAgIHRoaXMuI25leHQgPSBuZXcgVWludEFycmF5KG1heClcbiAgICB0aGlzLiNwcmV2ID0gbmV3IFVpbnRBcnJheShtYXgpXG4gICAgdGhpcy4jaGVhZCA9IDAgYXMgSW5kZXhcbiAgICB0aGlzLiN0YWlsID0gMCBhcyBJbmRleFxuICAgIHRoaXMuI2ZyZWUgPSBTdGFjay5jcmVhdGUobWF4KVxuICAgIHRoaXMuI3NpemUgPSAwXG4gICAgdGhpcy4jY2FsY3VsYXRlZFNpemUgPSAwXG5cbiAgICBpZiAodHlwZW9mIGRpc3Bvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuI2Rpc3Bvc2UgPSBkaXNwb3NlXG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb25JbnNlcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuI29uSW5zZXJ0ID0gb25JbnNlcnRcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlQWZ0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuI2Rpc3Bvc2VBZnRlciA9IGRpc3Bvc2VBZnRlclxuICAgICAgdGhpcy4jZGlzcG9zZWQgPSBbXVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNkaXNwb3NlQWZ0ZXIgPSB1bmRlZmluZWRcbiAgICAgIHRoaXMuI2Rpc3Bvc2VkID0gdW5kZWZpbmVkXG4gICAgfVxuICAgIHRoaXMuI2hhc0Rpc3Bvc2UgPSAhIXRoaXMuI2Rpc3Bvc2VcbiAgICB0aGlzLiNoYXNPbkluc2VydCA9ICEhdGhpcy4jb25JbnNlcnRcbiAgICB0aGlzLiNoYXNEaXNwb3NlQWZ0ZXIgPSAhIXRoaXMuI2Rpc3Bvc2VBZnRlclxuXG4gICAgdGhpcy5ub0Rpc3Bvc2VPblNldCA9ICEhbm9EaXNwb3NlT25TZXRcbiAgICB0aGlzLm5vVXBkYXRlVFRMID0gISFub1VwZGF0ZVRUTFxuICAgIHRoaXMubm9EZWxldGVPbkZldGNoUmVqZWN0aW9uID0gISFub0RlbGV0ZU9uRmV0Y2hSZWplY3Rpb25cbiAgICB0aGlzLmFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9uID0gISFhbGxvd1N0YWxlT25GZXRjaFJlamVjdGlvblxuICAgIHRoaXMuYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydCA9ICEhYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydFxuICAgIHRoaXMuaWdub3JlRmV0Y2hBYm9ydCA9ICEhaWdub3JlRmV0Y2hBYm9ydFxuXG4gICAgLy8gTkI6IG1heEVudHJ5U2l6ZSBpcyBzZXQgdG8gbWF4U2l6ZSBpZiBpdCdzIHNldFxuICAgIGlmICh0aGlzLm1heEVudHJ5U2l6ZSAhPT0gMCkge1xuICAgICAgaWYgKHRoaXMuI21heFNpemUgIT09IDApIHtcbiAgICAgICAgaWYgKCFpc1Bvc0ludCh0aGlzLiNtYXhTaXplKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAnbWF4U2l6ZSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciBpZiBzcGVjaWZpZWQnLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpc1Bvc0ludCh0aGlzLm1heEVudHJ5U2l6ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnbWF4RW50cnlTaXplIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIGlmIHNwZWNpZmllZCcsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHRoaXMuI2luaXRpYWxpemVTaXplVHJhY2tpbmcoKVxuICAgIH1cblxuICAgIHRoaXMuYWxsb3dTdGFsZSA9ICEhYWxsb3dTdGFsZVxuICAgIHRoaXMubm9EZWxldGVPblN0YWxlR2V0ID0gISFub0RlbGV0ZU9uU3RhbGVHZXRcbiAgICB0aGlzLnVwZGF0ZUFnZU9uR2V0ID0gISF1cGRhdGVBZ2VPbkdldFxuICAgIHRoaXMudXBkYXRlQWdlT25IYXMgPSAhIXVwZGF0ZUFnZU9uSGFzXG4gICAgdGhpcy50dGxSZXNvbHV0aW9uID1cbiAgICAgIGlzUG9zSW50KHR0bFJlc29sdXRpb24pIHx8IHR0bFJlc29sdXRpb24gPT09IDAgPyB0dGxSZXNvbHV0aW9uIDogMVxuICAgIHRoaXMudHRsQXV0b3B1cmdlID0gISF0dGxBdXRvcHVyZ2VcbiAgICB0aGlzLnR0bCA9IHR0bCB8fCAwXG4gICAgaWYgKHRoaXMudHRsKSB7XG4gICAgICBpZiAoIWlzUG9zSW50KHRoaXMudHRsKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0dGwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgaWYgc3BlY2lmaWVkJylcbiAgICAgIH1cbiAgICAgIHRoaXMuI2luaXRpYWxpemVUVExUcmFja2luZygpXG4gICAgfVxuXG4gICAgLy8gZG8gbm90IGFsbG93IGNvbXBsZXRlbHkgdW5ib3VuZGVkIGNhY2hlc1xuICAgIGlmICh0aGlzLiNtYXggPT09IDAgJiYgdGhpcy50dGwgPT09IDAgJiYgdGhpcy4jbWF4U2l6ZSA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ0F0IGxlYXN0IG9uZSBvZiBtYXgsIG1heFNpemUsIG9yIHR0bCBpcyByZXF1aXJlZCcsXG4gICAgICApXG4gICAgfVxuICAgIGlmICghdGhpcy50dGxBdXRvcHVyZ2UgJiYgIXRoaXMuI21heCAmJiAhdGhpcy4jbWF4U2l6ZSkge1xuICAgICAgY29uc3QgY29kZSA9ICdMUlVfQ0FDSEVfVU5CT1VOREVEJ1xuICAgICAgaWYgKHNob3VsZFdhcm4oY29kZSkpIHtcbiAgICAgICAgd2FybmVkLmFkZChjb2RlKVxuICAgICAgICBjb25zdCBtc2cgPVxuICAgICAgICAgICdUVEwgY2FjaGluZyB3aXRob3V0IHR0bEF1dG9wdXJnZSwgbWF4LCBvciBtYXhTaXplIGNhbiAnICtcbiAgICAgICAgICAncmVzdWx0IGluIHVuYm91bmRlZCBtZW1vcnkgY29uc3VtcHRpb24uJ1xuICAgICAgICBlbWl0V2FybmluZyhtc2csICdVbmJvdW5kZWRDYWNoZVdhcm5pbmcnLCBjb2RlLCBMUlVDYWNoZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgbXMgbGVmdCBpbiB0aGUgaXRlbSdzIFRUTC4gSWYgaXRlbSBpcyBub3QgaW4gY2FjaGUsXG4gICAqIHJldHVybnMgYDBgLiBSZXR1cm5zIGBJbmZpbml0eWAgaWYgaXRlbSBpcyBpbiBjYWNoZSB3aXRob3V0IGEgZGVmaW5lZCBUVEwuXG4gICAqL1xuICBnZXRSZW1haW5pbmdUVEwoa2V5OiBLKSB7XG4gICAgcmV0dXJuIHRoaXMuI2tleU1hcC5oYXMoa2V5KSA/IEluZmluaXR5IDogMFxuICB9XG5cbiAgI2luaXRpYWxpemVUVExUcmFja2luZygpIHtcbiAgICBjb25zdCB0dGxzID0gbmV3IFplcm9BcnJheSh0aGlzLiNtYXgpXG4gICAgY29uc3Qgc3RhcnRzID0gbmV3IFplcm9BcnJheSh0aGlzLiNtYXgpXG4gICAgdGhpcy4jdHRscyA9IHR0bHNcbiAgICB0aGlzLiNzdGFydHMgPSBzdGFydHNcbiAgICBjb25zdCBwdXJnZVRpbWVycyA9XG4gICAgICB0aGlzLnR0bEF1dG9wdXJnZSA/XG4gICAgICAgIG5ldyBBcnJheTx1bmRlZmluZWQgfCBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odGhpcy4jbWF4KVxuICAgICAgOiB1bmRlZmluZWRcbiAgICB0aGlzLiNhdXRvcHVyZ2VUaW1lcnMgPSBwdXJnZVRpbWVyc1xuXG4gICAgdGhpcy4jc2V0SXRlbVRUTCA9IChpbmRleCwgdHRsLCBzdGFydCA9IHRoaXMuI3BlcmYubm93KCkpID0+IHtcbiAgICAgIHN0YXJ0c1tpbmRleF0gPSB0dGwgIT09IDAgPyBzdGFydCA6IDBcbiAgICAgIHR0bHNbaW5kZXhdID0gdHRsXG4gICAgICBzZXRQdXJnZXRUaW1lcihpbmRleCwgdHRsKVxuICAgIH1cblxuICAgIHRoaXMuI3VwZGF0ZUl0ZW1BZ2UgPSBpbmRleCA9PiB7XG4gICAgICBzdGFydHNbaW5kZXhdID0gdHRsc1tpbmRleF0gIT09IDAgPyB0aGlzLiNwZXJmLm5vdygpIDogMFxuICAgICAgc2V0UHVyZ2V0VGltZXIoaW5kZXgsIHR0bHNbaW5kZXhdKVxuICAgIH1cblxuICAgIC8vIGNsZWFyIG91dCB0aGUgcHVyZ2UgdGltZXIgaWYgd2UncmUgc2V0dGluZyBUVEwgdG8gMCwgYW5kXG4gICAgLy8gcHJldmlvdXNseSBoYWQgYSB0dGwgcHVyZ2UgdGltZXIgcnVubmluZywgc28gaXQgZG9lc24ndFxuICAgIC8vIGZpcmUgdW5uZWNlc3NhcmlseS4gRG9uJ3QgbmVlZCB0byBkbyB0aGlzIGlmIHdlJ3JlIG5vdCBkb2luZ1xuICAgIC8vIGF1dG9wdXJnZS5cbiAgICBjb25zdCBzZXRQdXJnZXRUaW1lciA9XG4gICAgICAhdGhpcy50dGxBdXRvcHVyZ2UgP1xuICAgICAgICAoKSA9PiB7fVxuICAgICAgOiAoaW5kZXg6IEluZGV4LCB0dGw/OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBpZiAocHVyZ2VUaW1lcnM/LltpbmRleF0pIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChwdXJnZVRpbWVyc1tpbmRleF0pXG4gICAgICAgICAgICBwdXJnZVRpbWVyc1tpbmRleF0gPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR0bCAmJiB0dGwgIT09IDAgJiYgcHVyZ2VUaW1lcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuI2lzU3RhbGUoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jZGVsZXRlKHRoaXMuI2tleUxpc3RbaW5kZXhdIGFzIEssICdleHBpcmUnKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB0dGwgKyAxKVxuICAgICAgICAgICAgLy8gdW5yZWYoKSBub3Qgc3VwcG9ydGVkIG9uIGFsbCBwbGF0Zm9ybXNcbiAgICAgICAgICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgICAgICAgICAgaWYgKHQudW5yZWYpIHtcbiAgICAgICAgICAgICAgdC51bnJlZigpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuICAgICAgICAgICAgcHVyZ2VUaW1lcnNbaW5kZXhdID0gdFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgdGhpcy4jc3RhdHVzVFRMID0gKHN0YXR1cywgaW5kZXgpID0+IHtcbiAgICAgIGlmICh0dGxzW2luZGV4XSkge1xuICAgICAgICBjb25zdCB0dGwgPSB0dGxzW2luZGV4XVxuICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0c1tpbmRleF1cbiAgICAgICAgLyogYzggaWdub3JlIG5leHQgKi9cbiAgICAgICAgaWYgKCF0dGwgfHwgIXN0YXJ0KSByZXR1cm5cbiAgICAgICAgc3RhdHVzLnR0bCA9IHR0bFxuICAgICAgICBzdGF0dXMuc3RhcnQgPSBzdGFydFxuICAgICAgICBzdGF0dXMubm93ID0gY2FjaGVkTm93IHx8IGdldE5vdygpXG4gICAgICAgIGNvbnN0IGFnZSA9IHN0YXR1cy5ub3cgLSBzdGFydFxuICAgICAgICBzdGF0dXMucmVtYWluaW5nVFRMID0gdHRsIC0gYWdlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGVib3VuY2UgY2FsbHMgdG8gcGVyZi5ub3coKSB0byAxcyBzbyB3ZSdyZSBub3QgaGl0dGluZ1xuICAgIC8vIHRoYXQgY29zdGx5IGNhbGwgcmVwZWF0ZWRseS5cbiAgICBsZXQgY2FjaGVkTm93ID0gMFxuICAgIGNvbnN0IGdldE5vdyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG4gPSB0aGlzLiNwZXJmLm5vdygpXG4gICAgICBpZiAodGhpcy50dGxSZXNvbHV0aW9uID4gMCkge1xuICAgICAgICBjYWNoZWROb3cgPSBuXG4gICAgICAgIGNvbnN0IHQgPSBzZXRUaW1lb3V0KCgpID0+IChjYWNoZWROb3cgPSAwKSwgdGhpcy50dGxSZXNvbHV0aW9uKVxuICAgICAgICAvLyBub3QgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXNcbiAgICAgICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgICAgIGlmICh0LnVucmVmKSB7XG4gICAgICAgICAgdC51bnJlZigpXG4gICAgICAgIH1cbiAgICAgICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICAgIH1cbiAgICAgIHJldHVybiBuXG4gICAgfVxuXG4gICAgdGhpcy5nZXRSZW1haW5pbmdUVEwgPSBrZXkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLiNrZXlNYXAuZ2V0KGtleSlcbiAgICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9XG4gICAgICBjb25zdCB0dGwgPSB0dGxzW2luZGV4XVxuICAgICAgY29uc3Qgc3RhcnQgPSBzdGFydHNbaW5kZXhdXG4gICAgICBpZiAoIXR0bCB8fCAhc3RhcnQpIHtcbiAgICAgICAgcmV0dXJuIEluZmluaXR5XG4gICAgICB9XG4gICAgICBjb25zdCBhZ2UgPSAoY2FjaGVkTm93IHx8IGdldE5vdygpKSAtIHN0YXJ0XG4gICAgICByZXR1cm4gdHRsIC0gYWdlXG4gICAgfVxuXG4gICAgdGhpcy4jaXNTdGFsZSA9IGluZGV4ID0+IHtcbiAgICAgIGNvbnN0IHMgPSBzdGFydHNbaW5kZXhdXG4gICAgICBjb25zdCB0ID0gdHRsc1tpbmRleF1cbiAgICAgIHJldHVybiAhIXQgJiYgISFzICYmIChjYWNoZWROb3cgfHwgZ2V0Tm93KCkpIC0gcyA+IHRcbiAgICB9XG4gIH1cblxuICAvLyBjb25kaXRpb25hbGx5IHNldCBwcml2YXRlIG1ldGhvZHMgcmVsYXRlZCB0byBUVExcbiAgI3VwZGF0ZUl0ZW1BZ2U6IChpbmRleDogSW5kZXgpID0+IHZvaWQgPSAoKSA9PiB7fVxuICAjc3RhdHVzVFRMOiAoc3RhdHVzOiBMUlVDYWNoZS5TdGF0dXM8Vj4sIGluZGV4OiBJbmRleCkgPT4gdm9pZCA9ICgpID0+IHt9XG4gICNzZXRJdGVtVFRMOiAoXG4gICAgaW5kZXg6IEluZGV4LFxuICAgIHR0bDogTFJVQ2FjaGUuTWlsbGlzZWNvbmRzLFxuICAgIHN0YXJ0PzogTFJVQ2FjaGUuTWlsbGlzZWNvbmRzLFxuICAgIC8vIGlnbm9yZSBiZWNhdXNlIHdlIG5ldmVyIGNhbGwgdGhpcyBpZiB3ZSdyZSBub3QgYWxyZWFkeSBpbiBUVEwgbW9kZVxuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICApID0+IHZvaWQgPSAoKSA9PiB7fVxuICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG4gICNpc1N0YWxlOiAoaW5kZXg6IEluZGV4KSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2VcblxuICAjaW5pdGlhbGl6ZVNpemVUcmFja2luZygpIHtcbiAgICBjb25zdCBzaXplcyA9IG5ldyBaZXJvQXJyYXkodGhpcy4jbWF4KVxuICAgIHRoaXMuI2NhbGN1bGF0ZWRTaXplID0gMFxuICAgIHRoaXMuI3NpemVzID0gc2l6ZXNcbiAgICB0aGlzLiNyZW1vdmVJdGVtU2l6ZSA9IGluZGV4ID0+IHtcbiAgICAgIHRoaXMuI2NhbGN1bGF0ZWRTaXplIC09IHNpemVzW2luZGV4XSBhcyBudW1iZXJcbiAgICAgIHNpemVzW2luZGV4XSA9IDBcbiAgICB9XG4gICAgdGhpcy4jcmVxdWlyZVNpemUgPSAoaywgdiwgc2l6ZSwgc2l6ZUNhbGN1bGF0aW9uKSA9PiB7XG4gICAgICAvLyBwcm92aXNpb25hbGx5IGFjY2VwdCBiYWNrZ3JvdW5kIGZldGNoZXMuXG4gICAgICAvLyBhY3R1YWwgdmFsdWUgc2l6ZSB3aWxsIGJlIGNoZWNrZWQgd2hlbiB0aGV5IHJldHVybi5cbiAgICAgIGlmICh0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh2KSkge1xuICAgICAgICByZXR1cm4gMFxuICAgICAgfVxuICAgICAgaWYgKCFpc1Bvc0ludChzaXplKSkge1xuICAgICAgICBpZiAoc2l6ZUNhbGN1bGF0aW9uKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBzaXplQ2FsY3VsYXRpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3NpemVDYWxjdWxhdGlvbiBtdXN0IGJlIGEgZnVuY3Rpb24nKVxuICAgICAgICAgIH1cbiAgICAgICAgICBzaXplID0gc2l6ZUNhbGN1bGF0aW9uKHYsIGspXG4gICAgICAgICAgaWYgKCFpc1Bvc0ludChzaXplKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgJ3NpemVDYWxjdWxhdGlvbiByZXR1cm4gaW52YWxpZCAoZXhwZWN0IHBvc2l0aXZlIGludGVnZXIpJyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICdpbnZhbGlkIHNpemUgdmFsdWUgKG11c3QgYmUgcG9zaXRpdmUgaW50ZWdlcikuICcgK1xuICAgICAgICAgICAgICAnV2hlbiBtYXhTaXplIG9yIG1heEVudHJ5U2l6ZSBpcyB1c2VkLCBzaXplQ2FsY3VsYXRpb24gJyArXG4gICAgICAgICAgICAgICdvciBzaXplIG11c3QgYmUgc2V0LicsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc2l6ZVxuICAgIH1cbiAgICB0aGlzLiNhZGRJdGVtU2l6ZSA9IChcbiAgICAgIGluZGV4OiBJbmRleCxcbiAgICAgIHNpemU6IExSVUNhY2hlLlNpemUsXG4gICAgICBzdGF0dXM/OiBMUlVDYWNoZS5TdGF0dXM8Vj4sXG4gICAgKSA9PiB7XG4gICAgICBzaXplc1tpbmRleF0gPSBzaXplXG4gICAgICBpZiAodGhpcy4jbWF4U2l6ZSkge1xuICAgICAgICBjb25zdCBtYXhTaXplID0gdGhpcy4jbWF4U2l6ZSAtIChzaXplc1tpbmRleF0gYXMgbnVtYmVyKVxuICAgICAgICB3aGlsZSAodGhpcy4jY2FsY3VsYXRlZFNpemUgPiBtYXhTaXplKSB7XG4gICAgICAgICAgdGhpcy4jZXZpY3QodHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy4jY2FsY3VsYXRlZFNpemUgKz0gc2l6ZXNbaW5kZXhdIGFzIG51bWJlclxuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICBzdGF0dXMuZW50cnlTaXplID0gc2l6ZVxuICAgICAgICBzdGF0dXMudG90YWxDYWxjdWxhdGVkU2l6ZSA9IHRoaXMuI2NhbGN1bGF0ZWRTaXplXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3JlbW92ZUl0ZW1TaXplOiAoaW5kZXg6IEluZGV4KSA9PiB2b2lkID0gX2kgPT4ge31cbiAgI2FkZEl0ZW1TaXplOiAoXG4gICAgaW5kZXg6IEluZGV4LFxuICAgIHNpemU6IExSVUNhY2hlLlNpemUsXG4gICAgc3RhdHVzPzogTFJVQ2FjaGUuU3RhdHVzPFY+LFxuICApID0+IHZvaWQgPSAoX2ksIF9zLCBfc3QpID0+IHt9XG4gICNyZXF1aXJlU2l6ZTogKFxuICAgIGs6IEssXG4gICAgdjogViB8IEJhY2tncm91bmRGZXRjaDxWPixcbiAgICBzaXplPzogTFJVQ2FjaGUuU2l6ZSxcbiAgICBzaXplQ2FsY3VsYXRpb24/OiBMUlVDYWNoZS5TaXplQ2FsY3VsYXRvcjxLLCBWPixcbiAgKSA9PiBMUlVDYWNoZS5TaXplID0gKFxuICAgIF9rOiBLLFxuICAgIF92OiBWIHwgQmFja2dyb3VuZEZldGNoPFY+LFxuICAgIHNpemU/OiBMUlVDYWNoZS5TaXplLFxuICAgIHNpemVDYWxjdWxhdGlvbj86IExSVUNhY2hlLlNpemVDYWxjdWxhdG9yPEssIFY+LFxuICApID0+IHtcbiAgICBpZiAoc2l6ZSB8fCBzaXplQ2FsY3VsYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdjYW5ub3Qgc2V0IHNpemUgd2l0aG91dCBzZXR0aW5nIG1heFNpemUgb3IgbWF4RW50cnlTaXplIG9uIGNhY2hlJyxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIDBcbiAgfTtcblxuICAqI2luZGV4ZXMoeyBhbGxvd1N0YWxlID0gdGhpcy5hbGxvd1N0YWxlIH0gPSB7fSkge1xuICAgIGlmICh0aGlzLiNzaXplKSB7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy4jdGFpbDsgdHJ1ZTsgKSB7XG4gICAgICAgIGlmICghdGhpcy4jaXNWYWxpZEluZGV4KGkpKSB7XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dTdGFsZSB8fCAhdGhpcy4jaXNTdGFsZShpKSkge1xuICAgICAgICAgIHlpZWxkIGlcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSA9PT0gdGhpcy4jaGVhZCkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaSA9IHRoaXMuI3ByZXZbaV0gYXMgSW5kZXhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICojcmluZGV4ZXMoeyBhbGxvd1N0YWxlID0gdGhpcy5hbGxvd1N0YWxlIH0gPSB7fSkge1xuICAgIGlmICh0aGlzLiNzaXplKSB7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy4jaGVhZDsgdHJ1ZTsgKSB7XG4gICAgICAgIGlmICghdGhpcy4jaXNWYWxpZEluZGV4KGkpKSB7XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dTdGFsZSB8fCAhdGhpcy4jaXNTdGFsZShpKSkge1xuICAgICAgICAgIHlpZWxkIGlcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSA9PT0gdGhpcy4jdGFpbCkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaSA9IHRoaXMuI25leHRbaV0gYXMgSW5kZXhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNpc1ZhbGlkSW5kZXgoaW5kZXg6IEluZGV4KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGluZGV4ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuI2tleU1hcC5nZXQodGhpcy4ja2V5TGlzdFtpbmRleF0gYXMgSykgPT09IGluZGV4XG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGdlbmVyYXRvciB5aWVsZGluZyBgW2tleSwgdmFsdWVdYCBwYWlycyxcbiAgICogaW4gb3JkZXIgZnJvbSBtb3N0IHJlY2VudGx5IHVzZWQgdG8gbGVhc3QgcmVjZW50bHkgdXNlZC5cbiAgICovXG4gICplbnRyaWVzKCkge1xuICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLiNpbmRleGVzKCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jdmFsTGlzdFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRoaXMuI2tleUxpc3RbaV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAhdGhpcy4jaXNCYWNrZ3JvdW5kRmV0Y2godGhpcy4jdmFsTGlzdFtpXSlcbiAgICAgICkge1xuICAgICAgICB5aWVsZCBbdGhpcy4ja2V5TGlzdFtpXSwgdGhpcy4jdmFsTGlzdFtpXV0gYXMgW0ssIFZdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludmVyc2Ugb3JkZXIgdmVyc2lvbiBvZiB7QGxpbmsgTFJVQ2FjaGUuZW50cmllc31cbiAgICpcbiAgICogUmV0dXJuIGEgZ2VuZXJhdG9yIHlpZWxkaW5nIGBba2V5LCB2YWx1ZV1gIHBhaXJzLFxuICAgKiBpbiBvcmRlciBmcm9tIGxlYXN0IHJlY2VudGx5IHVzZWQgdG8gbW9zdCByZWNlbnRseSB1c2VkLlxuICAgKi9cbiAgKnJlbnRyaWVzKCkge1xuICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLiNyaW5kZXhlcygpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI3ZhbExpc3RbaV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICB0aGlzLiNrZXlMaXN0W2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgIXRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHRoaXMuI3ZhbExpc3RbaV0pXG4gICAgICApIHtcbiAgICAgICAgeWllbGQgW3RoaXMuI2tleUxpc3RbaV0sIHRoaXMuI3ZhbExpc3RbaV1dXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGdlbmVyYXRvciB5aWVsZGluZyB0aGUga2V5cyBpbiB0aGUgY2FjaGUsXG4gICAqIGluIG9yZGVyIGZyb20gbW9zdCByZWNlbnRseSB1c2VkIHRvIGxlYXN0IHJlY2VudGx5IHVzZWQuXG4gICAqL1xuICAqa2V5cygpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy4jaW5kZXhlcygpKSB7XG4gICAgICBjb25zdCBrID0gdGhpcy4ja2V5TGlzdFtpXVxuICAgICAgaWYgKGsgIT09IHVuZGVmaW5lZCAmJiAhdGhpcy4jaXNCYWNrZ3JvdW5kRmV0Y2godGhpcy4jdmFsTGlzdFtpXSkpIHtcbiAgICAgICAgeWllbGQga1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZlcnNlIG9yZGVyIHZlcnNpb24gb2Yge0BsaW5rIExSVUNhY2hlLmtleXN9XG4gICAqXG4gICAqIFJldHVybiBhIGdlbmVyYXRvciB5aWVsZGluZyB0aGUga2V5cyBpbiB0aGUgY2FjaGUsXG4gICAqIGluIG9yZGVyIGZyb20gbGVhc3QgcmVjZW50bHkgdXNlZCB0byBtb3N0IHJlY2VudGx5IHVzZWQuXG4gICAqL1xuICAqcmtleXMoKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuI3JpbmRleGVzKCkpIHtcbiAgICAgIGNvbnN0IGsgPSB0aGlzLiNrZXlMaXN0W2ldXG4gICAgICBpZiAoayAhPT0gdW5kZWZpbmVkICYmICF0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh0aGlzLiN2YWxMaXN0W2ldKSkge1xuICAgICAgICB5aWVsZCBrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGdlbmVyYXRvciB5aWVsZGluZyB0aGUgdmFsdWVzIGluIHRoZSBjYWNoZSxcbiAgICogaW4gb3JkZXIgZnJvbSBtb3N0IHJlY2VudGx5IHVzZWQgdG8gbGVhc3QgcmVjZW50bHkgdXNlZC5cbiAgICovXG4gICp2YWx1ZXMoKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuI2luZGV4ZXMoKSkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaV1cbiAgICAgIGlmICh2ICE9PSB1bmRlZmluZWQgJiYgIXRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHRoaXMuI3ZhbExpc3RbaV0pKSB7XG4gICAgICAgIHlpZWxkIHRoaXMuI3ZhbExpc3RbaV0gYXMgVlxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZlcnNlIG9yZGVyIHZlcnNpb24gb2Yge0BsaW5rIExSVUNhY2hlLnZhbHVlc31cbiAgICpcbiAgICogUmV0dXJuIGEgZ2VuZXJhdG9yIHlpZWxkaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIGNhY2hlLFxuICAgKiBpbiBvcmRlciBmcm9tIGxlYXN0IHJlY2VudGx5IHVzZWQgdG8gbW9zdCByZWNlbnRseSB1c2VkLlxuICAgKi9cbiAgKnJ2YWx1ZXMoKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuI3JpbmRleGVzKCkpIHtcbiAgICAgIGNvbnN0IHYgPSB0aGlzLiN2YWxMaXN0W2ldXG4gICAgICBpZiAodiAhPT0gdW5kZWZpbmVkICYmICF0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh0aGlzLiN2YWxMaXN0W2ldKSkge1xuICAgICAgICB5aWVsZCB0aGlzLiN2YWxMaXN0W2ldXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGluZyBvdmVyIHRoZSBjYWNoZSBpdHNlbGYgeWllbGRzIHRoZSBzYW1lIHJlc3VsdHMgYXNcbiAgICoge0BsaW5rIExSVUNhY2hlLmVudHJpZXN9XG4gICAqL1xuICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBBIFN0cmluZyB2YWx1ZSB0aGF0IGlzIHVzZWQgaW4gdGhlIGNyZWF0aW9uIG9mIHRoZSBkZWZhdWx0IHN0cmluZ1xuICAgKiBkZXNjcmlwdGlvbiBvZiBhbiBvYmplY3QuIENhbGxlZCBieSB0aGUgYnVpbHQtaW4gbWV0aG9kXG4gICAqIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYC5cbiAgICovXG4gIFtTeW1ib2wudG9TdHJpbmdUYWddID0gJ0xSVUNhY2hlJ1xuXG4gIC8qKlxuICAgKiBGaW5kIGEgdmFsdWUgZm9yIHdoaWNoIHRoZSBzdXBwbGllZCBmbiBtZXRob2QgcmV0dXJucyBhIHRydXRoeSB2YWx1ZSxcbiAgICogc2ltaWxhciB0byBgQXJyYXkuZmluZCgpYC4gZm4gaXMgY2FsbGVkIGFzIGBmbih2YWx1ZSwga2V5LCBjYWNoZSlgLlxuICAgKi9cbiAgZmluZChcbiAgICBmbjogKHY6IFYsIGs6IEssIHNlbGY6IExSVUNhY2hlPEssIFYsIEZDPikgPT4gYm9vbGVhbixcbiAgICBnZXRPcHRpb25zOiBMUlVDYWNoZS5HZXRPcHRpb25zPEssIFYsIEZDPiA9IHt9LFxuICApIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy4jaW5kZXhlcygpKSB7XG4gICAgICBjb25zdCB2ID0gdGhpcy4jdmFsTGlzdFtpXVxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh2KSA/IHYuX19zdGFsZVdoaWxlRmV0Y2hpbmcgOiB2XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgY29udGludWVcbiAgICAgIGlmIChmbih2YWx1ZSwgdGhpcy4ja2V5TGlzdFtpXSBhcyBLLCB0aGlzKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQodGhpcy4ja2V5TGlzdFtpXSBhcyBLLCBnZXRPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsIHRoZSBzdXBwbGllZCBmdW5jdGlvbiBvbiBlYWNoIGl0ZW0gaW4gdGhlIGNhY2hlLCBpbiBvcmRlciBmcm9tIG1vc3RcbiAgICogcmVjZW50bHkgdXNlZCB0byBsZWFzdCByZWNlbnRseSB1c2VkLlxuICAgKlxuICAgKiBgZm5gIGlzIGNhbGxlZCBhcyBgZm4odmFsdWUsIGtleSwgY2FjaGUpYC5cbiAgICpcbiAgICogSWYgYHRoaXNwYCBpcyBwcm92aWRlZCwgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgaW4gdGhlIGB0aGlzYC1jb250ZXh0IG9mXG4gICAqIHRoZSBwcm92aWRlZCBvYmplY3QsIG9yIHRoZSBjYWNoZSBpZiBubyBgdGhpc3BgIG9iamVjdCBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogRG9lcyBub3QgdXBkYXRlIGFnZSBvciByZWNlbnR5IG9mIHVzZSwgb3IgaXRlcmF0ZSBvdmVyIHN0YWxlIHZhbHVlcy5cbiAgICovXG4gIGZvckVhY2goXG4gICAgZm46ICh2OiBWLCBrOiBLLCBzZWxmOiBMUlVDYWNoZTxLLCBWLCBGQz4pID0+IGFueSxcbiAgICB0aGlzcDogYW55ID0gdGhpcyxcbiAgKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuI2luZGV4ZXMoKSkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaV1cbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy4jaXNCYWNrZ3JvdW5kRmV0Y2godikgPyB2Ll9fc3RhbGVXaGlsZUZldGNoaW5nIDogdlxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlXG4gICAgICBmbi5jYWxsKHRoaXNwLCB2YWx1ZSwgdGhpcy4ja2V5TGlzdFtpXSBhcyBLLCB0aGlzKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgTFJVQ2FjaGUuZm9yRWFjaH0gYnV0IGl0ZW1zIGFyZSBpdGVyYXRlZCBvdmVyIGluXG4gICAqIHJldmVyc2Ugb3JkZXIuICAoaWUsIGxlc3MgcmVjZW50bHkgdXNlZCBpdGVtcyBhcmUgaXRlcmF0ZWQgb3ZlciBmaXJzdC4pXG4gICAqL1xuICByZm9yRWFjaChcbiAgICBmbjogKHY6IFYsIGs6IEssIHNlbGY6IExSVUNhY2hlPEssIFYsIEZDPikgPT4gYW55LFxuICAgIHRoaXNwOiBhbnkgPSB0aGlzLFxuICApIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy4jcmluZGV4ZXMoKSkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaV1cbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy4jaXNCYWNrZ3JvdW5kRmV0Y2godikgPyB2Ll9fc3RhbGVXaGlsZUZldGNoaW5nIDogdlxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlXG4gICAgICBmbi5jYWxsKHRoaXNwLCB2YWx1ZSwgdGhpcy4ja2V5TGlzdFtpXSBhcyBLLCB0aGlzKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW55IHN0YWxlIGVudHJpZXMuIFJldHVybnMgdHJ1ZSBpZiBhbnl0aGluZyB3YXMgcmVtb3ZlZCxcbiAgICogZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVyZ2VTdGFsZSgpIHtcbiAgICBsZXQgZGVsZXRlZCA9IGZhbHNlXG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuI3JpbmRleGVzKHsgYWxsb3dTdGFsZTogdHJ1ZSB9KSkge1xuICAgICAgaWYgKHRoaXMuI2lzU3RhbGUoaSkpIHtcbiAgICAgICAgdGhpcy4jZGVsZXRlKHRoaXMuI2tleUxpc3RbaV0gYXMgSywgJ2V4cGlyZScpXG4gICAgICAgIGRlbGV0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkZWxldGVkXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBleHRlbmRlZCBpbmZvIGFib3V0IGEgZ2l2ZW4gZW50cnksIHRvIGdldCBpdHMgdmFsdWUsIHNpemUsIGFuZFxuICAgKiBUVEwgaW5mbyBzaW11bHRhbmVvdXNseS4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUga2V5IGlzIG5vdCBwcmVzZW50LlxuICAgKlxuICAgKiBVbmxpa2Uge0BsaW5rIExSVUNhY2hlI2R1bXB9LCB3aGljaCBpcyBkZXNpZ25lZCB0byBiZSBwb3J0YWJsZSBhbmQgc3Vydml2ZVxuICAgKiBzZXJpYWxpemF0aW9uLCB0aGUgYHN0YXJ0YCB2YWx1ZSBpcyBhbHdheXMgdGhlIGN1cnJlbnQgdGltZXN0YW1wLCBhbmQgdGhlXG4gICAqIGB0dGxgIGlzIGEgY2FsY3VsYXRlZCByZW1haW5pbmcgdGltZSB0byBsaXZlIChuZWdhdGl2ZSBpZiBleHBpcmVkKS5cbiAgICpcbiAgICogQWx3YXlzIHJldHVybnMgc3RhbGUgdmFsdWVzLCBpZiB0aGVpciBpbmZvIGlzIGZvdW5kIGluIHRoZSBjYWNoZSwgc28gYmVcbiAgICogc3VyZSB0byBjaGVjayBmb3IgZXhwaXJhdGlvbnMgKGllLCBhIG5lZ2F0aXZlIHtAbGluayBMUlVDYWNoZS5FbnRyeSN0dGx9KVxuICAgKiBpZiByZWxldmFudC5cbiAgICovXG4gIGluZm8oa2V5OiBLKTogTFJVQ2FjaGUuRW50cnk8Vj4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGkgPSB0aGlzLiNrZXlNYXAuZ2V0KGtleSlcbiAgICBpZiAoaSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaV1cbiAgICAvKiBjOCBpZ25vcmUgc3RhcnQgLSB0aGlzIGlzbid0IHRlc3RlZCBmb3IgdGhlIGluZm8gZnVuY3Rpb24sXG4gICAgICogYnV0IGl0J3MgdGhlIHNhbWUgbG9naWMgYXMgZm91bmQgaW4gb3RoZXIgcGxhY2VzLiAqL1xuICAgIGNvbnN0IHZhbHVlOiBWIHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHYpID8gdi5fX3N0YWxlV2hpbGVGZXRjaGluZyA6IHZcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIC8qIGM4IGlnbm9yZSBlbmQgKi9cbiAgICBjb25zdCBlbnRyeTogTFJVQ2FjaGUuRW50cnk8Vj4gPSB7IHZhbHVlIH1cbiAgICBpZiAodGhpcy4jdHRscyAmJiB0aGlzLiNzdGFydHMpIHtcbiAgICAgIGNvbnN0IHR0bCA9IHRoaXMuI3R0bHNbaV1cbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy4jc3RhcnRzW2ldXG4gICAgICBpZiAodHRsICYmIHN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IHJlbWFpbiA9IHR0bCAtICh0aGlzLiNwZXJmLm5vdygpIC0gc3RhcnQpXG4gICAgICAgIGVudHJ5LnR0bCA9IHJlbWFpblxuICAgICAgICBlbnRyeS5zdGFydCA9IERhdGUubm93KClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuI3NpemVzKSB7XG4gICAgICBlbnRyeS5zaXplID0gdGhpcy4jc2l6ZXNbaV1cbiAgICB9XG4gICAgcmV0dXJuIGVudHJ5XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIFtrZXksIHtAbGluayBMUlVDYWNoZS5FbnRyeX1dIHR1cGxlcyB3aGljaCBjYW4gYmVcbiAgICogcGFzc2VkIHRvIHtAbGluayBMUlVDYWNoZSNsb2FkfS5cbiAgICpcbiAgICogVGhlIGBzdGFydGAgZmllbGRzIGFyZSBjYWxjdWxhdGVkIHJlbGF0aXZlIHRvIGEgcG9ydGFibGUgYERhdGUubm93KClgXG4gICAqIHRpbWVzdGFtcCwgZXZlbiBpZiBgcGVyZm9ybWFuY2Uubm93KClgIGlzIGF2YWlsYWJsZS5cbiAgICpcbiAgICogU3RhbGUgZW50cmllcyBhcmUgYWx3YXlzIGluY2x1ZGVkIGluIHRoZSBgZHVtcGAsIGV2ZW4gaWZcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLmFsbG93U3RhbGV9IGlzIGZhbHNlLlxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHJldHVybnMgYW4gYWN0dWFsIGFycmF5LCBub3QgYSBnZW5lcmF0b3IsIHNvIGl0IGNhbiBiZSBtb3JlXG4gICAqIGVhc2lseSBwYXNzZWQgYXJvdW5kLlxuICAgKi9cbiAgZHVtcCgpIHtcbiAgICBjb25zdCBhcnI6IFtLLCBMUlVDYWNoZS5FbnRyeTxWPl1bXSA9IFtdXG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuI2luZGV4ZXMoeyBhbGxvd1N0YWxlOiB0cnVlIH0pKSB7XG4gICAgICBjb25zdCBrZXkgPSB0aGlzLiNrZXlMaXN0W2ldXG4gICAgICBjb25zdCB2ID0gdGhpcy4jdmFsTGlzdFtpXVxuICAgICAgY29uc3QgdmFsdWU6IFYgfCB1bmRlZmluZWQgPVxuICAgICAgICB0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh2KSA/IHYuX19zdGFsZVdoaWxlRmV0Y2hpbmcgOiB2XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCBrZXkgPT09IHVuZGVmaW5lZCkgY29udGludWVcbiAgICAgIGNvbnN0IGVudHJ5OiBMUlVDYWNoZS5FbnRyeTxWPiA9IHsgdmFsdWUgfVxuICAgICAgaWYgKHRoaXMuI3R0bHMgJiYgdGhpcy4jc3RhcnRzKSB7XG4gICAgICAgIGVudHJ5LnR0bCA9IHRoaXMuI3R0bHNbaV1cbiAgICAgICAgLy8gYWx3YXlzIGR1bXAgdGhlIHN0YXJ0IHJlbGF0aXZlIHRvIGEgcG9ydGFibGUgdGltZXN0YW1wXG4gICAgICAgIC8vIGl0J3Mgb2sgZm9yIHRoaXMgdG8gYmUgYSBiaXQgc2xvdywgaXQncyBhIHJhcmUgb3BlcmF0aW9uLlxuICAgICAgICBjb25zdCBhZ2UgPSB0aGlzLiNwZXJmLm5vdygpIC0gKHRoaXMuI3N0YXJ0c1tpXSBhcyBudW1iZXIpXG4gICAgICAgIGVudHJ5LnN0YXJ0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC0gYWdlKVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuI3NpemVzKSB7XG4gICAgICAgIGVudHJ5LnNpemUgPSB0aGlzLiNzaXplc1tpXVxuICAgICAgfVxuICAgICAgYXJyLnVuc2hpZnQoW2tleSwgZW50cnldKVxuICAgIH1cbiAgICByZXR1cm4gYXJyXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGNhY2hlIGFuZCBsb2FkIGluIHRoZSBpdGVtcyBpbiBlbnRyaWVzIGluIHRoZSBvcmRlciBsaXN0ZWQuXG4gICAqXG4gICAqIFRoZSBzaGFwZSBvZiB0aGUgcmVzdWx0aW5nIGNhY2hlIG1heSBiZSBkaWZmZXJlbnQgaWYgdGhlIHNhbWUgb3B0aW9ucyBhcmVcbiAgICogbm90IHVzZWQgaW4gYm90aCBjYWNoZXMuXG4gICAqXG4gICAqIFRoZSBgc3RhcnRgIGZpZWxkcyBhcmUgYXNzdW1lZCB0byBiZSBjYWxjdWxhdGVkIHJlbGF0aXZlIHRvIGEgcG9ydGFibGVcbiAgICogYERhdGUubm93KClgIHRpbWVzdGFtcCwgZXZlbiBpZiBgcGVyZm9ybWFuY2Uubm93KClgIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIGxvYWQoYXJyOiBbSywgTFJVQ2FjaGUuRW50cnk8Vj5dW10pIHtcbiAgICB0aGlzLmNsZWFyKClcbiAgICBmb3IgKGNvbnN0IFtrZXksIGVudHJ5XSBvZiBhcnIpIHtcbiAgICAgIGlmIChlbnRyeS5zdGFydCkge1xuICAgICAgICAvLyBlbnRyeS5zdGFydCBpcyBhIHBvcnRhYmxlIHRpbWVzdGFtcCwgYnV0IHdlIG1heSBiZSB1c2luZ1xuICAgICAgICAvLyBub2RlJ3MgcGVyZm9ybWFuY2Uubm93KCksIHNvIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0LCBzbyB0aGF0XG4gICAgICAgIC8vIHdlIGdldCB0aGUgaW50ZW5kZWQgcmVtYWluaW5nIFRUTCwgbm8gbWF0dGVyIGhvdyBsb25nIGl0J3NcbiAgICAgICAgLy8gYmVlbiBvbiBpY2UuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGl0J3Mgb2sgZm9yIHRoaXMgdG8gYmUgYSBiaXQgc2xvdywgaXQncyBhIHJhcmUgb3BlcmF0aW9uLlxuICAgICAgICBjb25zdCBhZ2UgPSBEYXRlLm5vdygpIC0gZW50cnkuc3RhcnRcbiAgICAgICAgZW50cnkuc3RhcnQgPSB0aGlzLiNwZXJmLm5vdygpIC0gYWdlXG4gICAgICB9XG4gICAgICB0aGlzLnNldChrZXksIGVudHJ5LnZhbHVlLCBlbnRyeSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdmFsdWUgdG8gdGhlIGNhY2hlLlxuICAgKlxuICAgKiBOb3RlOiBpZiBgdW5kZWZpbmVkYCBpcyBzcGVjaWZpZWQgYXMgYSB2YWx1ZSwgdGhpcyBpcyBhbiBhbGlhcyBmb3JcbiAgICoge0BsaW5rIExSVUNhY2hlI2RlbGV0ZX1cbiAgICpcbiAgICogRmllbGRzIG9uIHRoZSB7QGxpbmsgTFJVQ2FjaGUuU2V0T3B0aW9uc30gb3B0aW9ucyBwYXJhbSB3aWxsIG92ZXJyaWRlXG4gICAqIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGluIHRoZSBjb25zdHJ1Y3RvciBvcHRpb25zIGZvciB0aGUgc2NvcGVcbiAgICogb2YgdGhpcyBzaW5nbGUgYHNldCgpYCBvcGVyYXRpb24uXG4gICAqXG4gICAqIElmIGBzdGFydGAgaXMgcHJvdmlkZWQsIHRoZW4gdGhhdCB3aWxsIHNldCB0aGUgZWZmZWN0aXZlIHN0YXJ0XG4gICAqIHRpbWUgZm9yIHRoZSBUVEwgY2FsY3VsYXRpb24uIE5vdGUgdGhhdCB0aGlzIG11c3QgYmUgYSBwcmV2aW91c1xuICAgKiB2YWx1ZSBvZiBgcGVyZm9ybWFuY2Uubm93KClgIGlmIHN1cHBvcnRlZCwgb3IgYSBwcmV2aW91cyB2YWx1ZSBvZlxuICAgKiBgRGF0ZS5ub3coKWAgaWYgbm90LlxuICAgKlxuICAgKiBPcHRpb25zIG9iamVjdCBtYXkgYWxzbyBpbmNsdWRlIGBzaXplYCwgd2hpY2ggd2lsbCBwcmV2ZW50XG4gICAqIGNhbGxpbmcgdGhlIGBzaXplQ2FsY3VsYXRpb25gIGZ1bmN0aW9uIGFuZCBqdXN0IHVzZSB0aGUgc3BlY2lmaWVkXG4gICAqIG51bWJlciBpZiBpdCBpcyBhIHBvc2l0aXZlIGludGVnZXIsIGFuZCBgbm9EaXNwb3NlT25TZXRgIHdoaWNoXG4gICAqIHdpbGwgcHJldmVudCBjYWxsaW5nIGEgYGRpc3Bvc2VgIGZ1bmN0aW9uIGluIHRoZSBjYXNlIG9mXG4gICAqIG92ZXJ3cml0ZXMuXG4gICAqXG4gICAqIElmIHRoZSBgc2l6ZWAgKG9yIHJldHVybiB2YWx1ZSBvZiBgc2l6ZUNhbGN1bGF0aW9uYCkgZm9yIGEgZ2l2ZW5cbiAgICogZW50cnkgaXMgZ3JlYXRlciB0aGFuIGBtYXhFbnRyeVNpemVgLCB0aGVuIHRoZSBpdGVtIHdpbGwgbm90IGJlXG4gICAqIGFkZGVkIHRvIHRoZSBjYWNoZS5cbiAgICpcbiAgICogV2lsbCB1cGRhdGUgdGhlIHJlY2VuY3kgb2YgdGhlIGVudHJ5LlxuICAgKlxuICAgKiBJZiB0aGUgdmFsdWUgaXMgYHVuZGVmaW5lZGAsIHRoZW4gdGhpcyBpcyBhbiBhbGlhcyBmb3JcbiAgICogYGNhY2hlLmRlbGV0ZShrZXkpYC4gYHVuZGVmaW5lZGAgaXMgbmV2ZXIgc3RvcmVkIGluIHRoZSBjYWNoZS5cbiAgICovXG4gIHNldChcbiAgICBrOiBLLFxuICAgIHY6IFYgfCBCYWNrZ3JvdW5kRmV0Y2g8Vj4gfCB1bmRlZmluZWQsXG4gICAgc2V0T3B0aW9uczogTFJVQ2FjaGUuU2V0T3B0aW9uczxLLCBWLCBGQz4gPSB7fSxcbiAgKSB7XG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kZWxldGUoaylcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIHR0bCA9IHRoaXMudHRsLFxuICAgICAgc3RhcnQsXG4gICAgICBub0Rpc3Bvc2VPblNldCA9IHRoaXMubm9EaXNwb3NlT25TZXQsXG4gICAgICBzaXplQ2FsY3VsYXRpb24gPSB0aGlzLnNpemVDYWxjdWxhdGlvbixcbiAgICAgIHN0YXR1cyxcbiAgICB9ID0gc2V0T3B0aW9uc1xuICAgIGxldCB7IG5vVXBkYXRlVFRMID0gdGhpcy5ub1VwZGF0ZVRUTCB9ID0gc2V0T3B0aW9uc1xuXG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuI3JlcXVpcmVTaXplKFxuICAgICAgayxcbiAgICAgIHYsXG4gICAgICBzZXRPcHRpb25zLnNpemUgfHwgMCxcbiAgICAgIHNpemVDYWxjdWxhdGlvbixcbiAgICApXG4gICAgLy8gaWYgdGhlIGl0ZW0gZG9lc24ndCBmaXQsIGRvbid0IGRvIGFueXRoaW5nXG4gICAgLy8gTkI6IG1heEVudHJ5U2l6ZSBzZXQgdG8gbWF4U2l6ZSBieSBkZWZhdWx0XG4gICAgaWYgKHRoaXMubWF4RW50cnlTaXplICYmIHNpemUgPiB0aGlzLm1heEVudHJ5U2l6ZSkge1xuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICBzdGF0dXMuc2V0ID0gJ21pc3MnXG4gICAgICAgIHN0YXR1cy5tYXhFbnRyeVNpemVFeGNlZWRlZCA9IHRydWVcbiAgICAgIH1cbiAgICAgIC8vIGhhdmUgdG8gZGVsZXRlLCBpbiBjYXNlIHNvbWV0aGluZyBpcyB0aGVyZSBhbHJlYWR5LlxuICAgICAgdGhpcy4jZGVsZXRlKGssICdzZXQnKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG4gICAgbGV0IGluZGV4ID0gdGhpcy4jc2l6ZSA9PT0gMCA/IHVuZGVmaW5lZCA6IHRoaXMuI2tleU1hcC5nZXQoaylcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gYWRkaXRpb25cbiAgICAgIGluZGV4ID0gKFxuICAgICAgICB0aGlzLiNzaXplID09PSAwID8gdGhpcy4jdGFpbFxuICAgICAgICA6IHRoaXMuI2ZyZWUubGVuZ3RoICE9PSAwID8gdGhpcy4jZnJlZS5wb3AoKVxuICAgICAgICA6IHRoaXMuI3NpemUgPT09IHRoaXMuI21heCA/IHRoaXMuI2V2aWN0KGZhbHNlKVxuICAgICAgICA6IHRoaXMuI3NpemUpIGFzIEluZGV4XG4gICAgICB0aGlzLiNrZXlMaXN0W2luZGV4XSA9IGtcbiAgICAgIHRoaXMuI3ZhbExpc3RbaW5kZXhdID0gdlxuICAgICAgdGhpcy4ja2V5TWFwLnNldChrLCBpbmRleClcbiAgICAgIHRoaXMuI25leHRbdGhpcy4jdGFpbF0gPSBpbmRleFxuICAgICAgdGhpcy4jcHJldltpbmRleF0gPSB0aGlzLiN0YWlsXG4gICAgICB0aGlzLiN0YWlsID0gaW5kZXhcbiAgICAgIHRoaXMuI3NpemUrK1xuICAgICAgdGhpcy4jYWRkSXRlbVNpemUoaW5kZXgsIHNpemUsIHN0YXR1cylcbiAgICAgIGlmIChzdGF0dXMpIHN0YXR1cy5zZXQgPSAnYWRkJ1xuICAgICAgbm9VcGRhdGVUVEwgPSBmYWxzZVxuICAgICAgaWYgKHRoaXMuI2hhc09uSW5zZXJ0KSB7XG4gICAgICAgIHRoaXMuI29uSW5zZXJ0Py4odiBhcyBWLCBrLCAnYWRkJylcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXBkYXRlXG4gICAgICB0aGlzLiNtb3ZlVG9UYWlsKGluZGV4KVxuICAgICAgY29uc3Qgb2xkVmFsID0gdGhpcy4jdmFsTGlzdFtpbmRleF0gYXMgViB8IEJhY2tncm91bmRGZXRjaDxWPlxuICAgICAgaWYgKHYgIT09IG9sZFZhbCkge1xuICAgICAgICBpZiAodGhpcy4jaGFzRmV0Y2hNZXRob2QgJiYgdGhpcy4jaXNCYWNrZ3JvdW5kRmV0Y2gob2xkVmFsKSkge1xuICAgICAgICAgIG9sZFZhbC5fX2Fib3J0Q29udHJvbGxlci5hYm9ydChuZXcgRXJyb3IoJ3JlcGxhY2VkJykpXG4gICAgICAgICAgY29uc3QgeyBfX3N0YWxlV2hpbGVGZXRjaGluZzogcyB9ID0gb2xkVmFsXG4gICAgICAgICAgaWYgKHMgIT09IHVuZGVmaW5lZCAmJiAhbm9EaXNwb3NlT25TZXQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlKSB7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3Bvc2U/LihzIGFzIFYsIGssICdzZXQnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuI2hhc0Rpc3Bvc2VBZnRlcikge1xuICAgICAgICAgICAgICB0aGlzLiNkaXNwb3NlZD8ucHVzaChbcyBhcyBWLCBrLCAnc2V0J10pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFub0Rpc3Bvc2VPblNldCkge1xuICAgICAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlKSB7XG4gICAgICAgICAgICB0aGlzLiNkaXNwb3NlPy4ob2xkVmFsIGFzIFYsIGssICdzZXQnKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy4jaGFzRGlzcG9zZUFmdGVyKSB7XG4gICAgICAgICAgICB0aGlzLiNkaXNwb3NlZD8ucHVzaChbb2xkVmFsIGFzIFYsIGssICdzZXQnXSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jcmVtb3ZlSXRlbVNpemUoaW5kZXgpXG4gICAgICAgIHRoaXMuI2FkZEl0ZW1TaXplKGluZGV4LCBzaXplLCBzdGF0dXMpXG4gICAgICAgIHRoaXMuI3ZhbExpc3RbaW5kZXhdID0gdlxuICAgICAgICBpZiAoc3RhdHVzKSB7XG4gICAgICAgICAgc3RhdHVzLnNldCA9ICdyZXBsYWNlJ1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID1cbiAgICAgICAgICAgIG9sZFZhbCAmJiB0aGlzLiNpc0JhY2tncm91bmRGZXRjaChvbGRWYWwpID9cbiAgICAgICAgICAgICAgb2xkVmFsLl9fc3RhbGVXaGlsZUZldGNoaW5nXG4gICAgICAgICAgICA6IG9sZFZhbFxuICAgICAgICAgIGlmIChvbGRWYWx1ZSAhPT0gdW5kZWZpbmVkKSBzdGF0dXMub2xkVmFsdWUgPSBvbGRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cykge1xuICAgICAgICBzdGF0dXMuc2V0ID0gJ3VwZGF0ZSdcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI2hhc09uSW5zZXJ0KSB7XG4gICAgICAgIHRoaXMub25JbnNlcnQ/Lih2IGFzIFYsIGssIHYgPT09IG9sZFZhbCA/ICd1cGRhdGUnIDogJ3JlcGxhY2UnKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHRsICE9PSAwICYmICF0aGlzLiN0dGxzKSB7XG4gICAgICB0aGlzLiNpbml0aWFsaXplVFRMVHJhY2tpbmcoKVxuICAgIH1cbiAgICBpZiAodGhpcy4jdHRscykge1xuICAgICAgaWYgKCFub1VwZGF0ZVRUTCkge1xuICAgICAgICB0aGlzLiNzZXRJdGVtVFRMKGluZGV4LCB0dGwsIHN0YXJ0KVxuICAgICAgfVxuICAgICAgaWYgKHN0YXR1cykgdGhpcy4jc3RhdHVzVFRMKHN0YXR1cywgaW5kZXgpXG4gICAgfVxuICAgIGlmICghbm9EaXNwb3NlT25TZXQgJiYgdGhpcy4jaGFzRGlzcG9zZUFmdGVyICYmIHRoaXMuI2Rpc3Bvc2VkKSB7XG4gICAgICBjb25zdCBkdCA9IHRoaXMuI2Rpc3Bvc2VkXG4gICAgICBsZXQgdGFzazogRGlzcG9zZVRhc2s8SywgVj4gfCB1bmRlZmluZWRcbiAgICAgIHdoaWxlICgodGFzayA9IGR0Py5zaGlmdCgpKSkge1xuICAgICAgICB0aGlzLiNkaXNwb3NlQWZ0ZXI/LiguLi50YXNrKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEV2aWN0IHRoZSBsZWFzdCByZWNlbnRseSB1c2VkIGl0ZW0sIHJldHVybmluZyBpdHMgdmFsdWUgb3JcbiAgICogYHVuZGVmaW5lZGAgaWYgY2FjaGUgaXMgZW1wdHkuXG4gICAqL1xuICBwb3AoKTogViB8IHVuZGVmaW5lZCB7XG4gICAgdHJ5IHtcbiAgICAgIHdoaWxlICh0aGlzLiNzaXplKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuI3ZhbExpc3RbdGhpcy4jaGVhZF1cbiAgICAgICAgdGhpcy4jZXZpY3QodHJ1ZSlcbiAgICAgICAgaWYgKHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHZhbCkpIHtcbiAgICAgICAgICBpZiAodmFsLl9fc3RhbGVXaGlsZUZldGNoaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsLl9fc3RhbGVXaGlsZUZldGNoaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlQWZ0ZXIgJiYgdGhpcy4jZGlzcG9zZWQpIHtcbiAgICAgICAgY29uc3QgZHQgPSB0aGlzLiNkaXNwb3NlZFxuICAgICAgICBsZXQgdGFzazogRGlzcG9zZVRhc2s8SywgVj4gfCB1bmRlZmluZWRcbiAgICAgICAgd2hpbGUgKCh0YXNrID0gZHQ/LnNoaWZ0KCkpKSB7XG4gICAgICAgICAgdGhpcy4jZGlzcG9zZUFmdGVyPy4oLi4udGFzaylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNldmljdChmcmVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgaGVhZCA9IHRoaXMuI2hlYWRcbiAgICBjb25zdCBrID0gdGhpcy4ja2V5TGlzdFtoZWFkXSBhcyBLXG4gICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaGVhZF0gYXMgVlxuICAgIGlmICh0aGlzLiNoYXNGZXRjaE1ldGhvZCAmJiB0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh2KSkge1xuICAgICAgdi5fX2Fib3J0Q29udHJvbGxlci5hYm9ydChuZXcgRXJyb3IoJ2V2aWN0ZWQnKSlcbiAgICB9IGVsc2UgaWYgKHRoaXMuI2hhc0Rpc3Bvc2UgfHwgdGhpcy4jaGFzRGlzcG9zZUFmdGVyKSB7XG4gICAgICBpZiAodGhpcy4jaGFzRGlzcG9zZSkge1xuICAgICAgICB0aGlzLiNkaXNwb3NlPy4odiwgaywgJ2V2aWN0JylcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlQWZ0ZXIpIHtcbiAgICAgICAgdGhpcy4jZGlzcG9zZWQ/LnB1c2goW3YsIGssICdldmljdCddKVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLiNyZW1vdmVJdGVtU2l6ZShoZWFkKVxuICAgIGlmICh0aGlzLiNhdXRvcHVyZ2VUaW1lcnM/LltoZWFkXSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuI2F1dG9wdXJnZVRpbWVyc1toZWFkXSlcbiAgICAgIHRoaXMuI2F1dG9wdXJnZVRpbWVyc1toZWFkXSA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICAvLyBpZiB3ZSBhcmVuJ3QgYWJvdXQgdG8gdXNlIHRoZSBpbmRleCwgdGhlbiBudWxsIHRoZXNlIG91dFxuICAgIGlmIChmcmVlKSB7XG4gICAgICB0aGlzLiNrZXlMaXN0W2hlYWRdID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLiN2YWxMaXN0W2hlYWRdID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLiNmcmVlLnB1c2goaGVhZClcbiAgICB9XG4gICAgaWYgKHRoaXMuI3NpemUgPT09IDEpIHtcbiAgICAgIHRoaXMuI2hlYWQgPSB0aGlzLiN0YWlsID0gMCBhcyBJbmRleFxuICAgICAgdGhpcy4jZnJlZS5sZW5ndGggPSAwXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2hlYWQgPSB0aGlzLiNuZXh0W2hlYWRdIGFzIEluZGV4XG4gICAgfVxuICAgIHRoaXMuI2tleU1hcC5kZWxldGUoaylcbiAgICB0aGlzLiNzaXplLS1cbiAgICByZXR1cm4gaGVhZFxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEga2V5IGlzIGluIHRoZSBjYWNoZSwgd2l0aG91dCB1cGRhdGluZyB0aGUgcmVjZW5jeSBvZiB1c2UuXG4gICAqIFdpbGwgcmV0dXJuIGZhbHNlIGlmIHRoZSBpdGVtIGlzIHN0YWxlLCBldmVuIHRob3VnaCBpdCBpcyB0ZWNobmljYWxseVxuICAgKiBpbiB0aGUgY2FjaGUuXG4gICAqXG4gICAqIENoZWNrIGlmIGEga2V5IGlzIGluIHRoZSBjYWNoZSwgd2l0aG91dCB1cGRhdGluZyB0aGUgcmVjZW5jeSBvZlxuICAgKiB1c2UuIEFnZSBpcyB1cGRhdGVkIGlmIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS51cGRhdGVBZ2VPbkhhc30gaXMgc2V0XG4gICAqIHRvIGB0cnVlYCBpbiBlaXRoZXIgdGhlIG9wdGlvbnMgb3IgdGhlIGNvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBXaWxsIHJldHVybiBgZmFsc2VgIGlmIHRoZSBpdGVtIGlzIHN0YWxlLCBldmVuIHRob3VnaCBpdCBpcyB0ZWNobmljYWxseSBpblxuICAgKiB0aGUgY2FjaGUuIFRoZSBkaWZmZXJlbmNlIGNhbiBiZSBkZXRlcm1pbmVkIChpZiBpdCBtYXR0ZXJzKSBieSB1c2luZyBhXG4gICAqIGBzdGF0dXNgIGFyZ3VtZW50LCBhbmQgaW5zcGVjdGluZyB0aGUgYGhhc2AgZmllbGQuXG4gICAqXG4gICAqIFdpbGwgbm90IHVwZGF0ZSBpdGVtIGFnZSB1bmxlc3NcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLnVwZGF0ZUFnZU9uSGFzfSBpcyBzZXQuXG4gICAqL1xuICBoYXMoazogSywgaGFzT3B0aW9uczogTFJVQ2FjaGUuSGFzT3B0aW9uczxLLCBWLCBGQz4gPSB7fSkge1xuICAgIGNvbnN0IHsgdXBkYXRlQWdlT25IYXMgPSB0aGlzLnVwZGF0ZUFnZU9uSGFzLCBzdGF0dXMgfSA9IGhhc09wdGlvbnNcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuI2tleU1hcC5nZXQoaylcbiAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaW5kZXhdXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHYpICYmXG4gICAgICAgIHYuX19zdGFsZVdoaWxlRmV0Y2hpbmcgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLiNpc1N0YWxlKGluZGV4KSkge1xuICAgICAgICBpZiAodXBkYXRlQWdlT25IYXMpIHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVJdGVtQWdlKGluZGV4KVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMpIHtcbiAgICAgICAgICBzdGF0dXMuaGFzID0gJ2hpdCdcbiAgICAgICAgICB0aGlzLiNzdGF0dXNUVEwoc3RhdHVzLCBpbmRleClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfSBlbHNlIGlmIChzdGF0dXMpIHtcbiAgICAgICAgc3RhdHVzLmhhcyA9ICdzdGFsZSdcbiAgICAgICAgdGhpcy4jc3RhdHVzVFRMKHN0YXR1cywgaW5kZXgpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGF0dXMpIHtcbiAgICAgIHN0YXR1cy5oYXMgPSAnbWlzcydcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogTGlrZSB7QGxpbmsgTFJVQ2FjaGUjZ2V0fSBidXQgZG9lc24ndCB1cGRhdGUgcmVjZW5jeSBvciBkZWxldGUgc3RhbGVcbiAgICogaXRlbXMuXG4gICAqXG4gICAqIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGl0ZW0gaXMgc3RhbGUsIHVubGVzc1xuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UuYWxsb3dTdGFsZX0gaXMgc2V0LlxuICAgKi9cbiAgcGVlayhrOiBLLCBwZWVrT3B0aW9uczogTFJVQ2FjaGUuUGVla09wdGlvbnM8SywgViwgRkM+ID0ge30pIHtcbiAgICBjb25zdCB7IGFsbG93U3RhbGUgPSB0aGlzLmFsbG93U3RhbGUgfSA9IHBlZWtPcHRpb25zXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLiNrZXlNYXAuZ2V0KGspXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgKCFhbGxvd1N0YWxlICYmIHRoaXMuI2lzU3RhbGUoaW5kZXgpKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHYgPSB0aGlzLiN2YWxMaXN0W2luZGV4XVxuICAgIC8vIGVpdGhlciBzdGFsZSBhbmQgYWxsb3dlZCwgb3IgZm9yY2luZyBhIHJlZnJlc2ggb2Ygbm9uLXN0YWxlIHZhbHVlXG4gICAgcmV0dXJuIHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHYpID8gdi5fX3N0YWxlV2hpbGVGZXRjaGluZyA6IHZcbiAgfVxuXG4gICNiYWNrZ3JvdW5kRmV0Y2goXG4gICAgazogSyxcbiAgICBpbmRleDogSW5kZXggfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogTFJVQ2FjaGUuRmV0Y2hPcHRpb25zPEssIFYsIEZDPixcbiAgICBjb250ZXh0OiBhbnksXG4gICk6IEJhY2tncm91bmRGZXRjaDxWPiB7XG4gICAgY29uc3QgdiA9IGluZGV4ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB0aGlzLiN2YWxMaXN0W2luZGV4XVxuICAgIGlmICh0aGlzLiNpc0JhY2tncm91bmRGZXRjaCh2KSkge1xuICAgICAgcmV0dXJuIHZcbiAgICB9XG5cbiAgICBjb25zdCBhYyA9IG5ldyBBQygpXG4gICAgY29uc3QgeyBzaWduYWwgfSA9IG9wdGlvbnNcbiAgICAvLyB3aGVuL2lmIG91ciBBQyBzaWduYWxzLCB0aGVuIHN0b3AgbGlzdGVuaW5nIHRvIHRoZWlycy5cbiAgICBzaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCkgPT4gYWMuYWJvcnQoc2lnbmFsLnJlYXNvbiksIHtcbiAgICAgIHNpZ25hbDogYWMuc2lnbmFsLFxuICAgIH0pXG5cbiAgICBjb25zdCBmZXRjaE9wdHMgPSB7XG4gICAgICBzaWduYWw6IGFjLnNpZ25hbCxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb250ZXh0LFxuICAgIH1cblxuICAgIGNvbnN0IGNiID0gKHY6IFYgfCB1bmRlZmluZWQsIHVwZGF0ZUNhY2hlID0gZmFsc2UpOiBWIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgIGNvbnN0IHsgYWJvcnRlZCB9ID0gYWMuc2lnbmFsXG4gICAgICBjb25zdCBpZ25vcmVBYm9ydCA9IG9wdGlvbnMuaWdub3JlRmV0Y2hBYm9ydCAmJiB2ICE9PSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHByb2NlZWQgPVxuICAgICAgICBvcHRpb25zLmlnbm9yZUZldGNoQWJvcnQgfHxcbiAgICAgICAgISEob3B0aW9ucy5hbGxvd1N0YWxlT25GZXRjaEFib3J0ICYmIHYgIT09IHVuZGVmaW5lZClcbiAgICAgIGlmIChvcHRpb25zLnN0YXR1cykge1xuICAgICAgICBpZiAoYWJvcnRlZCAmJiAhdXBkYXRlQ2FjaGUpIHtcbiAgICAgICAgICBvcHRpb25zLnN0YXR1cy5mZXRjaEFib3J0ZWQgPSB0cnVlXG4gICAgICAgICAgb3B0aW9ucy5zdGF0dXMuZmV0Y2hFcnJvciA9IGFjLnNpZ25hbC5yZWFzb25cbiAgICAgICAgICBpZiAoaWdub3JlQWJvcnQpIG9wdGlvbnMuc3RhdHVzLmZldGNoQWJvcnRJZ25vcmVkID0gdHJ1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnMuc3RhdHVzLmZldGNoUmVzb2x2ZWQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChhYm9ydGVkICYmICFpZ25vcmVBYm9ydCAmJiAhdXBkYXRlQ2FjaGUpIHtcbiAgICAgICAgcmV0dXJuIGZldGNoRmFpbChhYy5zaWduYWwucmVhc29uLCBwcm9jZWVkKVxuICAgICAgfVxuICAgICAgLy8gZWl0aGVyIHdlIGRpZG4ndCBhYm9ydCwgYW5kIGFyZSBzdGlsbCBoZXJlLCBvciB3ZSBkaWQsIGFuZCBpZ25vcmVkXG4gICAgICBjb25zdCBiZiA9IHAgYXMgQmFja2dyb3VuZEZldGNoPFY+XG4gICAgICAvLyBpZiBub3RoaW5nIGVsc2UgaGFzIGJlZW4gd3JpdHRlbiB0aGVyZSBidXQgd2UncmUgc2V0IHRvIHVwZGF0ZSB0aGVcbiAgICAgIC8vIGNhY2hlIGFuZCBpZ25vcmUgdGhlIGFib3J0LCBvciBpZiBpdCdzIHN0aWxsIHBlbmRpbmcgb24gdGhpcyBzcGVjaWZpY1xuICAgICAgLy8gYmFja2dyb3VuZCByZXF1ZXN0LCB0aGVuIHdyaXRlIGl0IHRvIHRoZSBjYWNoZS5cbiAgICAgIGNvbnN0IHZsID0gdGhpcy4jdmFsTGlzdFtpbmRleCBhcyBJbmRleF1cbiAgICAgIGlmICh2bCA9PT0gcCB8fCAoaWdub3JlQWJvcnQgJiYgdXBkYXRlQ2FjaGUgJiYgdmwgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmIChiZi5fX3N0YWxlV2hpbGVGZXRjaGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLiN2YWxMaXN0W2luZGV4IGFzIEluZGV4XSA9IGJmLl9fc3RhbGVXaGlsZUZldGNoaW5nXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2RlbGV0ZShrLCAnZmV0Y2gnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5zdGF0dXMpIG9wdGlvbnMuc3RhdHVzLmZldGNoVXBkYXRlZCA9IHRydWVcbiAgICAgICAgICB0aGlzLnNldChrLCB2LCBmZXRjaE9wdHMub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZcbiAgICB9XG5cbiAgICBjb25zdCBlYiA9IChlcjogYW55KSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5zdGF0dXMpIHtcbiAgICAgICAgb3B0aW9ucy5zdGF0dXMuZmV0Y2hSZWplY3RlZCA9IHRydWVcbiAgICAgICAgb3B0aW9ucy5zdGF0dXMuZmV0Y2hFcnJvciA9IGVyXG4gICAgICB9XG4gICAgICAvLyBkbyBub3QgcGFzcyBnbywgZG8gbm90IGNvbGxlY3QgJDIwMFxuICAgICAgcmV0dXJuIGZldGNoRmFpbChlciwgZmFsc2UpXG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hGYWlsID0gKGVyOiBhbnksIHByb2NlZWQ6IGJvb2xlYW4pOiBWIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgIGNvbnN0IHsgYWJvcnRlZCB9ID0gYWMuc2lnbmFsXG4gICAgICBjb25zdCBhbGxvd1N0YWxlQWJvcnRlZCA9IGFib3J0ZWQgJiYgb3B0aW9ucy5hbGxvd1N0YWxlT25GZXRjaEFib3J0XG4gICAgICBjb25zdCBhbGxvd1N0YWxlID1cbiAgICAgICAgYWxsb3dTdGFsZUFib3J0ZWQgfHwgb3B0aW9ucy5hbGxvd1N0YWxlT25GZXRjaFJlamVjdGlvblxuICAgICAgY29uc3Qgbm9EZWxldGUgPSBhbGxvd1N0YWxlIHx8IG9wdGlvbnMubm9EZWxldGVPbkZldGNoUmVqZWN0aW9uXG4gICAgICBjb25zdCBiZiA9IHAgYXMgQmFja2dyb3VuZEZldGNoPFY+XG4gICAgICBpZiAodGhpcy4jdmFsTGlzdFtpbmRleCBhcyBJbmRleF0gPT09IHApIHtcbiAgICAgICAgLy8gaWYgd2UgYWxsb3cgc3RhbGUgb24gZmV0Y2ggcmVqZWN0aW9ucywgdGhlbiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0XG4gICAgICAgIC8vIHRoZSBzdGFsZSB2YWx1ZSBpcyBub3QgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZSB3aGVuIHRoZSBmZXRjaCBmYWlscy5cbiAgICAgICAgY29uc3QgZGVsID1cbiAgICAgICAgICAhbm9EZWxldGUgfHwgKCFwcm9jZWVkICYmIGJmLl9fc3RhbGVXaGlsZUZldGNoaW5nID09PSB1bmRlZmluZWQpXG4gICAgICAgIGlmIChkZWwpIHtcbiAgICAgICAgICB0aGlzLiNkZWxldGUoaywgJ2ZldGNoJylcbiAgICAgICAgfSBlbHNlIGlmICghYWxsb3dTdGFsZUFib3J0ZWQpIHtcbiAgICAgICAgICAvLyBzdGlsbCByZXBsYWNlIHRoZSAqcHJvbWlzZSogd2l0aCB0aGUgc3RhbGUgdmFsdWUsXG4gICAgICAgICAgLy8gc2luY2Ugd2UgYXJlIGRvbmUgd2l0aCB0aGUgcHJvbWlzZSBhdCB0aGlzIHBvaW50LlxuICAgICAgICAgIC8vIGxlYXZlIGl0IHVudG91Y2hlZCBpZiB3ZSdyZSBzdGlsbCB3YWl0aW5nIGZvciBhblxuICAgICAgICAgIC8vIGFib3J0ZWQgYmFja2dyb3VuZCBmZXRjaCB0aGF0IGhhc24ndCB5ZXQgcmV0dXJuZWQuXG4gICAgICAgICAgdGhpcy4jdmFsTGlzdFtpbmRleCBhcyBJbmRleF0gPSBiZi5fX3N0YWxlV2hpbGVGZXRjaGluZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYWxsb3dTdGFsZSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zdGF0dXMgJiYgYmYuX19zdGFsZVdoaWxlRmV0Y2hpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9wdGlvbnMuc3RhdHVzLnJldHVybmVkU3RhbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJmLl9fc3RhbGVXaGlsZUZldGNoaW5nXG4gICAgICB9IGVsc2UgaWYgKGJmLl9fcmV0dXJuZWQgPT09IGJmKSB7XG4gICAgICAgIHRocm93IGVyXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGNhbGwgPSAoXG4gICAgICByZXM6ICh2OiBWIHwgdW5kZWZpbmVkKSA9PiB2b2lkLFxuICAgICAgcmVqOiAoZTogYW55KSA9PiB2b2lkLFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgZm1wID0gdGhpcy4jZmV0Y2hNZXRob2Q/LihrLCB2LCBmZXRjaE9wdHMpXG4gICAgICBpZiAoZm1wICYmIGZtcCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgZm1wLnRoZW4odiA9PiByZXModiA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogdiksIHJlailcbiAgICAgIH1cbiAgICAgIC8vIGlnbm9yZWQsIHdlIGdvIHVudGlsIHdlIGZpbmlzaCwgcmVnYXJkbGVzcy5cbiAgICAgIC8vIGRlZmVyIGNoZWNrIHVudGlsIHdlIGFyZSBhY3R1YWxseSBhYm9ydGluZyxcbiAgICAgIC8vIHNvIGZldGNoTWV0aG9kIGNhbiBvdmVycmlkZS5cbiAgICAgIGFjLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmlnbm9yZUZldGNoQWJvcnQgfHwgb3B0aW9ucy5hbGxvd1N0YWxlT25GZXRjaEFib3J0KSB7XG4gICAgICAgICAgcmVzKHVuZGVmaW5lZClcbiAgICAgICAgICAvLyB3aGVuIGl0IGV2ZW50dWFsbHkgcmVzb2x2ZXMsIHVwZGF0ZSB0aGUgY2FjaGUuXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydCkge1xuICAgICAgICAgICAgcmVzID0gdiA9PiBjYih2LCB0cnVlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zdGF0dXMpIG9wdGlvbnMuc3RhdHVzLmZldGNoRGlzcGF0Y2hlZCA9IHRydWVcbiAgICBjb25zdCBwID0gbmV3IFByb21pc2UocGNhbGwpLnRoZW4oY2IsIGViKVxuICAgIGNvbnN0IGJmOiBCYWNrZ3JvdW5kRmV0Y2g8Vj4gPSBPYmplY3QuYXNzaWduKHAsIHtcbiAgICAgIF9fYWJvcnRDb250cm9sbGVyOiBhYyxcbiAgICAgIF9fc3RhbGVXaGlsZUZldGNoaW5nOiB2LFxuICAgICAgX19yZXR1cm5lZDogdW5kZWZpbmVkLFxuICAgIH0pXG5cbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gaW50ZXJuYWwsIGRvbid0IGV4cG9zZSBzdGF0dXMuXG4gICAgICB0aGlzLnNldChrLCBiZiwgeyAuLi5mZXRjaE9wdHMub3B0aW9ucywgc3RhdHVzOiB1bmRlZmluZWQgfSlcbiAgICAgIGluZGV4ID0gdGhpcy4ja2V5TWFwLmdldChrKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN2YWxMaXN0W2luZGV4XSA9IGJmXG4gICAgfVxuICAgIHJldHVybiBiZlxuICB9XG5cbiAgI2lzQmFja2dyb3VuZEZldGNoKHA6IGFueSk6IHAgaXMgQmFja2dyb3VuZEZldGNoPFY+IHtcbiAgICBpZiAoIXRoaXMuI2hhc0ZldGNoTWV0aG9kKSByZXR1cm4gZmFsc2VcbiAgICBjb25zdCBiID0gcCBhcyBCYWNrZ3JvdW5kRmV0Y2g8Vj5cbiAgICByZXR1cm4gKFxuICAgICAgISFiICYmXG4gICAgICBiIGluc3RhbmNlb2YgUHJvbWlzZSAmJlxuICAgICAgYi5oYXNPd25Qcm9wZXJ0eSgnX19zdGFsZVdoaWxlRmV0Y2hpbmcnKSAmJlxuICAgICAgYi5fX2Fib3J0Q29udHJvbGxlciBpbnN0YW5jZW9mIEFDXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYW4gYXN5bmNocm9ub3VzIGNhY2hlZCBmZXRjaCB1c2luZyB0aGVcbiAgICoge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSBmdW5jdGlvbi5cbiAgICpcbiAgICogSWYgdGhlIHZhbHVlIGlzIGluIHRoZSBjYWNoZSBhbmQgbm90IHN0YWxlLCB0aGVuIHRoZSByZXR1cm5lZFxuICAgKiBQcm9taXNlIHJlc29sdmVzIHRvIHRoZSB2YWx1ZS5cbiAgICpcbiAgICogSWYgbm90IGluIHRoZSBjYWNoZSwgb3IgYmV5b25kIGl0cyBUVEwgc3RhbGVuZXNzLCB0aGVuXG4gICAqIGBmZXRjaE1ldGhvZChrZXksIHN0YWxlVmFsdWUsIHsgb3B0aW9ucywgc2lnbmFsLCBjb250ZXh0IH0pYCBpc1xuICAgKiBjYWxsZWQsIGFuZCB0aGUgdmFsdWUgcmV0dXJuZWQgd2lsbCBiZSBhZGRlZCB0byB0aGUgY2FjaGUgb25jZVxuICAgKiByZXNvbHZlZC5cbiAgICpcbiAgICogSWYgY2FsbGVkIHdpdGggYGFsbG93U3RhbGVgLCBhbmQgYW4gYXN5bmNocm9ub3VzIGZldGNoIGlzXG4gICAqIGN1cnJlbnRseSBpbiBwcm9ncmVzcyB0byByZWxvYWQgYSBzdGFsZSB2YWx1ZSwgdGhlbiB0aGUgZm9ybWVyXG4gICAqIHN0YWxlIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQuXG4gICAqXG4gICAqIElmIGNhbGxlZCB3aXRoIGBmb3JjZVJlZnJlc2hgLCB0aGVuIHRoZSBjYWNoZWQgaXRlbSB3aWxsIGJlXG4gICAqIHJlLWZldGNoZWQsIGV2ZW4gaWYgaXQgaXMgbm90IHN0YWxlLiBIb3dldmVyLCBpZiBgYWxsb3dTdGFsZWAgaXMgYWxzb1xuICAgKiBzZXQsIHRoZW4gdGhlIG9sZCB2YWx1ZSB3aWxsIHN0aWxsIGJlIHJldHVybmVkLiBUaGlzIGlzIHVzZWZ1bFxuICAgKiBpbiBjYXNlcyB3aGVyZSB5b3Ugd2FudCB0byBmb3JjZSBhIHJlbG9hZCBvZiBhIGNhY2hlZCB2YWx1ZS4gSWZcbiAgICogYSBiYWNrZ3JvdW5kIGZldGNoIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHRoZW4gYGZvcmNlUmVmcmVzaGBcbiAgICogaGFzIG5vIGVmZmVjdC5cbiAgICpcbiAgICogSWYgbXVsdGlwbGUgZmV0Y2hlcyBmb3IgdGhlIHNhbWUga2V5IGFyZSBpc3N1ZWQsIHRoZW4gdGhleSB3aWxsIGFsbCBiZVxuICAgKiBjb2FsZXNjZWQgaW50byBhIHNpbmdsZSBjYWxsIHRvIGZldGNoTWV0aG9kLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0IGhhbmRsaW5nIG9wdGlvbnMgc3VjaCBhc1xuICAgKiB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UuYWxsb3dTdGFsZU9uRmV0Y2hBYm9ydH0sXG4gICAqIHtAbGluayBMUlVDYWNoZS5GZXRjaE9wdGlvbnMuc2lnbmFsfSxcbiAgICogYW5kIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5hbGxvd1N0YWxlT25GZXRjaFJlamVjdGlvbn0gd2lsbCBiZVxuICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBGSVJTVCBmZXRjaCgpIGNhbGwgZm9yIGEgZ2l2ZW4ga2V5LlxuICAgKlxuICAgKiBUaGlzIGlzIGEga25vd24gKGZpeGFibGUpIHNob3J0Y29taW5nIHdoaWNoIHdpbGwgYmUgYWRkcmVzZWQgb24gd2hlblxuICAgKiBzb21lb25lIGNvbXBsYWlucyBhYm91dCBpdCwgYXMgdGhlIGZpeCB3b3VsZCBpbnZvbHZlIGFkZGVkIGNvbXBsZXhpdHkgYW5kXG4gICAqIG1heSBub3QgYmUgd29ydGggdGhlIGNvc3RzIGZvciB0aGlzIGVkZ2UgY2FzZS5cbiAgICpcbiAgICogSWYge0BsaW5rIExSVUNhY2hlLk9wdGlvbnNCYXNlLmZldGNoTWV0aG9kfSBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoaXMgaXNcbiAgICogZWZmZWN0aXZlbHkgYW4gYWxpYXMgZm9yIGBQcm9taXNlLnJlc29sdmUoY2FjaGUuZ2V0KGtleSkpYC5cbiAgICpcbiAgICogV2hlbiB0aGUgZmV0Y2ggbWV0aG9kIHJlc29sdmVzIHRvIGEgdmFsdWUsIGlmIHRoZSBmZXRjaCBoYXMgbm90XG4gICAqIGJlZW4gYWJvcnRlZCBkdWUgdG8gZGVsZXRpb24sIGV2aWN0aW9uLCBvciBiZWluZyBvdmVyd3JpdHRlbixcbiAgICogdGhlbiBpdCBpcyBhZGRlZCB0byB0aGUgY2FjaGUgdXNpbmcgdGhlIG9wdGlvbnMgcHJvdmlkZWQuXG4gICAqXG4gICAqIElmIHRoZSBrZXkgaXMgZXZpY3RlZCBvciBkZWxldGVkIGJlZm9yZSB0aGUgYGZldGNoTWV0aG9kYFxuICAgKiByZXNvbHZlcywgdGhlbiB0aGUgQWJvcnRTaWduYWwgcGFzc2VkIHRvIHRoZSBgZmV0Y2hNZXRob2RgIHdpbGxcbiAgICogcmVjZWl2ZSBhbiBgYWJvcnRgIGV2ZW50LCBhbmQgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgYGZldGNoKClgXG4gICAqIHdpbGwgcmVqZWN0IHdpdGggdGhlIHJlYXNvbiBmb3IgdGhlIGFib3J0LlxuICAgKlxuICAgKiBJZiBhIGBzaWduYWxgIGlzIHBhc3NlZCB0byB0aGUgYGZldGNoKClgIGNhbGwsIHRoZW4gYWJvcnRpbmcgdGhlXG4gICAqIHNpZ25hbCB3aWxsIGFib3J0IHRoZSBmZXRjaCBhbmQgY2F1c2UgdGhlIGBmZXRjaCgpYCBwcm9taXNlIHRvXG4gICAqIHJlamVjdCB3aXRoIHRoZSByZWFzb24gcHJvdmlkZWQuXG4gICAqXG4gICAqICoqU2V0dGluZyBgY29udGV4dGAqKlxuICAgKlxuICAgKiBJZiBhbiBgRkNgIHR5cGUgaXMgc2V0IHRvIGEgdHlwZSBvdGhlciB0aGFuIGB1bmtub3duYCwgYHZvaWRgLCBvclxuICAgKiBgdW5kZWZpbmVkYCBpbiB0aGUge0BsaW5rIExSVUNhY2hlfSBjb25zdHJ1Y3RvciwgdGhlbiBhbGxcbiAgICogY2FsbHMgdG8gYGNhY2hlLmZldGNoKClgIF9tdXN0XyBwcm92aWRlIGEgYGNvbnRleHRgIG9wdGlvbi4gSWZcbiAgICogc2V0IHRvIGB1bmRlZmluZWRgIG9yIGB2b2lkYCwgdGhlbiBjYWxscyB0byBmZXRjaCBfbXVzdCBub3RfXG4gICAqIHByb3ZpZGUgYSBgY29udGV4dGAgb3B0aW9uLlxuICAgKlxuICAgKiBUaGUgYGNvbnRleHRgIHBhcmFtIGFsbG93cyB5b3UgdG8gcHJvdmlkZSBhcmJpdHJhcnkgZGF0YSB0aGF0XG4gICAqIG1pZ2h0IGJlIHJlbGV2YW50IGluIHRoZSBjb3Vyc2Ugb2YgZmV0Y2hpbmcgdGhlIGRhdGEuIEl0IGlzIG9ubHlcbiAgICogcmVsZXZhbnQgZm9yIHRoZSBjb3Vyc2Ugb2YgYSBzaW5nbGUgYGZldGNoKClgIG9wZXJhdGlvbiwgYW5kXG4gICAqIGRpc2NhcmRlZCBhZnRlcndhcmRzLlxuICAgKlxuICAgKiAqKk5vdGU6IGBmZXRjaCgpYCBjYWxscyBhcmUgaW5mbGlnaHQtdW5pcXVlKipcbiAgICpcbiAgICogSWYgeW91IGNhbGwgYGZldGNoKClgIG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUga2V5IHZhbHVlLFxuICAgKiB0aGVuIGV2ZXJ5IGNhbGwgYWZ0ZXIgdGhlIGZpcnN0IHdpbGwgcmVzb2x2ZSBvbiB0aGUgc2FtZVxuICAgKiBwcm9taXNlPHN1cD4xPC9zdXA+LFxuICAgKiBfZXZlbiBpZiB0aGV5IGhhdmUgZGlmZmVyZW50IHNldHRpbmdzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGNoYW5nZVxuICAgKiB0aGUgYmVoYXZpb3Igb2YgdGhlIGZldGNoXywgc3VjaCBhcyBgbm9EZWxldGVPbkZldGNoUmVqZWN0aW9uYFxuICAgKiBvciBgaWdub3JlRmV0Y2hBYm9ydGAuXG4gICAqXG4gICAqIEluIG1vc3QgY2FzZXMsIHRoaXMgaXMgbm90IGEgcHJvYmxlbSAoaW4gZmFjdCwgb25seSBmZXRjaGluZ1xuICAgKiBzb21ldGhpbmcgb25jZSBpcyB3aGF0IHlvdSBwcm9iYWJseSB3YW50LCBpZiB5b3UncmUgY2FjaGluZyBpblxuICAgKiB0aGUgZmlyc3QgcGxhY2UpLiBJZiB5b3UgYXJlIGNoYW5naW5nIHRoZSBmZXRjaCgpIG9wdGlvbnNcbiAgICogZHJhbWF0aWNhbGx5IGJldHdlZW4gcnVucywgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHRoYXQgeW91IG1pZ2h0XG4gICAqIGJlIHRyeWluZyB0byBmaXQgZGl2ZXJnZW50IHNlbWFudGljcyBpbnRvIGEgc2luZ2xlIG9iamVjdCwgYW5kXG4gICAqIHdvdWxkIGJlIGJldHRlciBvZmYgd2l0aCBtdWx0aXBsZSBjYWNoZSBpbnN0YW5jZXMuXG4gICAqXG4gICAqICoqMSoqOiBJZSwgdGhleSdyZSBub3QgdGhlIFwic2FtZSBQcm9taXNlXCIsIGJ1dCB0aGV5IHJlc29sdmUgYXRcbiAgICogdGhlIHNhbWUgdGltZSwgYmVjYXVzZSB0aGV5J3JlIGJvdGggd2FpdGluZyBvbiB0aGUgc2FtZVxuICAgKiB1bmRlcmx5aW5nIGZldGNoTWV0aG9kIHJlc3BvbnNlLlxuICAgKi9cblxuICBmZXRjaChcbiAgICBrOiBLLFxuICAgIGZldGNoT3B0aW9uczogdW5rbm93biBleHRlbmRzIEZDID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zPEssIFYsIEZDPlxuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zTm9Db250ZXh0PEssIFY+XG4gICAgOiBMUlVDYWNoZS5GZXRjaE9wdGlvbnNXaXRoQ29udGV4dDxLLCBWLCBGQz4sXG4gICk6IFByb21pc2U8dW5kZWZpbmVkIHwgVj5cblxuICAvLyB0aGlzIG92ZXJsb2FkIG5vdCBhbGxvd2VkIGlmIGNvbnRleHQgaXMgcmVxdWlyZWRcbiAgZmV0Y2goXG4gICAgazogdW5rbm93biBleHRlbmRzIEZDID8gS1xuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gS1xuICAgIDogbmV2ZXIsXG4gICAgZmV0Y2hPcHRpb25zPzogdW5rbm93biBleHRlbmRzIEZDID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zPEssIFYsIEZDPlxuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zTm9Db250ZXh0PEssIFY+XG4gICAgOiBuZXZlcixcbiAgKTogUHJvbWlzZTx1bmRlZmluZWQgfCBWPlxuXG4gIGFzeW5jIGZldGNoKFxuICAgIGs6IEssXG4gICAgZmV0Y2hPcHRpb25zOiBMUlVDYWNoZS5GZXRjaE9wdGlvbnM8SywgViwgRkM+ID0ge30sXG4gICk6IFByb21pc2U8dW5kZWZpbmVkIHwgVj4ge1xuICAgIGNvbnN0IHtcbiAgICAgIC8vIGdldCBvcHRpb25zXG4gICAgICBhbGxvd1N0YWxlID0gdGhpcy5hbGxvd1N0YWxlLFxuICAgICAgdXBkYXRlQWdlT25HZXQgPSB0aGlzLnVwZGF0ZUFnZU9uR2V0LFxuICAgICAgbm9EZWxldGVPblN0YWxlR2V0ID0gdGhpcy5ub0RlbGV0ZU9uU3RhbGVHZXQsXG4gICAgICAvLyBzZXQgb3B0aW9uc1xuICAgICAgdHRsID0gdGhpcy50dGwsXG4gICAgICBub0Rpc3Bvc2VPblNldCA9IHRoaXMubm9EaXNwb3NlT25TZXQsXG4gICAgICBzaXplID0gMCxcbiAgICAgIHNpemVDYWxjdWxhdGlvbiA9IHRoaXMuc2l6ZUNhbGN1bGF0aW9uLFxuICAgICAgbm9VcGRhdGVUVEwgPSB0aGlzLm5vVXBkYXRlVFRMLFxuICAgICAgLy8gZmV0Y2ggZXhjbHVzaXZlIG9wdGlvbnNcbiAgICAgIG5vRGVsZXRlT25GZXRjaFJlamVjdGlvbiA9IHRoaXMubm9EZWxldGVPbkZldGNoUmVqZWN0aW9uLFxuICAgICAgYWxsb3dTdGFsZU9uRmV0Y2hSZWplY3Rpb24gPSB0aGlzLmFsbG93U3RhbGVPbkZldGNoUmVqZWN0aW9uLFxuICAgICAgaWdub3JlRmV0Y2hBYm9ydCA9IHRoaXMuaWdub3JlRmV0Y2hBYm9ydCxcbiAgICAgIGFsbG93U3RhbGVPbkZldGNoQWJvcnQgPSB0aGlzLmFsbG93U3RhbGVPbkZldGNoQWJvcnQsXG4gICAgICBjb250ZXh0LFxuICAgICAgZm9yY2VSZWZyZXNoID0gZmFsc2UsXG4gICAgICBzdGF0dXMsXG4gICAgICBzaWduYWwsXG4gICAgfSA9IGZldGNoT3B0aW9uc1xuXG4gICAgaWYgKCF0aGlzLiNoYXNGZXRjaE1ldGhvZCkge1xuICAgICAgaWYgKHN0YXR1cykgc3RhdHVzLmZldGNoID0gJ2dldCdcbiAgICAgIHJldHVybiB0aGlzLmdldChrLCB7XG4gICAgICAgIGFsbG93U3RhbGUsXG4gICAgICAgIHVwZGF0ZUFnZU9uR2V0LFxuICAgICAgICBub0RlbGV0ZU9uU3RhbGVHZXQsXG4gICAgICAgIHN0YXR1cyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGFsbG93U3RhbGUsXG4gICAgICB1cGRhdGVBZ2VPbkdldCxcbiAgICAgIG5vRGVsZXRlT25TdGFsZUdldCxcbiAgICAgIHR0bCxcbiAgICAgIG5vRGlzcG9zZU9uU2V0LFxuICAgICAgc2l6ZSxcbiAgICAgIHNpemVDYWxjdWxhdGlvbixcbiAgICAgIG5vVXBkYXRlVFRMLFxuICAgICAgbm9EZWxldGVPbkZldGNoUmVqZWN0aW9uLFxuICAgICAgYWxsb3dTdGFsZU9uRmV0Y2hSZWplY3Rpb24sXG4gICAgICBhbGxvd1N0YWxlT25GZXRjaEFib3J0LFxuICAgICAgaWdub3JlRmV0Y2hBYm9ydCxcbiAgICAgIHN0YXR1cyxcbiAgICAgIHNpZ25hbCxcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSB0aGlzLiNrZXlNYXAuZ2V0KGspXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChzdGF0dXMpIHN0YXR1cy5mZXRjaCA9ICdtaXNzJ1xuICAgICAgY29uc3QgcCA9IHRoaXMuI2JhY2tncm91bmRGZXRjaChrLCBpbmRleCwgb3B0aW9ucywgY29udGV4dClcbiAgICAgIHJldHVybiAocC5fX3JldHVybmVkID0gcClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW4gY2FjaGUsIG1heWJlIGFscmVhZHkgZmV0Y2hpbmdcbiAgICAgIGNvbnN0IHYgPSB0aGlzLiN2YWxMaXN0W2luZGV4XVxuICAgICAgaWYgKHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHYpKSB7XG4gICAgICAgIGNvbnN0IHN0YWxlID0gYWxsb3dTdGFsZSAmJiB2Ll9fc3RhbGVXaGlsZUZldGNoaW5nICE9PSB1bmRlZmluZWRcbiAgICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICAgIHN0YXR1cy5mZXRjaCA9ICdpbmZsaWdodCdcbiAgICAgICAgICBpZiAoc3RhbGUpIHN0YXR1cy5yZXR1cm5lZFN0YWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGFsZSA/IHYuX19zdGFsZVdoaWxlRmV0Y2hpbmcgOiAodi5fX3JldHVybmVkID0gdilcbiAgICAgIH1cblxuICAgICAgLy8gaWYgd2UgZm9yY2UgYSByZWZyZXNoLCB0aGF0IG1lYW5zIGRvIE5PVCBzZXJ2ZSB0aGUgY2FjaGVkIHZhbHVlLFxuICAgICAgLy8gdW5sZXNzIHdlIGFyZSBhbHJlYWR5IGluIHRoZSBwcm9jZXNzIG9mIHJlZnJlc2hpbmcgdGhlIGNhY2hlLlxuICAgICAgY29uc3QgaXNTdGFsZSA9IHRoaXMuI2lzU3RhbGUoaW5kZXgpXG4gICAgICBpZiAoIWZvcmNlUmVmcmVzaCAmJiAhaXNTdGFsZSkge1xuICAgICAgICBpZiAoc3RhdHVzKSBzdGF0dXMuZmV0Y2ggPSAnaGl0J1xuICAgICAgICB0aGlzLiNtb3ZlVG9UYWlsKGluZGV4KVxuICAgICAgICBpZiAodXBkYXRlQWdlT25HZXQpIHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVJdGVtQWdlKGluZGV4KVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMpIHRoaXMuI3N0YXR1c1RUTChzdGF0dXMsIGluZGV4KVxuICAgICAgICByZXR1cm4gdlxuICAgICAgfVxuXG4gICAgICAvLyBvaywgaXQgaXMgc3RhbGUgb3IgYSBmb3JjZWQgcmVmcmVzaCwgYW5kIG5vdCBhbHJlYWR5IGZldGNoaW5nLlxuICAgICAgLy8gcmVmcmVzaCB0aGUgY2FjaGUuXG4gICAgICBjb25zdCBwID0gdGhpcy4jYmFja2dyb3VuZEZldGNoKGssIGluZGV4LCBvcHRpb25zLCBjb250ZXh0KVxuICAgICAgY29uc3QgaGFzU3RhbGUgPSBwLl9fc3RhbGVXaGlsZUZldGNoaW5nICE9PSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHN0YWxlVmFsID0gaGFzU3RhbGUgJiYgYWxsb3dTdGFsZVxuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICBzdGF0dXMuZmV0Y2ggPSBpc1N0YWxlID8gJ3N0YWxlJyA6ICdyZWZyZXNoJ1xuICAgICAgICBpZiAoc3RhbGVWYWwgJiYgaXNTdGFsZSkgc3RhdHVzLnJldHVybmVkU3RhbGUgPSB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhbGVWYWwgPyBwLl9fc3RhbGVXaGlsZUZldGNoaW5nIDogKHAuX19yZXR1cm5lZCA9IHApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHNvbWUgY2FzZXMsIGBjYWNoZS5mZXRjaCgpYCBtYXkgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYCwgZWl0aGVyIGJlY2F1c2VcbiAgICogYSB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UjZmV0Y2hNZXRob2R9IHdhcyBub3QgcHJvdmlkZWQgKHR1cm5pbmdcbiAgICogYGNhY2hlLmZldGNoKGspYCBpbnRvIGp1c3QgYW4gYXN5bmMgd3JhcHBlciBhcm91bmQgYGNhY2hlLmdldChrKWApIG9yXG4gICAqIGJlY2F1c2UgYGlnbm9yZUZldGNoQWJvcnRgIHdhcyBzcGVjaWZpZWQgKGVpdGhlciB0byB0aGUgY29uc3RydWN0b3Igb3JcbiAgICogaW4gdGhlIHtAbGluayBMUlVDYWNoZS5GZXRjaE9wdGlvbnN9KS4gQWxzbywgdGhlXG4gICAqIHtAbGluayBMUlVDYWNoZS5PcHRpb25zQmFzZS5mZXRjaE1ldGhvZH0gbWF5IHJldHVybiBgdW5kZWZpbmVkYCBvciBgdm9pZGAsIG1ha2luZ1xuICAgKiB0aGUgdGVzdCBldmVuIG1vcmUgY29tcGxpY2F0ZWQuXG4gICAqXG4gICAqIEJlY2F1c2UgaW5mZXJyaW5nIHRoZSBjYXNlcyB3aGVyZSBgdW5kZWZpbmVkYCBtaWdodCBiZSByZXR1cm5lZCBhcmUgc29cbiAgICogY3VtYmVyc29tZSwgYnV0IHRlc3RpbmcgZm9yIGB1bmRlZmluZWRgIGNhbiBhbHNvIGJlIGFubm95aW5nLCB0aGlzIG1ldGhvZFxuICAgKiBjYW4gYmUgdXNlZCwgd2hpY2ggd2lsbCByZWplY3QgaWYgYHRoaXMuZmV0Y2goKWAgcmVzb2x2ZXMgdG8gdW5kZWZpbmVkLlxuICAgKi9cbiAgZm9yY2VGZXRjaChcbiAgICBrOiBLLFxuICAgIGZldGNoT3B0aW9uczogdW5rbm93biBleHRlbmRzIEZDID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zPEssIFYsIEZDPlxuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zTm9Db250ZXh0PEssIFY+XG4gICAgOiBMUlVDYWNoZS5GZXRjaE9wdGlvbnNXaXRoQ29udGV4dDxLLCBWLCBGQz4sXG4gICk6IFByb21pc2U8Vj5cbiAgLy8gdGhpcyBvdmVybG9hZCBub3QgYWxsb3dlZCBpZiBjb250ZXh0IGlzIHJlcXVpcmVkXG4gIGZvcmNlRmV0Y2goXG4gICAgazogdW5rbm93biBleHRlbmRzIEZDID8gS1xuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gS1xuICAgIDogbmV2ZXIsXG4gICAgZmV0Y2hPcHRpb25zPzogdW5rbm93biBleHRlbmRzIEZDID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zPEssIFYsIEZDPlxuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gTFJVQ2FjaGUuRmV0Y2hPcHRpb25zTm9Db250ZXh0PEssIFY+XG4gICAgOiBuZXZlcixcbiAgKTogUHJvbWlzZTxWPlxuICBhc3luYyBmb3JjZUZldGNoKFxuICAgIGs6IEssXG4gICAgZmV0Y2hPcHRpb25zOiBMUlVDYWNoZS5GZXRjaE9wdGlvbnM8SywgViwgRkM+ID0ge30sXG4gICk6IFByb21pc2U8Vj4ge1xuICAgIGNvbnN0IHYgPSBhd2FpdCB0aGlzLmZldGNoKFxuICAgICAgayxcbiAgICAgIGZldGNoT3B0aW9ucyBhcyB1bmtub3duIGV4dGVuZHMgRkMgPyBMUlVDYWNoZS5GZXRjaE9wdGlvbnM8SywgViwgRkM+XG4gICAgICA6IEZDIGV4dGVuZHMgdW5kZWZpbmVkIHwgdm9pZCA/IExSVUNhY2hlLkZldGNoT3B0aW9uc05vQ29udGV4dDxLLCBWPlxuICAgICAgOiBMUlVDYWNoZS5GZXRjaE9wdGlvbnNXaXRoQ29udGV4dDxLLCBWLCBGQz4sXG4gICAgKVxuICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcignZmV0Y2goKSByZXR1cm5lZCB1bmRlZmluZWQnKVxuICAgIHJldHVybiB2XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGtleSBpcyBmb3VuZCBpbiB0aGUgY2FjaGUsIHRoZW4gdGhpcyBpcyBlcXVpdmFsZW50IHRvXG4gICAqIHtAbGluayBMUlVDYWNoZSNnZXR9LiBJZiBub3QsIGluIHRoZSBjYWNoZSwgdGhlbiBjYWxjdWxhdGUgdGhlIHZhbHVlIHVzaW5nXG4gICAqIHRoZSB7QGxpbmsgTFJVQ2FjaGUuT3B0aW9uc0Jhc2UubWVtb01ldGhvZH0sIGFuZCBhZGQgaXQgdG8gdGhlIGNhY2hlLlxuICAgKlxuICAgKiBJZiBhbiBgRkNgIHR5cGUgaXMgc2V0IHRvIGEgdHlwZSBvdGhlciB0aGFuIGB1bmtub3duYCwgYHZvaWRgLCBvclxuICAgKiBgdW5kZWZpbmVkYCBpbiB0aGUgTFJVQ2FjaGUgY29uc3RydWN0b3IsIHRoZW4gYWxsIGNhbGxzIHRvIGBjYWNoZS5tZW1vKClgXG4gICAqIF9tdXN0XyBwcm92aWRlIGEgYGNvbnRleHRgIG9wdGlvbi4gSWYgc2V0IHRvIGB1bmRlZmluZWRgIG9yIGB2b2lkYCwgdGhlblxuICAgKiBjYWxscyB0byBtZW1vIF9tdXN0IG5vdF8gcHJvdmlkZSBhIGBjb250ZXh0YCBvcHRpb24uXG4gICAqXG4gICAqIFRoZSBgY29udGV4dGAgcGFyYW0gYWxsb3dzIHlvdSB0byBwcm92aWRlIGFyYml0cmFyeSBkYXRhIHRoYXQgbWlnaHQgYmVcbiAgICogcmVsZXZhbnQgaW4gdGhlIGNvdXJzZSBvZiBmZXRjaGluZyB0aGUgZGF0YS4gSXQgaXMgb25seSByZWxldmFudCBmb3IgdGhlXG4gICAqIGNvdXJzZSBvZiBhIHNpbmdsZSBgbWVtbygpYCBvcGVyYXRpb24sIGFuZCBkaXNjYXJkZWQgYWZ0ZXJ3YXJkcy5cbiAgICovXG4gIG1lbW8oXG4gICAgazogSyxcbiAgICBtZW1vT3B0aW9uczogdW5rbm93biBleHRlbmRzIEZDID8gTFJVQ2FjaGUuTWVtb09wdGlvbnM8SywgViwgRkM+XG4gICAgOiBGQyBleHRlbmRzIHVuZGVmaW5lZCB8IHZvaWQgPyBMUlVDYWNoZS5NZW1vT3B0aW9uc05vQ29udGV4dDxLLCBWPlxuICAgIDogTFJVQ2FjaGUuTWVtb09wdGlvbnNXaXRoQ29udGV4dDxLLCBWLCBGQz4sXG4gICk6IFZcbiAgLy8gdGhpcyBvdmVybG9hZCBub3QgYWxsb3dlZCBpZiBjb250ZXh0IGlzIHJlcXVpcmVkXG4gIG1lbW8oXG4gICAgazogdW5rbm93biBleHRlbmRzIEZDID8gS1xuICAgIDogRkMgZXh0ZW5kcyB1bmRlZmluZWQgfCB2b2lkID8gS1xuICAgIDogbmV2ZXIsXG4gICAgbWVtb09wdGlvbnM/OiB1bmtub3duIGV4dGVuZHMgRkMgPyBMUlVDYWNoZS5NZW1vT3B0aW9uczxLLCBWLCBGQz5cbiAgICA6IEZDIGV4dGVuZHMgdW5kZWZpbmVkIHwgdm9pZCA/IExSVUNhY2hlLk1lbW9PcHRpb25zTm9Db250ZXh0PEssIFY+XG4gICAgOiBuZXZlcixcbiAgKTogVlxuICBtZW1vKGs6IEssIG1lbW9PcHRpb25zOiBMUlVDYWNoZS5NZW1vT3B0aW9uczxLLCBWLCBGQz4gPSB7fSkge1xuICAgIGNvbnN0IG1lbW9NZXRob2QgPSB0aGlzLiNtZW1vTWV0aG9kXG4gICAgaWYgKCFtZW1vTWV0aG9kKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIG1lbW9NZXRob2QgcHJvdmlkZWQgdG8gY29uc3RydWN0b3InKVxuICAgIH1cbiAgICBjb25zdCB7IGNvbnRleHQsIGZvcmNlUmVmcmVzaCwgLi4ub3B0aW9ucyB9ID0gbWVtb09wdGlvbnNcbiAgICBjb25zdCB2ID0gdGhpcy5nZXQoaywgb3B0aW9ucylcbiAgICBpZiAoIWZvcmNlUmVmcmVzaCAmJiB2ICE9PSB1bmRlZmluZWQpIHJldHVybiB2XG4gICAgY29uc3QgdnYgPSBtZW1vTWV0aG9kKGssIHYsIHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb250ZXh0LFxuICAgIH0gYXMgTFJVQ2FjaGUuTWVtb2l6ZXJPcHRpb25zPEssIFYsIEZDPilcbiAgICB0aGlzLnNldChrLCB2diwgb3B0aW9ucylcbiAgICByZXR1cm4gdnZcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB2YWx1ZSBmcm9tIHRoZSBjYWNoZS4gV2lsbCB1cGRhdGUgdGhlIHJlY2VuY3kgb2YgdGhlIGNhY2hlXG4gICAqIGVudHJ5IGZvdW5kLlxuICAgKlxuICAgKiBJZiB0aGUga2V5IGlzIG5vdCBmb3VuZCwgZ2V0KCkgd2lsbCByZXR1cm4gYHVuZGVmaW5lZGAuXG4gICAqL1xuICBnZXQoazogSywgZ2V0T3B0aW9uczogTFJVQ2FjaGUuR2V0T3B0aW9uczxLLCBWLCBGQz4gPSB7fSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFsbG93U3RhbGUgPSB0aGlzLmFsbG93U3RhbGUsXG4gICAgICB1cGRhdGVBZ2VPbkdldCA9IHRoaXMudXBkYXRlQWdlT25HZXQsXG4gICAgICBub0RlbGV0ZU9uU3RhbGVHZXQgPSB0aGlzLm5vRGVsZXRlT25TdGFsZUdldCxcbiAgICAgIHN0YXR1cyxcbiAgICB9ID0gZ2V0T3B0aW9uc1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy4ja2V5TWFwLmdldChrKVxuICAgIGlmIChpbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuI3ZhbExpc3RbaW5kZXhdXG4gICAgICBjb25zdCBmZXRjaGluZyA9IHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHZhbHVlKVxuICAgICAgaWYgKHN0YXR1cykgdGhpcy4jc3RhdHVzVFRMKHN0YXR1cywgaW5kZXgpXG4gICAgICBpZiAodGhpcy4jaXNTdGFsZShpbmRleCkpIHtcbiAgICAgICAgaWYgKHN0YXR1cykgc3RhdHVzLmdldCA9ICdzdGFsZSdcbiAgICAgICAgLy8gZGVsZXRlIG9ubHkgaWYgbm90IGFuIGluLWZsaWdodCBiYWNrZ3JvdW5kIGZldGNoXG4gICAgICAgIGlmICghZmV0Y2hpbmcpIHtcbiAgICAgICAgICBpZiAoIW5vRGVsZXRlT25TdGFsZUdldCkge1xuICAgICAgICAgICAgdGhpcy4jZGVsZXRlKGssICdleHBpcmUnKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhdHVzICYmIGFsbG93U3RhbGUpIHN0YXR1cy5yZXR1cm5lZFN0YWxlID0gdHJ1ZVxuICAgICAgICAgIHJldHVybiBhbGxvd1N0YWxlID8gdmFsdWUgOiB1bmRlZmluZWRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBzdGF0dXMgJiZcbiAgICAgICAgICAgIGFsbG93U3RhbGUgJiZcbiAgICAgICAgICAgIHZhbHVlLl9fc3RhbGVXaGlsZUZldGNoaW5nICE9PSB1bmRlZmluZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHN0YXR1cy5yZXR1cm5lZFN0YWxlID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWxsb3dTdGFsZSA/IHZhbHVlLl9fc3RhbGVXaGlsZUZldGNoaW5nIDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzdGF0dXMpIHN0YXR1cy5nZXQgPSAnaGl0J1xuICAgICAgICAvLyBpZiB3ZSdyZSBjdXJyZW50bHkgZmV0Y2hpbmcgaXQsIHdlIGRvbid0IGFjdHVhbGx5IGhhdmUgaXQgeWV0XG4gICAgICAgIC8vIGl0J3Mgbm90IHN0YWxlLCB3aGljaCBtZWFucyB0aGlzIGlzbid0IGEgc3RhbGVXaGlsZVJlZmV0Y2hpbmcuXG4gICAgICAgIC8vIElmIGl0J3Mgbm90IHN0YWxlLCBhbmQgZmV0Y2hpbmcsIEFORCBoYXMgYSBfX3N0YWxlV2hpbGVGZXRjaGluZ1xuICAgICAgICAvLyB2YWx1ZSwgdGhlbiB0aGF0IG1lYW5zIHRoZSB1c2VyIGZldGNoZWQgd2l0aCB7Zm9yY2VSZWZyZXNoOnRydWV9LFxuICAgICAgICAvLyBzbyBpdCdzIHNhZmUgdG8gcmV0dXJuIHRoYXQgdmFsdWUuXG4gICAgICAgIGlmIChmZXRjaGluZykge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5fX3N0YWxlV2hpbGVGZXRjaGluZ1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI21vdmVUb1RhaWwoaW5kZXgpXG4gICAgICAgIGlmICh1cGRhdGVBZ2VPbkdldCkge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUl0ZW1BZ2UoaW5kZXgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGF0dXMpIHtcbiAgICAgIHN0YXR1cy5nZXQgPSAnbWlzcydcbiAgICB9XG4gIH1cblxuICAjY29ubmVjdChwOiBJbmRleCwgbjogSW5kZXgpIHtcbiAgICB0aGlzLiNwcmV2W25dID0gcFxuICAgIHRoaXMuI25leHRbcF0gPSBuXG4gIH1cblxuICAjbW92ZVRvVGFpbChpbmRleDogSW5kZXgpOiB2b2lkIHtcbiAgICAvLyBpZiB0YWlsIGFscmVhZHksIG5vdGhpbmcgdG8gZG9cbiAgICAvLyBpZiBoZWFkLCBtb3ZlIGhlYWQgdG8gbmV4dFtpbmRleF1cbiAgICAvLyBlbHNlXG4gICAgLy8gICBtb3ZlIG5leHRbcHJldltpbmRleF1dIHRvIG5leHRbaW5kZXhdIChoZWFkIGhhcyBubyBwcmV2KVxuICAgIC8vICAgbW92ZSBwcmV2W25leHRbaW5kZXhdXSB0byBwcmV2W2luZGV4XVxuICAgIC8vIHByZXZbaW5kZXhdID0gdGFpbFxuICAgIC8vIG5leHRbdGFpbF0gPSBpbmRleFxuICAgIC8vIHRhaWwgPSBpbmRleFxuICAgIGlmIChpbmRleCAhPT0gdGhpcy4jdGFpbCkge1xuICAgICAgaWYgKGluZGV4ID09PSB0aGlzLiNoZWFkKSB7XG4gICAgICAgIHRoaXMuI2hlYWQgPSB0aGlzLiNuZXh0W2luZGV4XSBhcyBJbmRleFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jY29ubmVjdChcbiAgICAgICAgICB0aGlzLiNwcmV2W2luZGV4XSBhcyBJbmRleCxcbiAgICAgICAgICB0aGlzLiNuZXh0W2luZGV4XSBhcyBJbmRleCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdGhpcy4jY29ubmVjdCh0aGlzLiN0YWlsLCBpbmRleClcbiAgICAgIHRoaXMuI3RhaWwgPSBpbmRleFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEga2V5IG91dCBvZiB0aGUgY2FjaGUuXG4gICAqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUga2V5IHdhcyBkZWxldGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBkZWxldGUoazogSykge1xuICAgIHJldHVybiB0aGlzLiNkZWxldGUoaywgJ2RlbGV0ZScpXG4gIH1cblxuICAjZGVsZXRlKGs6IEssIHJlYXNvbjogTFJVQ2FjaGUuRGlzcG9zZVJlYXNvbikge1xuICAgIGxldCBkZWxldGVkID0gZmFsc2VcbiAgICBpZiAodGhpcy4jc2l6ZSAhPT0gMCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLiNrZXlNYXAuZ2V0KGspXG4gICAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodGhpcy4jYXV0b3B1cmdlVGltZXJzPy5baW5kZXhdKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuI2F1dG9wdXJnZVRpbWVycz8uW2luZGV4XSlcbiAgICAgICAgICB0aGlzLiNhdXRvcHVyZ2VUaW1lcnNbaW5kZXhdID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlZCA9IHRydWVcbiAgICAgICAgaWYgKHRoaXMuI3NpemUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLiNjbGVhcihyZWFzb24pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jcmVtb3ZlSXRlbVNpemUoaW5kZXgpXG4gICAgICAgICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaW5kZXhdXG4gICAgICAgICAgaWYgKHRoaXMuI2lzQmFja2dyb3VuZEZldGNoKHYpKSB7XG4gICAgICAgICAgICB2Ll9fYWJvcnRDb250cm9sbGVyLmFib3J0KG5ldyBFcnJvcignZGVsZXRlZCcpKVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy4jaGFzRGlzcG9zZSB8fCB0aGlzLiNoYXNEaXNwb3NlQWZ0ZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlKSB7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3Bvc2U/Lih2IGFzIFYsIGssIHJlYXNvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlQWZ0ZXIpIHtcbiAgICAgICAgICAgICAgdGhpcy4jZGlzcG9zZWQ/LnB1c2goW3YgYXMgViwgaywgcmVhc29uXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy4ja2V5TWFwLmRlbGV0ZShrKVxuICAgICAgICAgIHRoaXMuI2tleUxpc3RbaW5kZXhdID0gdW5kZWZpbmVkXG4gICAgICAgICAgdGhpcy4jdmFsTGlzdFtpbmRleF0gPSB1bmRlZmluZWRcbiAgICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuI3RhaWwpIHtcbiAgICAgICAgICAgIHRoaXMuI3RhaWwgPSB0aGlzLiNwcmV2W2luZGV4XSBhcyBJbmRleFxuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IHRoaXMuI2hlYWQpIHtcbiAgICAgICAgICAgIHRoaXMuI2hlYWQgPSB0aGlzLiNuZXh0W2luZGV4XSBhcyBJbmRleFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwaSA9IHRoaXMuI3ByZXZbaW5kZXhdIGFzIG51bWJlclxuICAgICAgICAgICAgdGhpcy4jbmV4dFtwaV0gPSB0aGlzLiNuZXh0W2luZGV4XSBhcyBudW1iZXJcbiAgICAgICAgICAgIGNvbnN0IG5pID0gdGhpcy4jbmV4dFtpbmRleF0gYXMgbnVtYmVyXG4gICAgICAgICAgICB0aGlzLiNwcmV2W25pXSA9IHRoaXMuI3ByZXZbaW5kZXhdIGFzIG51bWJlclxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiNzaXplLS1cbiAgICAgICAgICB0aGlzLiNmcmVlLnB1c2goaW5kZXgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuI2hhc0Rpc3Bvc2VBZnRlciAmJiB0aGlzLiNkaXNwb3NlZD8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBkdCA9IHRoaXMuI2Rpc3Bvc2VkXG4gICAgICBsZXQgdGFzazogRGlzcG9zZVRhc2s8SywgVj4gfCB1bmRlZmluZWRcbiAgICAgIHdoaWxlICgodGFzayA9IGR0Py5zaGlmdCgpKSkge1xuICAgICAgICB0aGlzLiNkaXNwb3NlQWZ0ZXI/LiguLi50YXNrKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGVsZXRlZFxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBjYWNoZSBlbnRpcmVseSwgdGhyb3dpbmcgYXdheSBhbGwgdmFsdWVzLlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2NsZWFyKCdkZWxldGUnKVxuICB9XG4gICNjbGVhcihyZWFzb246IExSVUNhY2hlLkRpc3Bvc2VSZWFzb24pIHtcbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIHRoaXMuI3JpbmRleGVzKHsgYWxsb3dTdGFsZTogdHJ1ZSB9KSkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuI3ZhbExpc3RbaW5kZXhdXG4gICAgICBpZiAodGhpcy4jaXNCYWNrZ3JvdW5kRmV0Y2godikpIHtcbiAgICAgICAgdi5fX2Fib3J0Q29udHJvbGxlci5hYm9ydChuZXcgRXJyb3IoJ2RlbGV0ZWQnKSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGsgPSB0aGlzLiNrZXlMaXN0W2luZGV4XVxuICAgICAgICBpZiAodGhpcy4jaGFzRGlzcG9zZSkge1xuICAgICAgICAgIHRoaXMuI2Rpc3Bvc2U/Lih2IGFzIFYsIGsgYXMgSywgcmVhc29uKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLiNoYXNEaXNwb3NlQWZ0ZXIpIHtcbiAgICAgICAgICB0aGlzLiNkaXNwb3NlZD8ucHVzaChbdiBhcyBWLCBrIGFzIEssIHJlYXNvbl0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNrZXlNYXAuY2xlYXIoKVxuICAgIHRoaXMuI3ZhbExpc3QuZmlsbCh1bmRlZmluZWQpXG4gICAgdGhpcy4ja2V5TGlzdC5maWxsKHVuZGVmaW5lZClcbiAgICBpZiAodGhpcy4jdHRscyAmJiB0aGlzLiNzdGFydHMpIHtcbiAgICAgIHRoaXMuI3R0bHMuZmlsbCgwKVxuICAgICAgdGhpcy4jc3RhcnRzLmZpbGwoMClcbiAgICAgIGZvciAoY29uc3QgdCBvZiB0aGlzLiNhdXRvcHVyZ2VUaW1lcnMgPz8gW10pIHtcbiAgICAgICAgaWYgKHQgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHQpXG4gICAgICB9XG4gICAgICB0aGlzLiNhdXRvcHVyZ2VUaW1lcnM/LmZpbGwodW5kZWZpbmVkKVxuICAgIH1cbiAgICBpZiAodGhpcy4jc2l6ZXMpIHtcbiAgICAgIHRoaXMuI3NpemVzLmZpbGwoMClcbiAgICB9XG4gICAgdGhpcy4jaGVhZCA9IDAgYXMgSW5kZXhcbiAgICB0aGlzLiN0YWlsID0gMCBhcyBJbmRleFxuICAgIHRoaXMuI2ZyZWUubGVuZ3RoID0gMFxuICAgIHRoaXMuI2NhbGN1bGF0ZWRTaXplID0gMFxuICAgIHRoaXMuI3NpemUgPSAwXG4gICAgaWYgKHRoaXMuI2hhc0Rpc3Bvc2VBZnRlciAmJiB0aGlzLiNkaXNwb3NlZCkge1xuICAgICAgY29uc3QgZHQgPSB0aGlzLiNkaXNwb3NlZFxuICAgICAgbGV0IHRhc2s6IERpc3Bvc2VUYXNrPEssIFY+IHwgdW5kZWZpbmVkXG4gICAgICB3aGlsZSAoKHRhc2sgPSBkdD8uc2hpZnQoKSkpIHtcbiAgICAgICAgdGhpcy4jZGlzcG9zZUFmdGVyPy4oLi4udGFzaylcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IExSVUNhY2hlIH0gZnJvbSBcImxydS1jYWNoZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYWNoZWRNYXA8SyBleHRlbmRzIHt9LCBWIGV4dGVuZHMge30+IGltcGxlbWVudHMgTWFwPEssIFY+IHtcbiAgICByZWFkb25seSBjYWNoZTogTFJVQ2FjaGU8SywgVj47XG4gICAgcmVhZG9ubHkgbWFwOiBNYXA8SywgVj4gPSBuZXcgTWFwKCk7XG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogeyBjYWNoZVNpemU6IG51bWJlciB9KSB7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBuZXcgTFJVQ2FjaGU8SywgVj4oe1xuICAgICAgICAgICAgbWF4OiBvcHRpb25zLmNhY2hlU2l6ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWFwID0gbmV3IE1hcCgpO1xuICAgIH1cbiAgICBnZXQgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcFtTeW1ib2wuaXRlcmF0b3JdO1xuICAgIH1cbiAgICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcFtTeW1ib2wudG9TdHJpbmdUYWddO1xuICAgIH1cbiAgICBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuY2xlYXIoKTtcbiAgICB9XG4gICAgZGVsZXRlKGtleTogSyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkZWxldGVkID0gdGhpcy5tYXAuZGVsZXRlKGtleSk7XG4gICAgICAgIGlmIChkZWxldGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWxldGVkO1xuICAgIH1cbiAgICBnZXQgZm9yRWFjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmZvckVhY2g7XG4gICAgfVxuICAgIGdldChrZXk6IEspOiBWIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgICAgICBpZiAoY2FjaGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZ2V0KGtleSk7XG4gICAgfVxuICAgIGhhcyhrZXk6IEspOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmhhcyhrZXkpO1xuICAgIH1cbiAgICBzZXQoa2V5OiBLLCB2YWx1ZTogVik6IHRoaXMge1xuICAgICAgICB0aGlzLm1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5zaXplO1xuICAgIH1cbiAgICBlbnRyaWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZW50cmllcygpO1xuICAgIH1cbiAgICBrZXlzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAua2V5cygpO1xuICAgIH1cbiAgICB2YWx1ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC52YWx1ZXMoKTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBDYWNoZWRNYXAgfSBmcm9tIFwiLi4vLi4vY2xhc3Nlc1wiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xvZy11dGlsaXR5XCI7XG5cbmV4cG9ydCBjb25zdCBTRVJJQUxJWkFCTEVfRVZFTlQgPSBTeW1ib2woXCJTZXJpYWxpemFibGVFdmVudFwiKTtcblxuLyoqXG4gKiBDYW52YXMgRXZlbnQgUmVnaXN0ZXJcbiAqL1xuY29uc3QgcmVnaXN0ZXJlZEV2ZW50cyA9IG5ldyBDYWNoZWRNYXA8c3RyaW5nLCBGdW5jdGlvbj4oeyBjYWNoZVNpemU6IDUgfSk7XG4vKipcbiAqIElzIGEgZGVjb3JhdG9yIHRoYXQgcmVnaXN0ZXIgYSBldmVudCBpbiB0aGUgZ2FtZS5cbiAqIElzIGEgcmVxdWlyZWQgZGVjb3JhdG9yIGZvciB1c2UgdGhlIGV2ZW50IGluIHRoZSBnYW1lLlxuICogVGhhbmtzIHRvIHRoaXMgZGVjb3JhdGlvbiB0aGUgZ2FtZSBoYXMgdGhlIHBvc3NpYmlsaXR5IG9mIHVwZGF0aW5nIHRoZSBldmVudHMgdG8gdGhlIGxhdGVzdCBtb2RpZmljYXRpb24gYW5kIHNhdmluZyB0aGUgZ2FtZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogZXhwb3J0IGNsYXNzIEV2ZW50cyB7XG4gKiAgICAgXFxAZXZlbnREZWNvcmF0b3IoKVxuICogICAgIHN0YXRpYyBldmVudEV4YW1wbGUoZXZlbnQ6IEZlZGVyYXRlZEV2ZW50LCBjb21wb25lbnQ6IFNwcml0ZSkge1xuICogICAgICAgICAvLyBldmVudCBjb2RlIGhlcmVcbiAqICAgICB9XG4gKiB9XG4gKlxuICogc3ByaXRlLm9uKFwicG9pbnRlcmRvd25cIiwgRXZlbnRzLmV2ZW50RXhhbXBsZSk7XG4gKiBgYGBcbiAqIEBwYXJhbSBuYW1lIGlzIHRoIGlkZW50aWZpZXIgb2YgdGhlIGV2ZW50LCBieSBkZWZhdWx0IGlzIHRoZSBuYW1lIG9mIHRoZSBjbGFzc1xuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50RGVjb3JhdG9yKG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICAgICAgY29uc3QgZm4gPSBkZXNjcmlwdG9yLnZhbHVlO1xuXG4gICAgICAgIFJlZ2lzdGVyZWRFdmVudHMuYWRkKGZuLCBuYW1lIHx8IGAke3Byb3BlcnR5S2V5IGFzIHN0cmluZ31gKTtcbiAgICB9O1xufVxuXG5uYW1lc3BhY2UgUmVnaXN0ZXJlZEV2ZW50cyB7XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgYSBldmVudCBpbiB0aGUgZ2FtZS5cbiAgICAgKiBAcGFyYW0gZm4gVGhlIGNsYXNzIG9mIHRoZSBldmVudC5cbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBldmVudCwgYnkgZGVmYXVsdCBpdCB3aWxsIHVzZSB0aGUgY2xhc3MgbmFtZS4gSWYgdGhlIG5hbWUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLCBpdCB3aWxsIHNob3cgYSB3YXJuaW5nXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGFkZChmbjogRnVuY3Rpb24sIG5hbWU6IHN0cmluZykge1xuICAgICAgICAoZm4gYXMgYW55KVtTRVJJQUxJWkFCTEVfRVZFTlRdID0gbmFtZTtcbiAgICAgICAgaWYgKHJlZ2lzdGVyZWRFdmVudHMuZ2V0KG5hbWUpKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgRXZlbnQgXCIke25hbWV9XCIgYWxyZWFkeSBleGlzdHMsIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW5gKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlcmVkRXZlbnRzLnNldChuYW1lLCBmbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgZXZlbnQgYnkgdGhlIGlkLlxuICAgICAqIEBwYXJhbSBjYW52YXNJZCBUaGUgaWQgb2YgdGhlIGV2ZW50LlxuICAgICAqIEByZXR1cm5zIFRoZSBldmVudCB0eXBlLlxuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBnZXQobmFtZTogc3RyaW5nKTogRnVuY3Rpb24gfCB1bmRlZmluZWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGV2ZW50VHlwZSA9IHJlZ2lzdGVyZWRFdmVudHMuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgaWYgKCFldmVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEV2ZW50IFwiJHtuYW1lfVwiIG5vdCBmb3VuZCwgZGlkIHlvdSBmb3JnZXQgdG8gcmVnaXN0ZXIgaXQgd2l0aCB0aGUgZXZlbnREZWNvcmF0b3I/YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBFcnJvciB3aGlsZSBnZXR0aW5nIEV2ZW50IFwiJHtuYW1lfVwiYCwgZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaXN0IG9mIGFsbCBldmVudHMgcmVnaXN0ZXJlZC5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBldmVudHMuXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHZhbHVlcygpOiBGdW5jdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20ocmVnaXN0ZXJlZEV2ZW50cy52YWx1ZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBldmVudCBpcyByZWdpc3RlcmVkLlxuICAgICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIGV2ZW50LlxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGV2ZW50IGlzIHJlZ2lzdGVyZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBoYXMoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVnaXN0ZXJlZEV2ZW50cy5oYXMoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIGxpc3Qgb2YgYWxsIGV2ZW50IGlkcyByZWdpc3RlcmVkLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGxhYmVsIGlkcy5cbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24ga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHJlZ2lzdGVyZWRFdmVudHMua2V5cygpKTtcbiAgICB9XG59XG5leHBvcnQgZGVmYXVsdCBSZWdpc3RlcmVkRXZlbnRzO1xuIiwiaW1wb3J0IHR5cGUgeyBDb250YWluZXIgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi91dGlscy9sb2ctdXRpbGl0eVwiO1xuaW1wb3J0IFJlZ2lzdGVyZWRFdmVudHMsIHsgU0VSSUFMSVpBQkxFX0VWRU5UIH0gZnJvbSBcIi4uL2RlY29yYXRvcnMvZXZlbnQtZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXJFeHRlbnNpb25NZW1vcnkge1xuICAgIG9uRXZlbnRzPzogT25FdmVudHNIYW5kbGVycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbkV2ZW50c0hhbmRsZXJzIHtcbiAgICBbbmFtZTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpbnRlcmZhY2UgTGlzdGVuZXJFeHRlbnNpb24ge1xuICAgIC8qKlxuICAgICAqIEFkZCBhIGxpc3RlbmVyIGZvciBhIGdpdmVuIGV2ZW50LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiBleHBvcnQgY2xhc3MgRXZlbnRzIHtcbiAgICAgKiAgICAgXFxAZXZlbnREZWNvcmF0b3IoKVxuICAgICAqICAgICBzdGF0aWMgZXZlbnRFeGFtcGxlKGV2ZW50OiBGZWRlcmF0ZWRFdmVudCwgY29tcG9uZW50OiBTcHJpdGUpIHtcbiAgICAgKiAgICAgICAgIC8vIGV2ZW50IGNvZGUgaGVyZVxuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogc3ByaXRlLm9uKFwicG9pbnRlcmRvd25cIiwgRXZlbnRzLmV2ZW50RXhhbXBsZSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgb246IENvbnRhaW5lcltcIm9uXCJdO1xuICAgIHJlYWRvbmx5IG9uRXZlbnRzSGFuZGxlcnM6IE9uRXZlbnRzSGFuZGxlcnM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRMaXN0ZW5lck1lbW9yeShcbiAgICBlbGVtZW50OiAoTGlzdGVuZXJFeHRlbnNpb24gfCB7fSkgJiBDb250YWluZXIsXG4gICAgbWVtb3J5OiBMaXN0ZW5lckV4dGVuc2lvbk1lbW9yeSB8IHt9LFxuKSB7XG4gICAgaWYgKFwib25FdmVudHNcIiBpbiBtZW1vcnkpIHtcbiAgICAgICAgZm9yIChsZXQgZXZlbnQgaW4gbWVtb3J5Lm9uRXZlbnRzKSB7XG4gICAgICAgICAgICBsZXQgaWQgPSBtZW1vcnkub25FdmVudHNbZXZlbnRdO1xuICAgICAgICAgICAgbGV0IGluc3RhbmNlID0gUmVnaXN0ZXJlZEV2ZW50cy5nZXQoaWQpO1xuICAgICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5vbihldmVudCwgaW5zdGFuY2UgYXMgKGV2ZW50OiBhbnksIGNvbXBvbmVudDogdHlwZW9mIGVsZW1lbnQpID0+IHZvaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlzdGVuZXJNZW1vcnk8VCBleHRlbmRzIExpc3RlbmVyRXh0ZW5zaW9uPihlbGVtZW50OiBUIHwge30pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gXCJvbkV2ZW50c0hhbmRsZXJzXCIgaW4gZWxlbWVudCA/IGVsZW1lbnQub25FdmVudHNIYW5kbGVycyA6IHt9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTGlzdGVuZXJIYW5kbGVyPFQgZXh0ZW5kcyBMaXN0ZW5lckV4dGVuc2lvbj4oXG4gICAgZXZlbnQ6IHN5bWJvbCB8IHN0cmluZyxcbiAgICBlbGVtZW50OiBULFxuICAgIGZuOiBGdW5jdGlvbixcbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhhbmRsZXJJZCA9IChmbiBhcyBhbnkpW1NFUklBTElaQUJMRV9FVkVOVF0gYXMgc3RyaW5nO1xuXG4gICAgaWYgKGhhbmRsZXJJZCAmJiB0eXBlb2YgaGFuZGxlcklkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGVsZW1lbnQub25FdmVudHNIYW5kbGVyc1tldmVudCBhcyBzdHJpbmddID0gaGFuZGxlcklkO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIud2FybihcbiAgICAgICAgICAgIGBUaGUgZXZlbnQgaGFuZGxlciBmb3IgZXZlbnQgXCIke2V2ZW50IGFzIHN0cmluZ31cIiBpcyBub3QgcmVnaXN0ZXJlZCB3aXRoIHRoZSBldmVudERlY29yYXRvciwgaXQgd2lsbCBub3QgYmUgc2F2ZWQgaW4gdGhlIG1lbW9yeSBhbmQgaXQgd2lsbCBub3Qgd29yayBhZnRlciBsb2FkaW5nIHRoZSBnYW1lLiBQbGVhc2UgcmVnaXN0ZXIgdGhlIGV2ZW50IGhhbmRsZXIgd2l0aCB0aGUgZXZlbnREZWNvcmF0b3IgdG8gYXZvaWQgdGhpcyB3YXJuaW5nLiBSZWFkIG1vcmUgYWJvdXQgaXQgaGVyZTogaHR0cHM6Ly9waXhpLXZuLndlYi5hcHAvc3RhcnQvY2FudmFzLWZ1bmN0aW9ucyNhZGQtYS1saXN0ZW5lci10by1hbi1ldmVudGAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBDb250YWluZXJPcHRpb25zLCBDb250YWluZXIgYXMgUGl4aUNvbnRhaW5lciwgUG9pbnREYXRhIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBjYW52YXMgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IENhY2hlZE1hcCB9IGZyb20gXCIuLi8uLi9jbGFzc2VzXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbG9nLXV0aWxpdHlcIjtcbmltcG9ydCBDYW52YXNCYXNlSXRlbSBmcm9tIFwiLi4vY2xhc3Nlcy9DYW52YXNCYXNlSXRlbVwiO1xuaW1wb3J0IHsgc2V0TGlzdGVuZXJNZW1vcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9MaXN0ZW5lckV4dGVuc2lvblwiO1xuaW1wb3J0IENhbnZhc0Jhc2VJdGVtTWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL21lbW9yeS9DYW52YXNCYXNlSXRlbU1lbW9yeVwiO1xuaW1wb3J0IHsgQ2FudmFzRWxlbWVudEFsaWFzVHlwZSB9IGZyb20gXCIuLi90eXBlcy9DYW52YXNFbGVtZW50QWxpYXNUeXBlXCI7XG5cbmNvbnN0IHJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnQgPSBuZXcgQ2FjaGVkTWFwPENhbnZhc0VsZW1lbnRBbGlhc1R5cGUsIHR5cGVvZiBDYW52YXNCYXNlSXRlbTxhbnk+Pih7IGNhY2hlU2l6ZTogNSB9KTtcbmNvbnN0IHJlZ2lzdGVyZWRDYW52YXNJbnN0YW5jZUdldHRlcnMgPSBuZXcgQ2FjaGVkTWFwPFxuICAgIENhbnZhc0VsZW1lbnRBbGlhc1R5cGUsXG4gICAgKFxuICAgICAgICBjYW52YXNDbGFzczogdHlwZW9mIENhbnZhc0Jhc2VJdGVtPENhbnZhc0Jhc2VJdGVtTWVtb3J5PixcbiAgICAgICAgbWVtb3J5OiBDYW52YXNCYXNlSXRlbU1lbW9yeSxcbiAgICApID0+IENhbnZhc0Jhc2VJdGVtPENhbnZhc0Jhc2VJdGVtTWVtb3J5PiB8IFByb21pc2U8Q2FudmFzQmFzZUl0ZW08Q2FudmFzQmFzZUl0ZW1NZW1vcnk+PlxuPih7IGNhY2hlU2l6ZTogMiB9KTtcbmNvbnN0IHJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRDb3B5UHJvcGVydGllcyA9IG5ldyBDYWNoZWRNYXA8XG4gICAgQ2FudmFzRWxlbWVudEFsaWFzVHlwZSxcbiAgICAoY29tcG9uZW50OiBDYW52YXNCYXNlSXRlbTxDYW52YXNCYXNlSXRlbU1lbW9yeT4sIHNvdXJjZTogQ2FudmFzQmFzZUl0ZW1NZW1vcnkpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+XG4+KHsgY2FjaGVTaXplOiAyIH0pO1xuLyoqXG4gKiBJcyBhIGRlY29yYXRvciB0aGF0IHJlZ2lzdGVyIGEgY2FudmFzIGNvbXBvbmVudCBpbiB0aGUgZ2FtZS5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSBjYW52YXMgY29tcG9uZW50LlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbnZhc0NvbXBvbmVudERlY29yYXRvcjxNIGV4dGVuZHMgQ2FudmFzQmFzZUl0ZW1NZW1vcnksIFQgZXh0ZW5kcyB0eXBlb2YgQ2FudmFzQmFzZUl0ZW08TT4+KFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5hbWUgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuIElmIHRoZSBuYW1lIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCwgaXQgd2lsbCBzaG93IGEgd2FybmluZ1xuICAgICAgICAgKiBAZGVmYXVsdCB0YXJnZXQubmFtZVxuICAgICAgICAgKi9cbiAgICAgICAgbmFtZT86IENhbnZhc0VsZW1lbnRBbGlhc1R5cGU7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGdW5jdGlvbiB0byBnZXQgdGhlIGluc3RhbmNlIG9mIHRoZSBjYW52YXMgY29tcG9uZW50LiBJZiBub3Qgc2V0LCBpdCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb25zdHJ1Y3RvciBvZiB0aGUgY2xhc3MuXG4gICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRvIHtAbGluayBjYW52YXMucmVzdG9yZX0gdG8gcmVzdG9yZSB0aGUgY2FudmFzLlxuICAgICAgICAgKiBAcGFyYW0gY2FudmFzQ2xhc3MgVGhlIGNsYXNzIG9mIHRoZSBjYW52YXMgY29tcG9uZW50LlxuICAgICAgICAgKiBAcGFyYW0gbWVtb3J5IE1lbW9yeSBvZiB0aGUgY2FudmFzIGNvbXBvbmVudC5cbiAgICAgICAgICogQHJldHVybnMgVGhlIGluc3RhbmNlIG9mIHRoZSBjYW52YXMgY29tcG9uZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0SW5zdGFuY2U/OiAoY2FudmFzQ2xhc3M6IFQsIG1lbW9yeTogTSkgPT4gQ2FudmFzQmFzZUl0ZW08TT4gfCBQcm9taXNlPENhbnZhc0Jhc2VJdGVtPE0+PjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZ1bmN0aW9uIHRvIGNvcHkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHRvIGNvcHkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQgaW50byBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBzYW1lIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRvIHtAbGluayBjYW52YXMuY29weUNhbnZhc0VsZW1lbnRQcm9wZXJ0eX0gdG8gY29weSB0aGUgcHJvcGVydGllcyBvZiB0aGUgY2FudmFzIGNvbXBvbmVudC5cbiAgICAgICAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNhbnZhcyBjb21wb25lbnQgdG8gY29weSB0aGUgcHJvcGVydGllcy5cbiAgICAgICAgICogQHBhcmFtIG1lbW9yeSBUaGUgbWVtb3J5IG9mIHRoZSBjYW52YXMgY29tcG9uZW50IHRvIGNvcHkgdGhlIHByb3BlcnRpZXMuXG4gICAgICAgICAqIEByZXR1cm5zXG4gICAgICAgICAqL1xuICAgICAgICBjb3B5UHJvcGVydHk/OiAoY29tcG9uZW50OiBDYW52YXNCYXNlSXRlbTxNPiwgbWVtb3J5OiBNKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICB9ID0ge30sXG4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogVCkge1xuICAgICAgICBSZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50cy5hZGQodGFyZ2V0LCBvcHRpb25zKTtcbiAgICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0TWVtb3J5Q29udGFpbmVyPFQgZXh0ZW5kcyBQaXhpQ29udGFpbmVyPihcbiAgICBlbGVtZW50OiBUIHwgUGl4aUNvbnRhaW5lcixcbiAgICBtZW1vcnk6IENvbnRhaW5lck9wdGlvbnMgfCB7fSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgICBpZ25vcmVTY2FsZT86IGJvb2xlYW47XG4gICAgICAgIGVuZD86ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAgIH0sXG4pIHtcbiAgICBsZXQgaWdub3JlU2NhbGUgPSBvcHRpb25zPy5pZ25vcmVTY2FsZSB8fCBmYWxzZTtcbiAgICBsZXQgZW5kID0gb3B0aW9ucz8uZW5kO1xuICAgIFwiaXNSZW5kZXJHcm91cFwiIGluIG1lbW9yeSAmJiBtZW1vcnkuaXNSZW5kZXJHcm91cCAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LmlzUmVuZGVyR3JvdXAgPSBtZW1vcnkuaXNSZW5kZXJHcm91cCk7XG4gICAgXCJibGVuZE1vZGVcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LmJsZW5kTW9kZSAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LmJsZW5kTW9kZSA9IG1lbW9yeS5ibGVuZE1vZGUpO1xuICAgIFwidGludFwiIGluIG1lbW9yeSAmJiBtZW1vcnkudGludCAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LnRpbnQgPSBtZW1vcnkudGludCk7XG4gICAgXCJhbHBoYVwiIGluIG1lbW9yeSAmJiBtZW1vcnkuYWxwaGEgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5hbHBoYSA9IG1lbW9yeS5hbHBoYSk7XG4gICAgXCJhbmdsZVwiIGluIG1lbW9yeSAmJiBtZW1vcnkuYW5nbGUgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5hbmdsZSA9IG1lbW9yeS5hbmdsZSk7XG4gICAgXCJyZW5kZXJhYmxlXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5yZW5kZXJhYmxlICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQucmVuZGVyYWJsZSA9IG1lbW9yeS5yZW5kZXJhYmxlKTtcbiAgICBcInJvdGF0aW9uXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5yb3RhdGlvbiAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LnJvdGF0aW9uID0gbWVtb3J5LnJvdGF0aW9uKTtcbiAgICBpZiAoIWlnbm9yZVNjYWxlICYmIFwic2NhbGVcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LnNjYWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZW1vcnkuc2NhbGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2NhbGUuc2V0KG1lbW9yeS5zY2FsZSwgbWVtb3J5LnNjYWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2NhbGUuc2V0KG1lbW9yeS5zY2FsZS54LCBtZW1vcnkuc2NhbGUueSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKFwicGl2b3RcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LnBpdm90ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZW1vcnkucGl2b3QgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGVsZW1lbnQucGl2b3Quc2V0KG1lbW9yeS5waXZvdCwgbWVtb3J5LnBpdm90KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQucGl2b3Quc2V0KG1lbW9yeS5waXZvdC54LCBtZW1vcnkucGl2b3QueSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXCJwb3NpdGlvblwiIGluIG1lbW9yeSAmJiBtZW1vcnkucG9zaXRpb24gIT09IHVuZGVmaW5lZCAmJiBlbGVtZW50LnBvc2l0aW9uLnNldChtZW1vcnkucG9zaXRpb24ueCwgbWVtb3J5LnBvc2l0aW9uLnkpO1xuICAgIFwic2tld1wiIGluIG1lbW9yeSAmJiBtZW1vcnkuc2tldyAhPT0gdW5kZWZpbmVkICYmIGVsZW1lbnQuc2tldy5zZXQobWVtb3J5LnNrZXcueCwgbWVtb3J5LnNrZXcueSk7XG4gICAgXCJ2aXNpYmxlXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS52aXNpYmxlICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQudmlzaWJsZSA9IG1lbW9yeS52aXNpYmxlKTtcbiAgICBcInhcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LnggIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC54ID0gbWVtb3J5LngpO1xuICAgIFwieVwiIGluIG1lbW9yeSAmJiBtZW1vcnkueSAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LnkgPSBtZW1vcnkueSk7XG4gICAgXCJib3VuZHNBcmVhXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5ib3VuZHNBcmVhICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQuYm91bmRzQXJlYSA9IG1lbW9yeS5ib3VuZHNBcmVhKTtcblxuICAgIFwiY3Vyc29yXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5jdXJzb3IgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5jdXJzb3IgPSBtZW1vcnkuY3Vyc29yKTtcbiAgICBcImV2ZW50TW9kZVwiIGluIG1lbW9yeSAmJiBtZW1vcnkuZXZlbnRNb2RlICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQuZXZlbnRNb2RlID0gbWVtb3J5LmV2ZW50TW9kZSk7XG4gICAgXCJpbnRlcmFjdGl2ZVwiIGluIG1lbW9yeSAmJiBtZW1vcnkuaW50ZXJhY3RpdmUgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5pbnRlcmFjdGl2ZSA9IG1lbW9yeS5pbnRlcmFjdGl2ZSk7XG4gICAgXCJpbnRlcmFjdGl2ZUNoaWxkcmVuXCIgaW4gbWVtb3J5ICYmXG4gICAgICAgIG1lbW9yeS5pbnRlcmFjdGl2ZUNoaWxkcmVuICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKGVsZW1lbnQuaW50ZXJhY3RpdmVDaGlsZHJlbiA9IG1lbW9yeS5pbnRlcmFjdGl2ZUNoaWxkcmVuKTtcbiAgICBcImhpdEFyZWFcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LmhpdEFyZWEgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5oaXRBcmVhID0gbWVtb3J5LmhpdEFyZWEpO1xuICAgIHNldExpc3RlbmVyTWVtb3J5KGVsZW1lbnQsIG1lbW9yeSk7XG5cbiAgICAvLyBcImFuY2hvclwiIGluIG1lbW9yeSAmJiBtZW1vcnkuYW5jaG9yICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQuYW5jaG9yID0gbWVtb3J5LmFuY2hvciBhcyBudW1iZXIgfCBQb2ludERhdGEpO1xuICAgIFwiYWxpZ25cIiBpbiBtZW1vcnkgJiZcbiAgICAgICAgbWVtb3J5LmFsaWduICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgXCJhbGlnblwiIGluIGVsZW1lbnQgJiZcbiAgICAgICAgKGVsZW1lbnQuYWxpZ24gPSBtZW1vcnkuYWxpZ24gYXMgUGFydGlhbDxQb2ludERhdGE+KTtcbiAgICBcInBlcmNlbnRhZ2VQb3NpdGlvblwiIGluIG1lbW9yeSAmJlxuICAgICAgICBtZW1vcnkucGVyY2VudGFnZVBvc2l0aW9uICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgXCJwZXJjZW50YWdlUG9zaXRpb25cIiBpbiBlbGVtZW50ICYmXG4gICAgICAgIChlbGVtZW50LnBlcmNlbnRhZ2VQb3NpdGlvbiA9IG1lbW9yeS5wZXJjZW50YWdlUG9zaXRpb24gYXMgUGFydGlhbDxQb2ludERhdGE+KTtcblxuICAgIC8vIGVuZFxuICAgIGlmIChlbmQpIHtcbiAgICAgICAgYXdhaXQgZW5kKCk7XG4gICAgfVxuICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBzZXQgYWZ0ZXIgdGhlIHNjYWxlXG4gICAgaWYgKCFpZ25vcmVTY2FsZSkge1xuICAgICAgICBcIndpZHRoXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS53aWR0aCAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LndpZHRoID0gbWVtb3J5LndpZHRoKTtcbiAgICAgICAgXCJoZWlnaHRcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LmhlaWdodCAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LmhlaWdodCA9IG1lbW9yeS5oZWlnaHQpO1xuICAgIH1cbn1cblxubmFtZXNwYWNlIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzIHtcbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIGNhbnZhcyBjb21wb25lbnQgaW4gdGhlIGdhbWUuXG4gICAgICogQHBhcmFtIHRhcmdldCBUaGUgY2xhc3Mgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGFkZDxNIGV4dGVuZHMgQ2FudmFzQmFzZUl0ZW1NZW1vcnksIFQgZXh0ZW5kcyB0eXBlb2YgQ2FudmFzQmFzZUl0ZW08TT4+KFxuICAgICAgICB0YXJnZXQ6IFQsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTmFtZSBvZiB0aGUgY2FudmFzIGNvbXBvbmVudC4gSWYgdGhlIG5hbWUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLCBpdCB3aWxsIHNob3cgYSB3YXJuaW5nXG4gICAgICAgICAgICAgKiBAZGVmYXVsdCB0YXJnZXQubmFtZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBuYW1lPzogQ2FudmFzRWxlbWVudEFsaWFzVHlwZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBpbnN0YW5jZSBvZiB0aGUgY2FudmFzIGNvbXBvbmVudC4gSWYgbm90IHNldCwgaXQgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29uc3RydWN0b3Igb2YgdGhlIGNsYXNzLlxuICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGludG8ge0BsaW5rIGNhbnZhcy5yZXN0b3JlfSB0byByZXN0b3JlIHRoZSBjYW52YXMuXG4gICAgICAgICAgICAgKiBAcGFyYW0gY2FudmFzQ2xhc3MgVGhlIGNsYXNzIG9mIHRoZSBjYW52YXMgY29tcG9uZW50LlxuICAgICAgICAgICAgICogQHBhcmFtIG1lbW9yeSBNZW1vcnkgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICAgICAgICAgKiBAcmV0dXJucyBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGdldEluc3RhbmNlPzogKGNhbnZhc0NsYXNzOiBULCBtZW1vcnk6IE0pID0+IENhbnZhc0Jhc2VJdGVtPE0+IHwgUHJvbWlzZTxDYW52YXNCYXNlSXRlbTxNPj47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZ1bmN0aW9uIHRvIGNvcHkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHRvIGNvcHkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQgaW50byBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBzYW1lIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgaW50byB7QGxpbmsgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHl9IHRvIGNvcHkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICAgICAgICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBpbnN0YW5jZSBvZiB0aGUgY2FudmFzIGNvbXBvbmVudCB0byBjb3B5IHRoZSBwcm9wZXJ0aWVzLlxuICAgICAgICAgICAgICogQHBhcmFtIG1lbW9yeSBUaGUgbWVtb3J5IG9mIHRoZSBjYW52YXMgY29tcG9uZW50IHRvIGNvcHkgdGhlIHByb3BlcnRpZXMuXG4gICAgICAgICAgICAgKiBAcmV0dXJuc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb3B5UHJvcGVydHk/OiAoY29tcG9uZW50OiBDYW52YXNCYXNlSXRlbTxNPiwgbWVtb3J5OiBNKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgfSA9IHt9LFxuICAgICkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBuYW1lID0gdGFyZ2V0Lm5hbWUsXG4gICAgICAgICAgICBnZXRJbnN0YW5jZSA9IGFzeW5jIChjYW52YXNDbGFzczogVCwgbWVtb3J5OiBNKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY2FudmFzQ2xhc3MoKTtcbiAgICAgICAgICAgICAgICBhd2FpdCBpbnN0YW5jZS5zZXRNZW1vcnkobWVtb3J5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29weVByb3BlcnR5ID0gYXN5bmMgKGNvbXBvbmVudDogQ2FudmFzQmFzZUl0ZW08TT4sIG1lbW9yeTogTSkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNvbXBvbmVudC5zZXRNZW1vcnkobWVtb3J5KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0gPSBvcHRpb25zO1xuICAgICAgICBpZiAocmVnaXN0ZXJlZENhbnZhc0NvbXBvbmVudC5nZXQobmFtZSkpIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKGBDYW52YXNFbGVtZW50IFwiJHtuYW1lfVwiIGFscmVhZHkgcmVnaXN0ZXJlZGApO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUucGl4aXZuSWQgPSBuYW1lO1xuICAgICAgICByZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50LnNldChuYW1lLCB0YXJnZXQpO1xuICAgICAgICByZWdpc3RlcmVkQ2FudmFzSW5zdGFuY2VHZXR0ZXJzLnNldChuYW1lLCBnZXRJbnN0YW5jZSBhcyBhbnkpO1xuICAgICAgICByZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50Q29weVByb3BlcnRpZXMuc2V0KG5hbWUsIGNvcHlQcm9wZXJ0eSBhcyBhbnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIGNhbnZhcyBjb21wb25lbnQgYnkgdGhlIGlkLlxuICAgICAqIEBwYXJhbSBjYW52YXNJZCBUaGUgaWQgb2YgdGhlIGNhbnZhcyBjb21wb25lbnQuXG4gICAgICogQHJldHVybnMgVGhlIGNhbnZhcyBjb21wb25lbnQgdHlwZS5cbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQgZXh0ZW5kcyB0eXBlb2YgQ2FudmFzQmFzZUl0ZW08YW55Pj4oY2FudmFzSWQ6IENhbnZhc0VsZW1lbnRBbGlhc1R5cGUpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGV2ZW50VHlwZSA9IHJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnQuZ2V0KGNhbnZhc0lkKTtcbiAgICAgICAgaWYgKCFldmVudFR5cGUpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICBgQ2FudmFzRWxlbWVudCBcIiR7Y2FudmFzSWR9XCIgbm90IGZvdW5kLCBkaWQgeW91IGZvcmdldCB0byByZWdpc3RlciBpdCB3aXRoIHRoZSBjYW52YXNDb21wb25lbnREZWNvcmF0b3I/YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSBhcyBUO1xuICAgIH1cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJbnN0YW5jZTxNIGV4dGVuZHMgQ2FudmFzQmFzZUl0ZW1NZW1vcnksIFQgZXh0ZW5kcyBDYW52YXNCYXNlSXRlbTxNPj4oXG4gICAgICAgIGNhbnZhc0lkOiBDYW52YXNFbGVtZW50QWxpYXNUeXBlLFxuICAgICAgICBtZW1vcnk6IE0sXG4gICAgKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IGV2ZW50VHlwZSA9IGdldChjYW52YXNJZCk7XG4gICAgICAgIGNvbnN0IGdldEluc3RhbmNlID0gcmVnaXN0ZXJlZENhbnZhc0luc3RhbmNlR2V0dGVycy5nZXQoY2FudmFzSWQpO1xuICAgICAgICBpZiAoIWV2ZW50VHlwZSB8fCAhZ2V0SW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICBgQ2FudmFzRWxlbWVudCBcIiR7Y2FudmFzSWR9XCIgbm90IGZvdW5kLCBkaWQgeW91IGZvcmdldCB0byByZWdpc3RlciBpdCB3aXRoIHRoZSBjYW52YXNDb21wb25lbnREZWNvcmF0b3I/YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBjYW52YXNFbGVtZW50ID0gYXdhaXQgZ2V0SW5zdGFuY2UoZXZlbnRUeXBlLCBtZW1vcnkpO1xuICAgICAgICAgICAgcmV0dXJuIGNhbnZhc0VsZW1lbnQgYXMgVDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBFcnJvciB3aGlsZSBnZXR0aW5nIENhbnZhc0VsZW1lbnQgaW5zdGFuY2UgXCIke2NhbnZhc0lkfVwiYCwgZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weVByb3BlcnR5PE0gZXh0ZW5kcyBDYW52YXNCYXNlSXRlbU1lbW9yeT4oXG4gICAgICAgIGNhbnZhc0lkOiBDYW52YXNFbGVtZW50QWxpYXNUeXBlLFxuICAgICAgICBjb21wb25lbnQ6IENhbnZhc0Jhc2VJdGVtPE0+LFxuICAgICAgICBzb3VyY2U6IENhbnZhc0Jhc2VJdGVtTWVtb3J5LFxuICAgICkge1xuICAgICAgICBjb25zdCBjb3B5UHJvcGVydHkgPSByZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50Q29weVByb3BlcnRpZXMuZ2V0KGNhbnZhc0lkKTtcbiAgICAgICAgaWYgKCFjb3B5UHJvcGVydHkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICBgQ2FudmFzRWxlbWVudCBcIiR7Y2FudmFzSWR9XCIgbm90IGZvdW5kLCBkaWQgeW91IGZvcmdldCB0byByZWdpc3RlciBpdCB3aXRoIHRoZSBjYW52YXNDb21wb25lbnREZWNvcmF0b3I/YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNvcHlQcm9wZXJ0eShjb21wb25lbnQsIHNvdXJjZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgRXJyb3Igd2hpbGUgY29weWluZyBwcm9wZXJ0aWVzIG9mIENhbnZhc0VsZW1lbnQgXCIke2NhbnZhc0lkfVwiYCwgZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIGxpc3Qgb2YgYWxsIGNhbnZhcyBjb21wb25lbnRzIHJlZ2lzdGVyZWQuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgY2FudmFzIGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHZhbHVlcygpOiAodHlwZW9mIENhbnZhc0Jhc2VJdGVtPGFueT4pW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShyZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50LnZhbHVlcygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGNhbnZhcyBjb21wb25lbnQgaXMgcmVnaXN0ZXJlZC5cbiAgICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBjYW52YXMgY29tcG9uZW50LlxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGNhbnZhcyBjb21wb25lbnQgaXMgcmVnaXN0ZXJlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBoYXMoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVnaXN0ZXJlZENhbnZhc0NvbXBvbmVudC5oYXMoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIGxpc3Qgb2YgYWxsIGNhbnZhcyBjb21wb25lbnQgaWRzIHJlZ2lzdGVyZWQuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgbGFiZWwgaWRzLlxuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20ocmVnaXN0ZXJlZENhbnZhc0NvbXBvbmVudC5rZXlzKCkpO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzO1xuIiwiaW1wb3J0IHsgUGl4aUVycm9yIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9jb3JlXCI7XG5pbXBvcnQgQ2FudmFzQmFzZUl0ZW0gZnJvbSBcIi4uL2NsYXNzZXMvQ2FudmFzQmFzZUl0ZW1cIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUmVnaXN0ZXJlZENhbnZhc0NvbXBvbmVudHMgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9jYW52YXMtZWxlbWVudC1kZWNvcmF0b3JcIjtcbmltcG9ydCBDYW52YXNCYXNlSXRlbU1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9tZW1vcnkvQ2FudmFzQmFzZUl0ZW1NZW1vcnlcIjtcblxuLyoqXG4gKiBJbXBvcnQgYSBDYW52YXMgZWxlbWVudCBmcm9tIGEgbWVtb3J5IG9iamVjdFxuICogQHBhcmFtIG1lbW9yeSBNZW1vcnkgb2JqZWN0IG9mIHRoZSBjYW52YXNcbiAqIEByZXR1cm5zIENhbnZhcyBlbGVtZW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnRDYW52YXNFbGVtZW50PE0gZXh0ZW5kcyBDYW52YXNCYXNlSXRlbU1lbW9yeSwgVCBleHRlbmRzIENhbnZhc0Jhc2VJdGVtPE0+PihcbiAgICBtZW1vcnk6IE0sXG4pOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgZWxlbWVudCA9IGF3YWl0IFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmdldEluc3RhbmNlPE0sIFQ+KG1lbW9yeS5waXhpdm5JZCwgbWVtb3J5KTtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBpeGlFcnJvcihcInVucmVnaXN0ZXJlZF9lbGVtZW50XCIsIGBUaGUgZWxlbWVudCAke21lbW9yeS5waXhpdm5JZH0gY291bGQgbm90IGJlIGNyZWF0ZWRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbn1cbiIsImltcG9ydCB0eXBlIHtcbiAgICBDb2xvclNvdXJjZSxcbiAgICBGaWxsR3JhZGllbnQsXG4gICAgRmlsbElucHV0LFxuICAgIEdyYWRpZW50T3B0aW9ucyxcbiAgICBDb250YWluZXIgYXMgUGl4aUNvbnRhaW5lcixcbiAgICBTcHJpdGUgYXMgUGl4aVNwcml0ZSxcbiAgICBUZXh0IGFzIFBpeGlUZXh0LFxuICAgIFN0cm9rZUlucHV0LFxuICAgIFN0cm9rZVN0eWxlLFxuICAgIFRleHRTdHlsZSxcbiAgICBUZXh0U3R5bGVPcHRpb25zLFxuICAgIFRleHR1cmUsXG59IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBDQU5WQVNfQ09OVEFJTkVSX0lELCBDQU5WQVNfU1BSSVRFX0lELCBDQU5WQVNfVEVYVF9JRCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi91dGlscy9sb2ctdXRpbGl0eVwiO1xuaW1wb3J0IHsgZ2V0TGlzdGVuZXJNZW1vcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9MaXN0ZW5lckV4dGVuc2lvblwiO1xuaW1wb3J0IEFzc2V0TWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL0Fzc2V0TWVtb3J5XCI7XG5pbXBvcnQgeyBDYW52YXNCYXNlSW50ZXJmYWNlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvQ2FudmFzQmFzZUludGVyZmFjZVwiO1xuaW1wb3J0IENhbnZhc0Jhc2VJdGVtTWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL21lbW9yeS9DYW52YXNCYXNlSXRlbU1lbW9yeVwiO1xuaW1wb3J0IENvbnRhaW5lck1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9tZW1vcnkvQ29udGFpbmVyTWVtb3J5XCI7XG5pbXBvcnQgU3ByaXRlTWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL21lbW9yeS9TcHJpdGVNZW1vcnlcIjtcbmltcG9ydCBUZXh0TWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL21lbW9yeS9UZXh0TWVtb3J5XCI7XG5cbi8qKlxuICogRXhwb3J0IGEgQ2FudmFzIGVsZW1lbnQgdG8gYSBtZW1vcnkgb2JqZWN0XG4gKiBAcGFyYW0gY2FudmFzQ29tcG9uZW50IENhbnZhcyBlbGVtZW50XG4gKiBAcmV0dXJucyBNZW1vcnkgb2JqZWN0IG9mIHRoZSBjYW52YXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydENhbnZhc0VsZW1lbnQ8VCBleHRlbmRzIFBpeGlDb250YWluZXI+KGNhbnZhc0NvbXBvbmVudDogVCk6IENhbnZhc0Jhc2VJdGVtTWVtb3J5IHtcbiAgICBpZiAoXCJtZW1vcnlcIiBpbiBjYW52YXNDb21wb25lbnQpIHtcbiAgICAgICAgcmV0dXJuIGNhbnZhc0NvbXBvbmVudC5tZW1vcnkgYXMgQ2FudmFzQmFzZUl0ZW1NZW1vcnk7XG4gICAgfSBlbHNlIGlmIChjYW52YXNDb21wb25lbnQgaW5zdGFuY2VvZiBQSVhJLlRleHQpIHtcbiAgICAgICAgcmV0dXJuIGdldE1lbW9yeVRleHQoY2FudmFzQ29tcG9uZW50KTtcbiAgICB9IGVsc2UgaWYgKGNhbnZhc0NvbXBvbmVudCBpbnN0YW5jZW9mIFBJWEkuU3ByaXRlKSB7XG4gICAgICAgIHJldHVybiBnZXRNZW1vcnlTcHJpdGUoY2FudmFzQ29tcG9uZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZ2V0TWVtb3J5Q29udGFpbmVyKGNhbnZhc0NvbXBvbmVudCk7XG4gICAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3QgY29tbW9uIHByb3BlcnRpZXMgZm9yIG1lbW9yeSBvYmplY3RzXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RDb21tb25NZW1vcnlQcm9wZXJ0aWVzPFQgZXh0ZW5kcyBQaXhpQ29udGFpbmVyPihlbGVtZW50OiBUKTogUGFydGlhbDxDb250YWluZXJNZW1vcnk+IHtcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudDtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogZWxlbWVudC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBlbGVtZW50LmhlaWdodCxcbiAgICAgICAgaXNSZW5kZXJHcm91cDogZWxlbWVudC5pc1JlbmRlckdyb3VwLFxuICAgICAgICBibGVuZE1vZGU6IGVsZW1lbnQuYmxlbmRNb2RlLFxuICAgICAgICB0aW50OiBlbGVtZW50LnRpbnQsXG4gICAgICAgIGFscGhhOiBlbGVtZW50LmFscGhhLFxuICAgICAgICBhbmdsZTogZWxlbWVudC5hbmdsZSxcbiAgICAgICAgcmVuZGVyYWJsZTogZWxlbWVudC5yZW5kZXJhYmxlLFxuICAgICAgICByb3RhdGlvbjogZWxlbWVudC5yb3RhdGlvbixcbiAgICAgICAgc2NhbGU6IHsgeDogZWxlbWVudC5zY2FsZS54LCB5OiBlbGVtZW50LnNjYWxlLnkgfSxcbiAgICAgICAgcGl2b3Q6IHsgeDogZWxlbWVudC5waXZvdC54LCB5OiBlbGVtZW50LnBpdm90LnkgfSxcbiAgICAgICAgcG9zaXRpb246IHsgeDogZWxlbWVudC5wb3NpdGlvbi54LCB5OiBlbGVtZW50LnBvc2l0aW9uLnkgfSxcbiAgICAgICAgc2tldzogeyB4OiBlbGVtZW50LnNrZXcueCwgeTogZWxlbWVudC5za2V3LnkgfSxcbiAgICAgICAgdmlzaWJsZTogZWxlbWVudC52aXNpYmxlLFxuICAgICAgICB4OiBlbGVtZW50LngsXG4gICAgICAgIHk6IGVsZW1lbnQueSxcbiAgICAgICAgYm91bmRzQXJlYTogZWxlbWVudC5ib3VuZHNBcmVhLFxuICAgICAgICBjdXJzb3I6IGVsZW1lbnQuY3Vyc29yLFxuICAgICAgICBldmVudE1vZGU6IGVsZW1lbnQuZXZlbnRNb2RlLFxuICAgICAgICBpbnRlcmFjdGl2ZTogZWxlbWVudC5pbnRlcmFjdGl2ZSxcbiAgICAgICAgaW50ZXJhY3RpdmVDaGlsZHJlbjogZWxlbWVudC5pbnRlcmFjdGl2ZUNoaWxkcmVuLFxuICAgICAgICBoaXRBcmVhOiBlbGVtZW50LmhpdEFyZWEsXG4gICAgICAgIGluZGV4OiBwYXJlbnQ/LmdldENoaWxkSW5kZXgoZWxlbWVudCksXG4gICAgICAgIHBhcmVudExhYmVsOiBwYXJlbnQ/LmxhYmVsLFxuICAgIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBtZW1vcnkgb2JqZWN0IG9mIHRoZSBQaXhpSlMgdGV4dHVyZVxuICogQHBhcmFtIHRleHR1cmUgUGl4aUpTIFRleHR1cmUgb2JqZWN0XG4gKiBAcGFyYW0gYWxpYXMgT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSB0ZXh0dXJlXG4gKiBAcmV0dXJucyBNZW1vcnkgb2JqZWN0IG9mIHRoZSB0ZXh0dXJlXG4gKi9cbmZ1bmN0aW9uIGdldFRleHR1cmVNZW1vcnkodGV4dHVyZTogVGV4dHVyZSwgYWxpYXM/OiBzdHJpbmcpOiBBc3NldE1lbW9yeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiB0ZXh0dXJlLnNvdXJjZS5sYWJlbCxcbiAgICAgICAgYWxpYXM6IGFsaWFzID09PSB0ZXh0dXJlLnNvdXJjZS5sYWJlbCA/IHVuZGVmaW5lZCA6IGFsaWFzLFxuICAgIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBtZW1vcnkgb2JqZWN0IG9mIGEgY29udGFpbmVyXG4gKiBAcGFyYW0gZWxlbWVudCBQaXhpSlMgY29udGFpbmVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIGV4cG9ydCBvcHRpb25zXG4gKiBAcmV0dXJucyBNZW1vcnkgb2JqZWN0IG9mIHRoZSBjb250YWluZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1lbW9yeUNvbnRhaW5lcjxUIGV4dGVuZHMgUGl4aUNvbnRhaW5lcj4oXG4gICAgZWxlbWVudDogVCxcbiAgICBvcHRpb25zPzogeyBjaGlsZHJlbkV4cG9ydD86IGJvb2xlYW4gfSxcbik6IENvbnRhaW5lck1lbW9yeSB7XG4gICAgY29uc3QgcGl4aXZuSWQgPSBnZXRQaXhpdm5JZChlbGVtZW50LCBDQU5WQVNfQ09OVEFJTkVSX0lEKTtcbiAgICBjb25zdCBjaGlsZHJlbkV4cG9ydCA9IG9wdGlvbnM/LmNoaWxkcmVuRXhwb3J0IHx8IGZhbHNlO1xuXG4gICAgY29uc3QgZWxlbWVudHM6IENhbnZhc0Jhc2VJdGVtTWVtb3J5W10gPSBjaGlsZHJlbkV4cG9ydFxuICAgICAgICA/IGVsZW1lbnQuY2hpbGRyZW5cbiAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGVsZW1lbnQuZ2V0Q2hpbGRJbmRleChhKSAtIGVsZW1lbnQuZ2V0Q2hpbGRJbmRleChiKSlcbiAgICAgICAgICAgICAgLm1hcCgoY2hpbGQpID0+IGV4cG9ydENhbnZhc0VsZW1lbnQoY2hpbGQgYXMgQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+KSlcbiAgICAgICAgOiBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHBpeGl2bklkLFxuICAgICAgICBlbGVtZW50cyxcbiAgICAgICAgb25FdmVudHM6IGdldExpc3RlbmVyTWVtb3J5KGVsZW1lbnQpLFxuICAgICAgICAuLi5leHRyYWN0Q29tbW9uTWVtb3J5UHJvcGVydGllcyhlbGVtZW50KSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWVtb3J5IG9iamVjdCBvZiBhIHNwcml0ZVxuICogQHBhcmFtIGVsZW1lbnQgUGl4aUpTIHNwcml0ZSBlbGVtZW50XG4gKiBAcmV0dXJucyBNZW1vcnkgb2JqZWN0IG9mIHRoZSBzcHJpdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1lbW9yeVNwcml0ZTxUIGV4dGVuZHMgUGl4aVNwcml0ZT4oZWxlbWVudDogVCB8IFBpeGlTcHJpdGUpOiBTcHJpdGVNZW1vcnkge1xuICAgIGNvbnN0IGJhc2VNZW1vcnkgPSBnZXRNZW1vcnlDb250YWluZXIoZWxlbWVudCk7XG4gICAgY29uc3QgcGl4aXZuSWQgPSBiYXNlTWVtb3J5LnBpeGl2bklkID8/IENBTlZBU19TUFJJVEVfSUQ7XG4gICAgY29uc3QgdGV4dHVyZURhdGEgPVxuICAgICAgICBcImFzc2V0c0FsaWFzZXNcIiBpbiBlbGVtZW50ICYmIEFycmF5LmlzQXJyYXkoZWxlbWVudC5hc3NldHNBbGlhc2VzKVxuICAgICAgICAgICAgPyBnZXRUZXh0dXJlTWVtb3J5KGVsZW1lbnQudGV4dHVyZSwgZWxlbWVudC5hc3NldHNBbGlhc2VzWzBdIGFzIHN0cmluZylcbiAgICAgICAgICAgIDogXCJ0ZXh0dXJlQWxpYXNcIiBpbiBlbGVtZW50XG4gICAgICAgICAgICAgID8gZ2V0VGV4dHVyZU1lbW9yeShlbGVtZW50LnRleHR1cmUsIGVsZW1lbnQudGV4dHVyZUFsaWFzIGFzIHN0cmluZylcbiAgICAgICAgICAgICAgOiBnZXRUZXh0dXJlTWVtb3J5KGVsZW1lbnQudGV4dHVyZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5iYXNlTWVtb3J5LFxuICAgICAgICBwaXhpdm5JZCxcbiAgICAgICAgdGV4dHVyZURhdGEsXG4gICAgICAgIGFuY2hvcjogeyB4OiBlbGVtZW50LmFuY2hvci54LCB5OiBlbGVtZW50LmFuY2hvci55IH0sXG4gICAgICAgIHJvdW5kUGl4ZWxzOiBlbGVtZW50LnJvdW5kUGl4ZWxzLFxuICAgIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBtZW1vcnkgb2JqZWN0IG9mIGEgdGV4dCBlbGVtZW50XG4gKiBAcGFyYW0gZWxlbWVudCBQaXhpSlMgdGV4dCBlbGVtZW50XG4gKiBAcmV0dXJucyBNZW1vcnkgb2JqZWN0IG9mIHRoZSB0ZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZW1vcnlUZXh0PFQgZXh0ZW5kcyBQaXhpVGV4dD4oZWxlbWVudDogVCB8IFBpeGlUZXh0KTogVGV4dE1lbW9yeSB7XG4gICAgY29uc3QgYmFzZU1lbW9yeSA9IGdldE1lbW9yeUNvbnRhaW5lcihlbGVtZW50KTtcbiAgICBjb25zdCBwaXhpdm5JZCA9IGJhc2VNZW1vcnkucGl4aXZuSWQgPz8gQ0FOVkFTX1RFWFRfSUQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5iYXNlTWVtb3J5LFxuICAgICAgICBwaXhpdm5JZCxcbiAgICAgICAgYW5jaG9yOiB7IHg6IGVsZW1lbnQuYW5jaG9yLngsIHk6IGVsZW1lbnQuYW5jaG9yLnkgfSxcbiAgICAgICAgdGV4dDogZWxlbWVudC50ZXh0LFxuICAgICAgICByZXNvbHV0aW9uOiBlbGVtZW50LnJlc29sdXRpb24sXG4gICAgICAgIHN0eWxlOiBnZXRUZXh0U3R5bGUoZWxlbWVudC5zdHlsZSksXG4gICAgICAgIHJvdW5kUGl4ZWxzOiBlbGVtZW50LnJvdW5kUGl4ZWxzLFxuICAgIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBQaXhpdm4gSUQgb2YgYW4gZWxlbWVudFxuICogQHBhcmFtIGVsZW1lbnQgUGl4aUpTIGVsZW1lbnRcbiAqIEBwYXJhbSBkZWZhdWx0SWQgRGVmYXVsdCBJRCB0byB1c2UgaWYgbm9uZSBpcyBmb3VuZFxuICogQHJldHVybnMgUGl4aXZuIElEXG4gKi9cbmZ1bmN0aW9uIGdldFBpeGl2bklkKGVsZW1lbnQ6IGFueSwgZGVmYXVsdElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWxlbWVudCwgXCJwaXhpdm5JZFwiKSA/IGVsZW1lbnQucGl4aXZuSWQgOiBkZWZhdWx0SWQ7XG59XG5cbmZ1bmN0aW9uIGdyYWRpZW50VG9PcHRpb25zKHByb3A6IEZpbGxHcmFkaWVudCk6IEdyYWRpZW50T3B0aW9ucyB7XG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImxpbmVhclwiOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImxpbmVhclwiLFxuICAgICAgICAgICAgICAgIGNvbG9yU3RvcHM6IHByb3AuY29sb3JTdG9wcyxcbiAgICAgICAgICAgICAgICBlbmQ6IHsgeDogcHJvcC5lbmQueCwgeTogcHJvcC5lbmQueSB9LFxuICAgICAgICAgICAgICAgIHN0YXJ0OiB7IHg6IHByb3Auc3RhcnQueCwgeTogcHJvcC5zdGFydC55IH0sXG4gICAgICAgICAgICAgICAgdGV4dHVyZVNwYWNlOiBwcm9wLnRleHR1cmVTcGFjZSxcbiAgICAgICAgICAgICAgICB3cmFwTW9kZTogcHJvcC50ZXh0dXJlLnNvdXJjZS53cmFwTW9kZSxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlU2l6ZTogcHJvcC50ZXh0dXJlLnNvdXJjZS53aWR0aCAvIHByb3AudGV4dHVyZS5zb3VyY2UuaGVpZ2h0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBcInJhZGlhbFwiOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcInJhZGlhbFwiLFxuICAgICAgICAgICAgICAgIGNvbG9yU3RvcHM6IHByb3AuY29sb3JTdG9wcyxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlU3BhY2U6IHByb3AudGV4dHVyZVNwYWNlLFxuICAgICAgICAgICAgICAgIGNlbnRlcjogeyB4OiBwcm9wLmNlbnRlci54LCB5OiBwcm9wLmNlbnRlci55IH0sXG4gICAgICAgICAgICAgICAgaW5uZXJSYWRpdXM6IHByb3AuaW5uZXJSYWRpdXMsXG4gICAgICAgICAgICAgICAgb3V0ZXJDZW50ZXI6IHsgeDogcHJvcC5vdXRlckNlbnRlci54LCB5OiBwcm9wLm91dGVyQ2VudGVyLnkgfSxcbiAgICAgICAgICAgICAgICBvdXRlclJhZGl1czogcHJvcC5vdXRlclJhZGl1cyxcbiAgICAgICAgICAgICAgICByb3RhdGlvbjogcHJvcC5yb3RhdGlvbixcbiAgICAgICAgICAgICAgICBzY2FsZTogcHJvcC5zY2FsZSxcbiAgICAgICAgICAgICAgICB3cmFwTW9kZTogcHJvcC50ZXh0dXJlLnNvdXJjZS53cmFwTW9kZSxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlU2l6ZTogcHJvcC50ZXh0dXJlLnNvdXJjZS53aWR0aCAvIHByb3AudGV4dHVyZS5zb3VyY2UuaGVpZ2h0LFxuICAgICAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKlxuICogSGFuZGxlIGZpbGwgZ3JhZGllbnQgb3IgZmlsbCBwYXR0ZXJuXG4gKiBAcGFyYW0gcHJvcCBGaWxsIHByb3BlcnR5XG4gKiBAcmV0dXJucyBQcm9jZXNzZWQgZmlsbCBwcm9wZXJ0eVxuICovXG5mdW5jdGlvbiBnZXRGaWxsKHByb3A6IEZpbGxJbnB1dCB8IHVuZGVmaW5lZCB8IG51bGwpOiBHcmFkaWVudE9wdGlvbnMgfCB1bmRlZmluZWQgfCBzdHJpbmcgfCBudW1iZXJbXSB8IG51bWJlciB7XG4gICAgaWYgKHByb3AgPT09IHVuZGVmaW5lZCB8fCBwcm9wID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gcHJvcDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkocHJvcCkpIHtcbiAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgfSBlbHNlIGlmIChwcm9wIGluc3RhbmNlb2YgUElYSS5GaWxsR3JhZGllbnQpIHtcbiAgICAgICAgcmV0dXJuIGdyYWRpZW50VG9PcHRpb25zKHByb3ApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3AgPT09IFwib2JqZWN0XCIgJiYgXCJmaWxsXCIgaW4gcHJvcCAmJiB0eXBlb2YgcHJvcC5maWxsICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKCFwcm9wLmZpbGwpIHtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wLmZpbGwgaW5zdGFuY2VvZiBQSVhJLkZpbGxQYXR0ZXJuKSB7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ3JhZGllbnRUb09wdGlvbnMocHJvcC5maWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2dnZXIud2FybihgVW5zdXBwb3J0ZWQgcHJvcGVydHkgdHlwZSBmb3IgVGV4dC5zdHlsZS5maWxsLmAsIHByb3ApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDb2xvcihjb2xvcj86IENvbG9yU291cmNlKTogc3RyaW5nIHwgbnVtYmVyIHwgbnVtYmVyW10gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgY29sb3IgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbG9yO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbG9yID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29sb3IpKSB7XG4gICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9IGVsc2UgaWYgKGNvbG9yIGluc3RhbmNlb2YgUElYSS5Db2xvcikge1xuICAgICAgICByZXR1cm4gY29sb3IudG9OdW1iZXIoKTtcbiAgICB9XG4gICAgbG9nZ2VyLndhcm4oYFVuc3VwcG9ydGVkIGNvbG9yIHR5cGUuYCwgY29sb3IpO1xufVxuXG4vKipcbiAqIEhhbmRsZSBzdHJva2VcbiAqIEBwYXJhbSBwcm9wIFN0cm9rZSBwcm9wZXJ0eVxuICogQHJldHVybnMgUHJvY2Vzc2VkIHN0cm9rZSBwcm9wZXJ0eVxuICovXG5mdW5jdGlvbiBnZXRTdHJva2UocHJvcDogU3Ryb2tlSW5wdXQgfCB1bmRlZmluZWQgfCBudWxsKTogR3JhZGllbnRPcHRpb25zIHwgdW5kZWZpbmVkIHwgc3RyaW5nIHwgbnVtYmVyW10gfCBudW1iZXIge1xuICAgIGlmIChwcm9wID09PSB1bmRlZmluZWQgfHwgcHJvcCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3AgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KHByb3ApKSB7XG4gICAgICAgIHJldHVybiBwcm9wO1xuICAgIH0gZWxzZSBpZiAocHJvcCBpbnN0YW5jZW9mIFBJWEkuRmlsbEdyYWRpZW50KSB7XG4gICAgICAgIHJldHVybiBncmFkaWVudFRvT3B0aW9ucyhwcm9wKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wID09PSBcIm9iamVjdFwiICYmIFwiYWxpZ25tZW50XCIgaW4gcHJvcCkge1xuICAgICAgICBjb25zdCBzdHJva2VQcm9wOiBTdHJva2VTdHlsZSA9IHtcbiAgICAgICAgICAgIGFsaWdubWVudDogcHJvcC5hbGlnbm1lbnQsXG4gICAgICAgICAgICBhbHBoYTogcHJvcC5hbHBoYSxcbiAgICAgICAgICAgIGNvbG9yOiBjb252ZXJ0Q29sb3IocHJvcC5jb2xvciksXG4gICAgICAgICAgICBqb2luOiBwcm9wLmpvaW4sXG4gICAgICAgICAgICBtaXRlckxpbWl0OiBwcm9wLm1pdGVyTGltaXQsXG4gICAgICAgICAgICB3aWR0aDogcHJvcC53aWR0aCxcbiAgICAgICAgICAgIGNhcDogcHJvcC5jYXAsXG4gICAgICAgICAgICAvLyB0ZXh0dXJlOiBwcm9wLnRleHR1cmUsXG4gICAgICAgICAgICAvLyBmaWxsOiBnZXRGaWxsKHByb3AuZmlsbCksXG4gICAgICAgICAgICAvLyBtYXRyaXg6IHByb3AubWF0cml4LFxuICAgICAgICAgICAgcGl4ZWxMaW5lOiBwcm9wLnBpeGVsTGluZSxcbiAgICAgICAgICAgIHRleHR1cmVTcGFjZTogcHJvcC50ZXh0dXJlU3BhY2UsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBzdHJva2VQcm9wO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3AgPT09IFwib2JqZWN0XCIgJiYgXCJmaWxsXCIgaW4gcHJvcCAmJiB0eXBlb2YgcHJvcC5maWxsICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKCFwcm9wLmZpbGwpIHtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wLmZpbGwgaW5zdGFuY2VvZiBQSVhJLkZpbGxQYXR0ZXJuKSB7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ3JhZGllbnRUb09wdGlvbnMocHJvcC5maWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2dnZXIud2FybihgVW5zdXBwb3J0ZWQgcHJvcGVydHkgdHlwZSBmb3IgVGV4dC5zdHlsZS5zdHJva2UuYCwgcHJvcCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHRleHQgc3R5bGUgb3B0aW9uc1xuICogQHBhcmFtIHN0eWxlIFBpeGlKUyB0ZXh0IHN0eWxlXG4gKiBAcmV0dXJucyBUZXh0IHN0eWxlIG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gZ2V0VGV4dFN0eWxlKHN0eWxlOiBUZXh0U3R5bGUpOiBUZXh0U3R5bGVPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhbGlnbjogc3R5bGUuYWxpZ24sXG4gICAgICAgIGJyZWFrV29yZHM6IHN0eWxlLmJyZWFrV29yZHMsXG4gICAgICAgIGRyb3BTaGFkb3c6IHN0eWxlLmRyb3BTaGFkb3csXG4gICAgICAgIGZpbGw6IGdldEZpbGwoc3R5bGUuZmlsbCksXG4gICAgICAgIGZvbnRGYW1pbHk6IHN0eWxlLmZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiBzdHlsZS5mb250U2l6ZSxcbiAgICAgICAgZm9udFN0eWxlOiBzdHlsZS5mb250U3R5bGUsXG4gICAgICAgIGZvbnRWYXJpYW50OiBzdHlsZS5mb250VmFyaWFudCxcbiAgICAgICAgZm9udFdlaWdodDogc3R5bGUuZm9udFdlaWdodCxcbiAgICAgICAgbGVhZGluZzogc3R5bGUubGVhZGluZyxcbiAgICAgICAgbGV0dGVyU3BhY2luZzogc3R5bGUubGV0dGVyU3BhY2luZyxcbiAgICAgICAgbGluZUhlaWdodDogc3R5bGUubGluZUhlaWdodCxcbiAgICAgICAgcGFkZGluZzogc3R5bGUucGFkZGluZyxcbiAgICAgICAgc3Ryb2tlOiBnZXRTdHJva2Uoc3R5bGUuc3Ryb2tlKSxcbiAgICAgICAgdGV4dEJhc2VsaW5lOiBzdHlsZS50ZXh0QmFzZWxpbmUsXG4gICAgICAgIHRyaW06IHN0eWxlLnRyaW0sXG4gICAgICAgIHdoaXRlU3BhY2U6IHN0eWxlLndoaXRlU3BhY2UsXG4gICAgICAgIHdvcmRXcmFwOiBzdHlsZS53b3JkV3JhcCxcbiAgICAgICAgd29yZFdyYXBXaWR0aDogc3R5bGUud29yZFdyYXBXaWR0aCxcbiAgICB9O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBVUERBVEVfUFJJT1JJVFkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IENhY2hlZE1hcCB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvbG9nLXV0aWxpdHlcIjtcbmltcG9ydCBUaWNrZXIgZnJvbSBcIi4uL2ludGVyZmFjZXMvVGlja2VyXCI7XG5pbXBvcnQgVGlja2VyQXJncyBmcm9tIFwiLi4vaW50ZXJmYWNlcy9UaWNrZXJBcmdzXCI7XG5cbi8qKlxuICogQSBkaWN0aW9uYXJ5IHRoYXQgY29udGFpbnMgYWxsIHRpY2tlcnMgcmVnaXN0ZXJlZCBhbmQgYXZ2YWlsYWJsZSB0byBiZSB1c2VkLlxuICovXG5jb25zdCByZWdpc3RlcmVkVGlja2VycyA9IG5ldyBDYWNoZWRNYXA8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgICAgbmV3IChcbiAgICAgICAgICAgIGFyZ3M6IGFueSxcbiAgICAgICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb24/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFk7XG4gICAgICAgICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY2FudmFzRWxlbWVudEFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk6IFRpY2tlcjxhbnk+O1xuICAgIH1cbj4oeyBjYWNoZVNpemU6IDUgfSk7XG5cbi8qKlxuICogSXMgYSBkZWNvcmF0b3IgdGhhdCByZWdpc3RlciBhIHRpY2tlciBpbiB0aGUgZ2FtZS5cbiAqIElzIGEgcmVxdWlyZWQgZGVjb3JhdG9yIGZvciB1c2UgdGhlIHRpY2tlciBpbiB0aGUgZ2FtZS5cbiAqIFRoYW5rcyB0byB0aGlzIGRlY29yYXRpb24gdGhlIGdhbWUgaGFzIHRoZSBwb3NzaWJpbGl0eSBvZiB1cGRhdGluZyB0aGUgdGlja2VycyB0byB0aGUgbGF0ZXN0IG1vZGlmaWNhdGlvbiBhbmQgc2F2aW5nIHRoZSBnYW1lLlxuICogQHBhcmFtIG5hbWUgaXMgdGggaWRlbnRpZmllciBvZiB0aGUgbGFiZWwsIGJ5IGRlZmF1bHQgaXMgdGhlIG5hbWUgb2YgdGhlIGNsYXNzXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGlja2VyRGVjb3JhdG9yKG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDoge1xuICAgICAgICBuZXcgKFxuICAgICAgICAgICAgYXJnczogYW55LFxuICAgICAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbj86IG51bWJlcjtcbiAgICAgICAgICAgICAgICBwcmlvcml0eT86IFVQREFURV9QUklPUklUWTtcbiAgICAgICAgICAgICAgICBpZD86IHN0cmluZztcbiAgICAgICAgICAgICAgICBjYW52YXNFbGVtZW50QWxpYXNlcz86IHN0cmluZ1tdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgKTogVGlja2VyPGFueT47XG4gICAgfSkge1xuICAgICAgICBSZWdpc3RlcmVkVGlja2Vycy5hZGQodGFyZ2V0LCBuYW1lKTtcbiAgICB9O1xufVxuXG5uYW1lc3BhY2UgUmVnaXN0ZXJlZFRpY2tlcnMge1xuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgdGlja2VyIGluIHRoZSBnYW1lLlxuICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIGNsYXNzIG9mIHRoZSB0aWNrZXIuXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgdGlja2VyLCBieSBkZWZhdWx0IGl0IHdpbGwgdXNlIHRoZSBjbGFzcyBuYW1lLiBJZiB0aGUgbmFtZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIGl0IHdpbGwgc2hvdyBhIHdhcm5pbmdcbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gYWRkKFxuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICAgIG5ldyAoXG4gICAgICAgICAgICAgICAgYXJnczogYW55LFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uPzogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eT86IFVQREFURV9QUklPUklUWTtcbiAgICAgICAgICAgICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnRBbGlhc2VzPzogc3RyaW5nW107XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk6IFRpY2tlcjxhbnk+O1xuICAgICAgICB9LFxuICAgICAgICBuYW1lPzogc3RyaW5nLFxuICAgICkge1xuICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSB0YXJnZXQubmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVnaXN0ZXJlZFRpY2tlcnMuZ2V0KG5hbWUpKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgVGlja2VyIFwiJHtuYW1lfVwiIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5pZCA9IG5hbWU7XG4gICAgICAgIHJlZ2lzdGVyZWRUaWNrZXJzLnNldChuYW1lLCB0YXJnZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIHRpY2tlciBieSB0aGUgaWQuXG4gICAgICogQHBhcmFtIGNhbnZhc0lkIFRoZSBpZCBvZiB0aGUgdGlja2VyLlxuICAgICAqIEByZXR1cm5zIFRoZSB0aWNrZXIgdHlwZS5cbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQgPSBUaWNrZXI8YW55Pj4odGlja2VySWQ6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHRpY2tlclR5cGUgPSByZWdpc3RlcmVkVGlja2Vycy5nZXQodGlja2VySWQpO1xuICAgICAgICAgICAgaWYgKCF0aWNrZXJUeXBlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBFdmVudCBcIiR7dGlja2VySWR9XCIgbm90IGZvdW5kLCBkaWQgeW91IGZvcmdldCB0byByZWdpc3RlciBpdCB3aXRoIHRoZSB0aWNrZXJEZWNvcmF0b3I/YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRpY2tlclR5cGUgYXMgVDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBFcnJvciB3aGlsZSBnZXR0aW5nIEV2ZW50IFwiJHt0aWNrZXJJZH1cImAsIGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgdGlja2VyIGluc3RhbmNlIGJ5IHRoZSBpZC5cbiAgICAgKiBAcGFyYW0gdGlja2VySWQgVGhlIGlkIG9mIHRoZSB0aWNrZXIuXG4gICAgICogQHBhcmFtIGFyZ3MgVGhlIGFyZ3VtZW50cyB0aGF0IHlvdSB3YW50IHRvIHBhc3MgdG8gdGhlIHRpY2tlci5cbiAgICAgKiBAcGFyYW0gZHVyYXRpb24gVGhlIGR1cmF0aW9uIG9mIHRoZSB0aWNrZXIuIElmIGlzIHVuZGVmaW5lZCwgdGhlIHRpY2tlciB3aWxsIGJlIGNhbGxlZCBldmVyeSBmcmFtZS5cbiAgICAgKiBAcGFyYW0gcHJpb3JpdHkgVGhlIHByaW9yaXR5IG9mIHRoZSB0aWNrZXIuIElmIGlzIHVuZGVmaW5lZCwgdGhlIHByaW9yaXR5IHdpbGwgYmUgVVBEQVRFX1BSSU9SSVRZLk5PUk1BTC5cbiAgICAgKiBAcmV0dXJucyBUaGUgaW5zdGFuY2Ugb2YgdGhlIHRpY2tlclxuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBnZXRJbnN0YW5jZTxUQXJncyBleHRlbmRzIFRpY2tlckFyZ3M+KFxuICAgICAgICB0aWNrZXJJZDogc3RyaW5nLFxuICAgICAgICBhcmdzOiBUQXJncyxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGR1cmF0aW9uPzogbnVtYmVyO1xuICAgICAgICAgICAgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFk7XG4gICAgICAgICAgICBpZD86IHN0cmluZztcbiAgICAgICAgICAgIGNhbnZhc0VsZW1lbnRBbGlhc2VzPzogc3RyaW5nW107XG4gICAgICAgIH0sXG4gICAgKTogVGlja2VyPFRBcmdzPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgdGlja2VyID0gcmVnaXN0ZXJlZFRpY2tlcnMuZ2V0KHRpY2tlcklkKTtcbiAgICAgICAgICAgIGlmICghdGlja2VyKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBUaWNrZXIgXCIke3RpY2tlcklkfVwiIG5vdCBmb3VuZCwgZGlkIHlvdSBmb3JnZXQgdG8gcmVnaXN0ZXIgaXQgd2l0aCB0aGUgdGlja2VyRGVjb3JhdG9yP2ApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXcgdGlja2VyKGFyZ3MsIG9wdGlvbnMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEVycm9yIHdoaWxlIGdldHRpbmcgVGlja2VyIFwiJHt0aWNrZXJJZH1cImAsIGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgbGlzdCBvZiBhbGwgdGlja2VycyByZWdpc3RlcmVkLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHRpY2tlcnMuXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHZhbHVlcygpOiB7XG4gICAgICAgIG5ldyAoXG4gICAgICAgICAgICBhcmdzOiBhbnksXG4gICAgICAgICAgICBvcHRpb25zPzoge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uPzogbnVtYmVyO1xuICAgICAgICAgICAgICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZO1xuICAgICAgICAgICAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnRBbGlhc2VzPzogc3RyaW5nW107XG4gICAgICAgICAgICB9LFxuICAgICAgICApOiBUaWNrZXI8YW55PjtcbiAgICB9W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShyZWdpc3RlcmVkVGlja2Vycy52YWx1ZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSB0aWNrZXIgaXMgcmVnaXN0ZXJlZC5cbiAgICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0aWNrZXIuXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgdGlja2VyIGlzIHJlZ2lzdGVyZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaGFzKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHJlZ2lzdGVyZWRUaWNrZXJzLmhhcyhpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgbGlzdCBvZiBhbGwgdGlja2VyIGlkcyByZWdpc3RlcmVkLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGxhYmVsIGlkcy5cbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24ga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHJlZ2lzdGVyZWRUaWNrZXJzLmtleXMoKSk7XG4gICAgfVxufVxuZXhwb3J0IGRlZmF1bHQgUmVnaXN0ZXJlZFRpY2tlcnM7XG4iLCJleHBvcnQgY29uc3QgYWxpYXNUb1JlbW92ZUFmdGVyID0gXCJhbGlhc1RvUmVtb3ZlQWZ0ZXJcIjtcbmV4cG9ydCB0eXBlIGFsaWFzVG9SZW1vdmVBZnRlclR5cGUgPSBcImFsaWFzVG9SZW1vdmVBZnRlclwiO1xuIiwiaW1wb3J0IHsgR2FtZVVuaWZpZXIgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL2NvcmVcIjtcbmltcG9ydCB0eXBlIHtcbiAgICBBbmltYXRpb25PcHRpb25zLFxuICAgIEtleWZyYW1lc1R5cGUsXG4gICAgT2JqZWN0U2VnbWVudCxcbiAgICBPYmplY3RTZWdtZW50V2l0aFRyYW5zaXRpb24sXG4gICAgU2VxdWVuY2VPcHRpb25zLFxufSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL21vdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbk9wdGlvbnMsIENvbnRhaW5lciBhcyBQaXhpQ29udGFpbmVyLCBVUERBVEVfUFJJT1JJVFkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUElYSSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgRGV2dG9vbHMgfSBmcm9tIFwiQHBpeGkvZGV2dG9vbHNcIjtcbmltcG9ydCB7IENBTlZBU19BUFBfR0FNRV9MQVlFUl9BTElBUywgUmVwZWF0IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbHMvZXhwb3J0LXV0aWxpdHlcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi91dGlscy9sb2ctdXRpbGl0eVwiO1xuaW1wb3J0IENhbnZhc01hbmFnZXJTdGF0aWMgZnJvbSBcIi4vQ2FudmFzTWFuYWdlclN0YXRpY1wiO1xuaW1wb3J0IFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLCB7IHNldE1lbW9yeUNvbnRhaW5lciB9IGZyb20gXCIuL2RlY29yYXRvcnMvY2FudmFzLWVsZW1lbnQtZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBpbXBvcnRDYW52YXNFbGVtZW50IH0gZnJvbSBcIi4vZnVuY3Rpb25zL2NhbnZhcy1pbXBvcnQtdXRpbGl0eVwiO1xuaW1wb3J0IHsgZXhwb3J0Q2FudmFzRWxlbWVudCwgZ2V0TWVtb3J5Q29udGFpbmVyIH0gZnJvbSBcIi4vZnVuY3Rpb25zL2NhbnZhcy1tZW1vcnktdXRpbGl0eVwiO1xuaW1wb3J0IHsgQ2FudmFzQmFzZUludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZXMvQ2FudmFzQmFzZUludGVyZmFjZVwiO1xuaW1wb3J0IENhbnZhc0dhbWVTdGF0ZSBmcm9tIFwiLi9pbnRlcmZhY2VzL0NhbnZhc0dhbWVTdGF0ZVwiO1xuaW1wb3J0IENhbnZhc01hbmFnZXJJbnRlcmZhY2UgZnJvbSBcIi4vaW50ZXJmYWNlcy9DYW52YXNNYW5hZ2VySW50ZXJmYWNlXCI7XG5pbXBvcnQgQ2FudmFzQmFzZUl0ZW1NZW1vcnkgZnJvbSBcIi4vaW50ZXJmYWNlcy9tZW1vcnkvQ2FudmFzQmFzZUl0ZW1NZW1vcnlcIjtcbmltcG9ydCB7IFRpY2tlciwgVGlja2VyQXJncywgVGlja2VySW5mbyB9IGZyb20gXCIuL3RpY2tlcnNcIjtcbmltcG9ydCBSZWdpc3RlcmVkVGlja2VycyBmcm9tIFwiLi90aWNrZXJzL2RlY29yYXRvcnMvUmVnaXN0ZXJlZFRpY2tlcnNcIjtcbmltcG9ydCBUaWNrZXJzU2VxdWVuY2UsIHsgVGlja2Vyc1N0ZXAgfSBmcm9tIFwiLi90aWNrZXJzL2ludGVyZmFjZXMvVGlja2Vyc1NlcXVlbmNlXCI7XG5pbXBvcnQgeyBhbGlhc1RvUmVtb3ZlQWZ0ZXIgfSBmcm9tIFwiLi90aWNrZXJzL3R5cGVzL0FsaWFzVG9SZW1vdmVBZnRlclR5cGVcIjtcbmltcG9ydCB7IFBhdXNlVHlwZSB9IGZyb20gXCIuL3R5cGVzL1BhdXNlVHlwZVwiO1xuaW1wb3J0IHsgUmVwZWF0VHlwZSB9IGZyb20gXCIuL3R5cGVzL1JlcGVhdFR5cGVcIjtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUgY2FudmFzLCB0aGUgdGlja2VycywgdGhlIGV2ZW50cywgYW5kIHRoZSB3aW5kb3cgc2l6ZSBhbmQgdGhlIGNoaWxkcmVuIG9mIHRoZSB3aW5kb3cuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhbnZhc01hbmFnZXIgaW1wbGVtZW50cyBDYW52YXNNYW5hZ2VySW50ZXJmYWNlIHtcbiAgICBnZXQgYXBwKCkge1xuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5hcHA7XG4gICAgfVxuICAgIGdldCBnYW1lTGF5ZXIoKSB7XG4gICAgICAgIHJldHVybiBDYW52YXNNYW5hZ2VyU3RhdGljLmdhbWVMYXllcjtcbiAgICB9XG4gICAgZ2V0IGlzSW5pdGlhbGl6ZWQoKSB7XG4gICAgICAgIHJldHVybiBDYW52YXNNYW5hZ2VyU3RhdGljLl9pc0luaXRpYWxpemVkO1xuICAgIH1cbiAgICBnZXQgd2lkdGgoKSB7XG4gICAgICAgIHJldHVybiBDYW52YXNNYW5hZ2VyU3RhdGljLmNhbnZhc1dpZHRoO1xuICAgIH1cbiAgICBnZXQgaGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5jYW52YXNIZWlnaHQ7XG4gICAgfVxuICAgIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuY2FudmFzV2lkdGggPSB2YWx1ZTtcbiAgICB9XG4gICAgc2V0IGhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuY2FudmFzSGVpZ2h0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzY3JlZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcC5zY3JlZW47XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXQoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBvcHRpb25zOiBQYXJ0aWFsPEFwcGxpY2F0aW9uT3B0aW9ucz4gJiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoZSBpZCBvZiB0aGUgY2FudmFzIGVsZW1lbnQuXG4gICAgICAgICAgICAgKiBAZGVmYXVsdCBcInBpeGktdm4tY2FudmFzXCJcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoZSByZXNpemUgbW9kZSBvZiB0aGUgY2FudmFzLlxuICAgICAgICAgICAgICogQGRlZmF1bHQgXCJjb250YWluXCJcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcmVzaXplTW9kZT86IFwiY29udGFpblwiIHwgXCJub25lXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGRldnRvb2xzT3B0aW9ucz86IERldnRvb2xzLFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgQ2FudmFzTWFuYWdlclN0YXRpYy5pbml0KGVsZW1lbnQsIG9wdGlvbnMsIGRldnRvb2xzT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyogRWRpdCBDYW52YXMgRWxlbWVudHMgTWV0aG9kcyAqL1xuXG4gICAgZ2V0IGNoaWxkcmVuKCkge1xuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5nYW1lTGF5ZXIuY2hpbGRyZW47XG4gICAgfVxuICAgIGFzeW5jIGNvcHlDYW52YXNFbGVtZW50UHJvcGVydHk8VCBleHRlbmRzIENhbnZhc0Jhc2VJdGVtTWVtb3J5PihcbiAgICAgICAgb2xkQWxpYXM6IFQgfCBDYW52YXNCYXNlSW50ZXJmYWNlPFQ+IHwgc3RyaW5nLFxuICAgICAgICBuZXdBbGlhczogQ2FudmFzQmFzZUludGVyZmFjZTxUPiB8IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgaWdub3JlUHJvcGVydGllcz86IChkZWZhdWx0UHJvcGVydGllczogc3RyaW5nW10pID0+IHN0cmluZ1tdO1xuICAgICAgICB9ID0ge30sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQcm9wZXJ0aWVzV2hpY2hDYW5CZUlnbm9yZWQgPSBbXG4gICAgICAgICAgICBcImlzUmVuZGVyR3JvdXBcIixcbiAgICAgICAgICAgIFwic2NhbGVcIixcbiAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgXCJib3VuZHNBcmVhXCIsXG4gICAgICAgICAgICBcInRleHRcIixcbiAgICAgICAgICAgIFwicmVzb2x1dGlvblwiLFxuICAgICAgICAgICAgXCJzdHlsZVwiLFxuICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgIFwid2lkdGhcIixcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgeyBpZ25vcmVQcm9wZXJ0aWVzID0gKGRlZmF1bHRQcm9wZXJ0aWVzKSA9PiBkZWZhdWx0UHJvcGVydGllcyB9ID0gb3B0aW9ucztcbiAgICAgICAgaWYgKHR5cGVvZiBuZXdBbGlhcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmZpbmQobmV3QWxpYXMpO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBuZXdBbGlhcyA9IGVsZW1lbnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgQ2FudmFzIGVsZW1lbnQgJHtuZXdBbGlhc30gbm90IGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb2xkQWxpYXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5maW5kKG9sZEFsaWFzKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgb2xkQWxpYXMgPSBlbGVtZW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYENhbnZhcyBlbGVtZW50ICR7b2xkQWxpYXN9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAob2xkQWxpYXMgaW5zdGFuY2VvZiBQSVhJLkNvbnRhaW5lcikge1xuICAgICAgICAgICAgb2xkQWxpYXMgPSBvbGRBbGlhcy5tZW1vcnk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJvcGVydGllc1RvSWdub3JlID0gaWdub3JlUHJvcGVydGllcyhkZWZhdWx0UHJvcGVydGllc1doaWNoQ2FuQmVJZ25vcmVkKTtcbiAgICAgICAgY29uc3QgY2xvbmVkT2xkQWxpYXMgPSB7IC4uLihvbGRBbGlhcyBhcyBUKSB9O1xuICAgICAgICBwcm9wZXJ0aWVzVG9JZ25vcmUuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eSBpbiBjbG9uZWRPbGRBbGlhcykge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBjbG9uZWRPbGRBbGlhc1twcm9wZXJ0eSBhcyBrZXlvZiBUXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmNvcHlQcm9wZXJ0eShuZXdBbGlhcy5waXhpdm5JZCwgbmV3QWxpYXMsIGNsb25lZE9sZEFsaWFzKTtcbiAgICB9XG4gICAgcHVibGljIGFkZChcbiAgICAgICAgYWxpYXM6IHN0cmluZyxcbiAgICAgICAgY2FudmFzQ29tcG9uZW50OiBDYW52YXNCYXNlSW50ZXJmYWNlPGFueT4sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlcmUgaXMgYSBjYW52YXMgZWxlbWVudCB3aXRoIHRoZSBzYW1lIGFsaWFzLCB0aGUgXCJzdHlsZVwiIG9mIHRoZSBvbGQgY2FudmFzIGVsZW1lbnQgd2lsbCBiZSBpbXBvcnRlZCB0byB0aGUgbmV3IGNhbnZhcyBlbGVtZW50LlxuICAgICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWdub3JlT2xkU3R5bGU/OiBib29sZWFuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgekluZGV4IG9mIHRoZSBjYW52YXMgZWxlbWVudC5cbiAgICAgICAgICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB6SW5kZXg/OiBudW1iZXI7XG4gICAgICAgIH0gPSB7fSxcbiAgICApIHtcbiAgICAgICAgaWYgKGFsaWFzID09PSBDQU5WQVNfQVBQX0dBTUVfTEFZRVJfQUxJQVMpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVGhlIGFsaWFzICR7Q0FOVkFTX0FQUF9HQU1FX0xBWUVSX0FMSUFTfSBpcyByZXNlcnZlZGApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG9sZENhbnZhc0VsZW1lbnQgPSB0aGlzLmZpbmQoYWxpYXMpO1xuXG4gICAgICAgIGxldCBpZ25vcmVPbGRTdHlsZSA9IG9wdGlvbnM/Lmlnbm9yZU9sZFN0eWxlO1xuICAgICAgICBpZiAob2xkQ2FudmFzRWxlbWVudCAmJiAhaWdub3JlT2xkU3R5bGUpIHtcbiAgICAgICAgICAgIHRoaXMuY29weUNhbnZhc0VsZW1lbnRQcm9wZXJ0eShvbGRDYW52YXNFbGVtZW50LCBjYW52YXNDb21wb25lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyB6SW5kZXggPSBvbGRDYW52YXNFbGVtZW50Py5wYXJlbnQ/LmdldENoaWxkSW5kZXgob2xkQ2FudmFzRWxlbWVudCkgfSA9IG9wdGlvbnM7XG4gICAgICAgIGlmIChvbGRDYW52YXNFbGVtZW50ICYmICF0aGlzLmNhbnZhc0VsZW1lbnRJc09uQ2FudmFzKG9sZENhbnZhc0VsZW1lbnQpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgYFRoZSBjYW52YXMgZWxlbWVudCAke2FsaWFzfSBleGlzdCBpbiB0aGUgbWVtb3J5IGJ1dCBpdCBpcyBub3Qgb24gdGhlIGNhbnZhcywgc28gdGhlIHpJbmRleCBpcyBub3Qgc2V0YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAob2xkQ2FudmFzRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoYWxpYXMsIHsgaWdub3JlVGlja2VyczogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh6SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2FudmFzQ29tcG9uZW50LmxhYmVsID0gYWxpYXM7XG4gICAgICAgICAgICB0aGlzLmdhbWVMYXllci5hZGRDaGlsZEF0KGNhbnZhc0NvbXBvbmVudCwgekluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhbnZhc0NvbXBvbmVudC5sYWJlbCA9IGFsaWFzO1xuICAgICAgICAgICAgdGhpcy5nYW1lTGF5ZXIuYWRkQ2hpbGQoY2FudmFzQ29tcG9uZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgcmVtb3ZlKFxuICAgICAgICBhbGlhczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdHJ1ZSwgdGhlIHRpY2tlcnMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIHRoZSBjYW52YXMgZWxlbWVudCB3aWxsIG5vdCBiZSByZW1vdmVkLlxuICAgICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWdub3JlVGlja2Vycz86IGJvb2xlYW47XG4gICAgICAgIH0gPSB7fSxcbiAgICApIHtcbiAgICAgICAgaWYgKGFsaWFzID09PSBDQU5WQVNfQVBQX0dBTUVfTEFZRVJfQUxJQVMpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVGhlIGFsaWFzICR7Q0FOVkFTX0FQUF9HQU1FX0xBWUVSX0FMSUFTfSBpcyByZXNlcnZlZGApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpZ25vcmVUaWNrZXJzID0gb3B0aW9ucy5pZ25vcmVUaWNrZXJzO1xuICAgICAgICBpZiAodHlwZW9mIGFsaWFzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBhbGlhcyA9IFthbGlhc107XG4gICAgICAgIH1cbiAgICAgICAgYWxpYXMuZm9yRWFjaCgoYWxpYXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2FtZUxheWVyLmdldENoaWxkcmVuQnlMYWJlbChhbGlhcykuZm9yRWFjaCgoY2FudmFzQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nYW1lTGF5ZXIucmVtb3ZlQ2hpbGQoY2FudmFzQ29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICAhaWdub3JlVGlja2VycyAmJiB0aGlzLnVubGlua0NvbXBvbmVudEZyb21UaWNrZXIoYWxpYXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwdWJsaWMgZmluZDxUIGV4dGVuZHMgQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+PihhbGlhczogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChhbGlhcyA9PT0gQ0FOVkFTX0FQUF9HQU1FX0xBWUVSX0FMSUFTKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nYW1lTGF5ZXIgYXMgVDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY2FudmFzQ29tcG9uZW50ID0gdGhpcy5nYW1lTGF5ZXIuZ2V0Q2hpbGRCeUxhYmVsKGFsaWFzKTtcbiAgICAgICAgaWYgKGNhbnZhc0NvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbnZhc0NvbXBvbmVudCBhcyBUO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBjYW52YXNFbGVtZW50SXNPbkNhbnZhczxUIGV4dGVuZHMgUGl4aUNvbnRhaW5lcj4ocGl4aUVsZW1lbnQ6IFQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FtZUxheWVyLmNoaWxkcmVuLmluY2x1ZGVzKHBpeGlFbGVtZW50KTtcbiAgICB9XG4gICAgcHVibGljIHJlbW92ZUFsbCgpIHtcbiAgICAgICAgdGhpcy5nYW1lTGF5ZXIucmVtb3ZlQ2hpbGRyZW4oKTtcbiAgICB9XG4gICAgcHVibGljIGVkaXRBbGlhcyhcbiAgICAgICAgb2xkQWxpYXM6IHN0cmluZyxcbiAgICAgICAgbmV3QWxpYXM6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0cnVlLCB0aGUgdGlja2VycyB0aGF0IGFyZSBjb25uZWN0ZWQgdG8gdGhlIGNhbnZhcyBlbGVtZW50IHdpbGwgbm90IGJlIHRyYW5zZmVycmVkLlxuICAgICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWdub3JlVGlja2Vycz86IGJvb2xlYW47XG4gICAgICAgIH0gPSB7fSxcbiAgICApIHtcbiAgICAgICAgbGV0IGNhbnZhc0NvbXBvbmVudCA9IHRoaXMuZmluZChvbGRBbGlhcyk7XG4gICAgICAgIGlmIChjYW52YXNDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNhbnZhc0NvbXBvbmVudC5sYWJlbCA9IG5ld0FsaWFzO1xuICAgICAgICB9XG4gICAgICAgICFvcHRpb25zLmlnbm9yZVRpY2tlcnMgJiYgdGhpcy50cmFuc2ZlclRpY2tlcnMob2xkQWxpYXMsIG5ld0FsaWFzLCBcIm1vdmVcIik7XG4gICAgfVxuXG4gICAgLyoqIEVkaXQgVGlja2VycyBNZXRob2RzICovXG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbnRUaWNrZXJzKCkge1xuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnM7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY3VycmVudFRpY2tlcnNTdGVwcygpIHtcbiAgICAgICAgcmV0dXJuIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2U7XG4gICAgfVxuICAgIGZpbmRUaWNrZXI8VEFyZ3MgZXh0ZW5kcyBUaWNrZXJBcmdzPih0aWNrZXJJZDogc3RyaW5nKTogVGlja2VyPFRBcmdzPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCB0aWNrZXIgPSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1t0aWNrZXJJZF07XG4gICAgICAgIGlmICh0aWNrZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aWNrZXIudGlja2VyIGFzIFRpY2tlcjxUQXJncz47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgYWRkVGlja2VyPFRBcmdzIGV4dGVuZHMgVGlja2VyQXJncz4oY2FudmFzRWxlbWVudEFsaWFzOiBzdHJpbmcgfCBzdHJpbmdbXSwgdGlja2VyOiBUaWNrZXI8VEFyZ3M+KSB7XG4gICAgICAgIGNvbnN0IGlkID0gdGlja2VyLmlkO1xuICAgICAgICBjb25zdCB0aWNrZXJOYW1lOiBzdHJpbmcgPSB0aWNrZXIuYWxpYXM7XG4gICAgICAgIGlmICh0eXBlb2YgY2FudmFzRWxlbWVudEFsaWFzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjYW52YXNFbGVtZW50QWxpYXMgPSBbY2FudmFzRWxlbWVudEFsaWFzXTtcbiAgICAgICAgfVxuICAgICAgICB0aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMgPSBjYW52YXNFbGVtZW50QWxpYXM7XG4gICAgICAgIGlmICghUmVnaXN0ZXJlZFRpY2tlcnMuaGFzKHRpY2tlck5hbWUpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFRpY2tlciAke3RpY2tlck5hbWV9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCB0aWNrZXJIaXN0b3J5OiBUaWNrZXJJbmZvPFRBcmdzPiA9IHtcbiAgICAgICAgICAgIHRpY2tlcjogdGlja2VyLFxuICAgICAgICB9O1xuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1tpZF0gPSB0aWNrZXJIaXN0b3J5O1xuICAgICAgICB0aWNrZXJIaXN0b3J5LnRpY2tlci5zdGFydCgpO1xuICAgICAgICBpZiAodGlja2VyLmR1cmF0aW9uKSB7XG4gICAgICAgICAgICBsZXQgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMucmVtb3ZlVGlja2VyVGltZW91dEluZm8odGltZW91dCk7XG4gICAgICAgICAgICAgICAgbGV0IHRpY2tlclRpbWVvdXRJbmZvID0gQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNUaW1lb3V0c1t0aW1lb3V0LnRvU3RyaW5nKCldO1xuICAgICAgICAgICAgICAgIGlmICh0aWNrZXJUaW1lb3V0SW5mbykge1xuICAgICAgICAgICAgICAgICAgICB0aWNrZXJIaXN0b3J5LnRpY2tlci5jb21wbGV0ZSh7IGlnbm9yZVRpY2tlclN0ZXBzOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRpY2tlci5kdXJhdGlvbiAqIDEwMDApO1xuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5hZGRUaWNrZXJUaW1lb3V0SW5mbyhjYW52YXNFbGVtZW50QWxpYXMsIHRpY2tlck5hbWUsIHRpbWVvdXQudG9TdHJpbmcoKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cbiAgICBhZGRUaWNrZXJzU2VxdWVuY2UoYWxpYXM6IHN0cmluZywgc3RlcHM6IChUaWNrZXI8YW55PiB8IFJlcGVhdFR5cGUgfCBQYXVzZVR5cGUpW10sIGN1cnJlbnRTdGVwTnVtYmVyID0gMCkge1xuICAgICAgICBpZiAoc3RlcHMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKFwiVGhlIHN0ZXBzIG9mIHRoZSB0aWNrZXJzIGlzIGVtcHR5XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKGFsaWFzIGluIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2UpKSB7XG4gICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdGVwOiBUaWNrZXJzU2VxdWVuY2UgPSB7XG4gICAgICAgICAgICBjdXJyZW50U3RlcE51bWJlcjogY3VycmVudFN0ZXBOdW1iZXIsXG4gICAgICAgICAgICBzdGVwczogc3RlcHMubWFwKChzdGVwKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXAgPT09IFJlcGVhdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXAuaGFzT3duUHJvcGVydHkoXCJ0eXBlXCIpICYmIChzdGVwIGFzIFBhdXNlVHlwZSkudHlwZSA9PT0gXCJwYXVzZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGVwIGFzIFBhdXNlVHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHRpY2tlcklkID0gKHN0ZXAgYXMgVGlja2VyPGFueT4pLmFsaWFzO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHRpY2tlcjogdGlja2VySWQsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50KChzdGVwIGFzIFRpY2tlcjxhbnk+KS5hcmdzKSxcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IHN0ZXAuZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgICBsZXQga2V5ID0gQ2FudmFzTWFuYWdlclN0YXRpYy5nZW5lcmF0ZVRpY2tlcklkKHN0ZXApO1xuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXVtrZXldID0gc3RlcDtcbiAgICAgICAgdGhpcy5ydW5UaWNrZXJzU2VxdWVuY2UoYWxpYXMsIGtleSk7XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIHByaXZhdGUgcnVuVGlja2Vyc1NlcXVlbmNlPFRBcmdzIGV4dGVuZHMgVGlja2VyQXJncz4oYWxpYXM6IHN0cmluZywga2V5OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIUNhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdIHx8XG4gICAgICAgICAgICAhQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVthbGlhc11ba2V5XVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc3RlcCA9XG4gICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXVtrZXldLnN0ZXBzW1xuICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdW2tleV0uY3VycmVudFN0ZXBOdW1iZXJcbiAgICAgICAgICAgIF07XG4gICAgICAgIGlmIChzdGVwID09PSBSZXBlYXQpIHtcbiAgICAgICAgICAgIHN0ZXAgPSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXVtrZXldLnN0ZXBzWzBdO1xuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVthbGlhc11ba2V5XS5jdXJyZW50U3RlcE51bWJlciA9IDA7XG4gICAgICAgICAgICBpZiAoc3RlcCA9PT0gUmVwZWF0KSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiVGlrZXJzU3RlcHMgaGFzIGEgUmVwZWF0VHlwZSBpbiB0aGUgZmlyc3Qgc3RlcFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0ZXAuaGFzT3duUHJvcGVydHkoXCJ0eXBlXCIpICYmIChzdGVwIGFzIFBhdXNlVHlwZSkudHlwZSA9PT0gXCJwYXVzZVwiKSB7XG4gICAgICAgICAgICBsZXQgdGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGlja2VyVGltZW91dEluZm8gPSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1RpbWVvdXRzW3RpbWVvdXQudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aWNrZXJUaW1lb3V0SW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGlja2VyVGltZW91dEluZm8uYWxpYXNlcy5mb3JFYWNoKChhbGlhcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dFRpY2tlclN0ZXAoYWxpYXMsIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLnJlbW92ZVRpY2tlclRpbWVvdXRJbmZvKHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKHN0ZXAgYXMgUGF1c2VUeXBlKS5kdXJhdGlvbiAqIDEwMDAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5hZGRUaWNrZXJUaW1lb3V0SW5mbyhhbGlhcywgXCJzdGVwc1wiLCB0aW1lb3V0LnRvU3RyaW5nKCksIGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGlja2VyID0gUmVnaXN0ZXJlZFRpY2tlcnMuZ2V0SW5zdGFuY2U8VEFyZ3M+KFxuICAgICAgICAgICAgKHN0ZXAgYXMgVGlja2Vyc1N0ZXA8VEFyZ3M+KS50aWNrZXIsXG4gICAgICAgICAgICAoc3RlcCBhcyBUaWNrZXJzU3RlcDxUQXJncz4pLmFyZ3MsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2FudmFzRWxlbWVudEFsaWFzZXM6IFthbGlhc10sXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IChzdGVwIGFzIFRpY2tlcnNTdGVwPFRBcmdzPikuZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IChzdGVwIGFzIFRpY2tlcnNTdGVwPFRBcmdzPikucHJpb3JpdHksXG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXRpY2tlcikge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBUaWNrZXIgJHsoc3RlcCBhcyBUaWNrZXJzU3RlcDxUQXJncz4pLnRpY2tlcn0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGlja2VyTmFtZTogc3RyaW5nID0gdGlja2VyLmFsaWFzO1xuICAgICAgICBjb25zdCBpZCA9IHRpY2tlci5pZDtcbiAgICAgICAgdGlja2VyLmNhbnZhc0VsZW1lbnRBbGlhc2VzID0gW2FsaWFzXTtcbiAgICAgICAgbGV0IHRpY2tlckhpc3Rvcnk6IFRpY2tlckluZm88VEFyZ3M+ID0ge1xuICAgICAgICAgICAgY3JlYXRlZEJ5VGlja2V0U3RlcHM6IHtcbiAgICAgICAgICAgICAgICBjYW52YXNFbGVtZW50QWxpYXM6IGFsaWFzLFxuICAgICAgICAgICAgICAgIGlkOiBrZXksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGlja2VyOiB0aWNrZXIsXG4gICAgICAgIH07XG4gICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzW2lkXSA9IHRpY2tlckhpc3Rvcnk7XG4gICAgICAgIHRpY2tlckhpc3RvcnkudGlja2VyLnN0YXJ0KCk7XG4gICAgICAgIGlmICh0aWNrZXIuZHVyYXRpb24pIHtcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHRpY2tlclRpbWVvdXRJbmZvID0gQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNUaW1lb3V0c1t0aW1lb3V0LnRvU3RyaW5nKCldO1xuICAgICAgICAgICAgICAgIGlmICh0aWNrZXJUaW1lb3V0SW5mbykge1xuICAgICAgICAgICAgICAgICAgICB0aWNrZXJIaXN0b3J5LnRpY2tlci5jb21wbGV0ZSh7IGlnbm9yZVRpY2tlclN0ZXBzOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aWNrZXJUaW1lb3V0SW5mby5hbGlhc2VzLmZvckVhY2goKGFsaWFzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUaWNrZXJTdGVwKGFsaWFzLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5yZW1vdmVUaWNrZXJUaW1lb3V0SW5mbyh0aW1lb3V0KTtcbiAgICAgICAgICAgIH0sIHRpY2tlci5kdXJhdGlvbiAqIDEwMDApO1xuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5hZGRUaWNrZXJUaW1lb3V0SW5mbyhhbGlhcywgdGlja2VyTmFtZSwgdGltZW91dC50b1N0cmluZygpLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBuZXh0VGlja2VyU3RlcChhbGlhczogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXSAmJlxuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVthbGlhc11ba2V5XVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGxldCBzdGVwcyA9IENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdW2tleV07XG4gICAgICAgICAgICBpZiAoc3RlcHMuY3VycmVudFN0ZXBOdW1iZXIgKyAxIDwgc3RlcHMuc3RlcHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RlcHMuY3VycmVudFN0ZXBOdW1iZXIrKztcbiAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXVtrZXldID0gc3RlcHM7XG4gICAgICAgICAgICAgICAgdGhpcy5ydW5UaWNrZXJzU2VxdWVuY2UoYWxpYXMsIGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAga2V5ICYmXG4gICAgICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdICYmXG4gICAgICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdW2tleV1cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdW2tleV07XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzKS5mb3JFYWNoKChbaWQsIHRpY2tlcl0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aWNrZXIuY3JlYXRlZEJ5VGlja2V0U3RlcHM/LmNhbnZhc0VsZW1lbnRBbGlhcyA9PT0gYWxpYXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGlja2VyLmNyZWF0ZWRCeVRpY2tldFN0ZXBzLmlkID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUaWNrZXIoaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBvblRpY2tlckNvbXBsZXRlKFxuICAgICAgICB0aWNrZXJJZDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXI6IHN0cmluZ1tdO1xuICAgICAgICAgICAgdGlja2VyQWxpYXNUb1Jlc3VtZTogc3RyaW5nW107XG4gICAgICAgICAgICB0aWNrZXJJZFRvUmVzdW1lOiBzdHJpbmdbXTtcbiAgICAgICAgICAgIGlnbm9yZVRpY2tlclN0ZXBzPzogYm9vbGVhbjtcbiAgICAgICAgICAgIHN0b3BUaWNrZXI/OiBib29sZWFuO1xuICAgICAgICB9LFxuICAgICkge1xuICAgICAgICBjb25zdCB7IHN0b3BUaWNrZXIgPSB0cnVlLCBhbGlhc1RvUmVtb3ZlQWZ0ZXIsIHRpY2tlckFsaWFzVG9SZXN1bWUsIHRpY2tlcklkVG9SZXN1bWUgfSA9IG9wdGlvbnM7XG4gICAgICAgIGxldCBpbmZvID0gQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNbdGlja2VySWRdO1xuICAgICAgICBsZXQgaWdub3JlVGlja2VyU3RlcHMgPSBvcHRpb25zLmlnbm9yZVRpY2tlclN0ZXBzIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLnJlbW92ZShhbGlhc1RvUmVtb3ZlQWZ0ZXIpO1xuICAgICAgICB0aWNrZXJBbGlhc1RvUmVzdW1lLmZvckVhY2goKGFsaWFzKSA9PiB0aGlzLnJlc3VtZVRpY2tlcih7IGNhbnZhc0FsaWFzOiBhbGlhcyB9KSk7XG4gICAgICAgIHRoaXMucmVzdW1lVGlja2VyKHsgaWQ6IHRpY2tlcklkVG9SZXN1bWUgfSk7XG4gICAgICAgIGlmIChpbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVRpY2tlcih0aWNrZXJJZCwge1xuICAgICAgICAgICAgICAgIHN0b3BUaWNrZXI6IHN0b3BUaWNrZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghaWdub3JlVGlja2VyU3RlcHMgJiYgaW5mby50aWNrZXIuZHVyYXRpb24gPT0gdW5kZWZpbmVkICYmIGluZm8uY3JlYXRlZEJ5VGlja2V0U3RlcHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5leHRUaWNrZXJTdGVwKGluZm8uY3JlYXRlZEJ5VGlja2V0U3RlcHMuY2FudmFzRWxlbWVudEFsaWFzLCBpbmZvLmNyZWF0ZWRCeVRpY2tldFN0ZXBzLmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgdW5saW5rQ29tcG9uZW50RnJvbVRpY2tlcihcbiAgICAgICAgYWxpYXM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgICAgICB0aWNrZXI/OiB7IG5ldyAoYXJnczogYW55LCBkdXJhdGlvbj86IG51bWJlciwgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFkpOiBUaWNrZXI8YW55PiB9IHwgc3RyaW5nLFxuICAgICkge1xuICAgICAgICBpZiAodHlwZW9mIGFsaWFzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBhbGlhcyA9IFthbGlhc107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRpY2tlcikge1xuICAgICAgICAgICAgYWxpYXMuZm9yRWFjaCgoYWxpYXMpID0+IHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycykuZm9yRWFjaCgoW2lkLCBpbmZvXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUaWNrZXIoaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpY2tlci5jYW52YXNFbGVtZW50QWxpYXNlcyA9IGluZm8udGlja2VyLmNhbnZhc0VsZW1lbnRBbGlhc2VzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQpID0+IHQgIT09IGFsaWFzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVthbGlhc10pIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLnJlbW92ZVRpY2tlclRpbWVvdXRzQnlBbGlhcyhhbGlhcywgZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdGlja2VySWQ6IHN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiB0aWNrZXIgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRpY2tlcklkID0gdGlja2VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGlja2VySWQgPSB0aWNrZXIucHJvdG90eXBlLmlkO1xuICAgICAgICB9XG4gICAgICAgIGFsaWFzLmZvckVhY2goKGFsaWFzKSA9PiB7XG4gICAgICAgICAgICBpZiAoQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVthbGlhc10pIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXSkuZm9yRWFjaCgoW2lkLCB0aWNrZXJdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aWNrZXIuc3RlcHMuZmluZCgodCkgPT4gdHlwZW9mIHQgPT09IFwib2JqZWN0XCIgJiYgXCJ0aWNrZXJcIiBpbiB0ICYmIHQudGlja2VyID09PSB0aWNrZXJJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXVtpZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzKS5mb3JFYWNoKChbaWQsIGluZm9dKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5mby50aWNrZXIuYWxpYXMgPT09IHRpY2tlcklkKSB7XG4gICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNbaWRdLnRpY2tlci5jYW52YXNFbGVtZW50QWxpYXNlcyA9XG4gICAgICAgICAgICAgICAgICAgIGluZm8udGlja2VyLmNhbnZhc0VsZW1lbnRBbGlhc2VzLmZpbHRlcigoZSkgPT4gIWFsaWFzLmluY2x1ZGVzKGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHMpLmZvckVhY2goKFt0aW1lb3V0LCB0aWNrZXJUaW1lb3V0XSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRpY2tlclRpbWVvdXQudGlja2VyID09PSB0aWNrZXJJZCAmJiB0aWNrZXJUaW1lb3V0LmNhbkJlRGVsZXRlZEJlZm9yZUVuZCkge1xuICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHNbdGltZW91dF0uYWxpYXNlcyA9IHRpY2tlclRpbWVvdXQuYWxpYXNlcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICh0KSA9PiAhYWxpYXMuaW5jbHVkZXModCksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVtb3ZlVGlja2Vyc1dpdGhvdXRBc3NvY2lhdGVkQ2FudmFzRWxlbWVudCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYWxsIHRpY2tlcnMgdGhhdCBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnkgZXhpc3RpbmcgY2FudmFzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVUaWNrZXJzV2l0aG91dEFzc29jaWF0ZWRDYW52YXNFbGVtZW50KCkge1xuICAgICAgICBPYmplY3QuZW50cmllcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycykuZm9yRWFjaCgoW2lkLCBpbmZvXSkgPT4ge1xuICAgICAgICAgICAgaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMgPSBpbmZvLnRpY2tlci5jYW52YXNFbGVtZW50QWxpYXNlcy5maWx0ZXIoKGUpID0+IHRoaXMuZmluZChlKSk7XG4gICAgICAgICAgICBpZiAoaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaW5mby50aWNrZXIuY29tcGxldGUoeyBpZ25vcmVUaWNrZXJTdGVwczogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2UpLmZvckVhY2goKFthbGlhcywgdGlja2VyXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRpY2tlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNUaW1lb3V0cykuZm9yRWFjaCgoW3RpbWVvdXQsIHsgYWxpYXNlczogYWxpYXNlcyB9XSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFsaWFzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5yZW1vdmVUaWNrZXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHVibGljIHJlbW92ZUFsbFRpY2tlcnMoKSB7XG4gICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2UgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXMoQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnMpLmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVRpY2tlcihpZCk7XG4gICAgICAgIH0pO1xuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycyA9IHt9O1xuICAgICAgICBmb3IgKGxldCB0aW1lb3V0IGluIENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHMpIHtcbiAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMucmVtb3ZlVGlja2VyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgfVxuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl90aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZCA9IHsgdGlrZXJzSWRzOiBbXSwgc3RlcEFsaWFzOiBbXSB9O1xuICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl90aWNrZXJzT25QYXVzZSA9IHt9O1xuICAgIH1cbiAgICByZW1vdmVUaWNrZXIoXG4gICAgICAgIHRpY2tlcklkOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgc3RvcFRpY2tlcj86IGJvb2xlYW47XG4gICAgICAgIH0gPSB7IHN0b3BUaWNrZXI6IHRydWUgfSxcbiAgICApIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aWNrZXJJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGlja2VySWQgPSBbdGlja2VySWRdO1xuICAgICAgICB9XG4gICAgICAgIHRpY2tlcklkLmZvckVhY2goKHRpY2tlcklkKSA9PiB7XG4gICAgICAgICAgICBsZXQgaW5mbyA9IENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzW3RpY2tlcklkXTtcbiAgICAgICAgICAgIGlmIChpbmZvKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zdG9wVGlja2VyICYmIGluZm8udGlja2VyLnN0b3AoKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNbdGlja2VySWRdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwYXVzZVRpY2tlcihcbiAgICAgICAgZmlsdGVyczpcbiAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICAgY2FudmFzQWxpYXM6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgIHRpY2tlcklkc0V4Y2x1ZGVkPzogc3RyaW5nW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICAgaWQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgICAgICAgICB9LFxuICAgICkge1xuICAgICAgICBsZXQgaWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoXCJjYW52YXNBbGlhc1wiIGluIGZpbHRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY2FudmFzQWxpYXMsIHRpY2tlcklkc0V4Y2x1ZGVkID0gW10gfSA9IGZpbHRlcnM7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycykuZm9yRWFjaCgoW2lkLCBpbmZvXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMuaW5jbHVkZXMoY2FudmFzQWxpYXMpICYmXG4gICAgICAgICAgICAgICAgICAgICF0aWNrZXJJZHNFeGNsdWRlZC5pbmNsdWRlcyhpbmZvLnRpY2tlci5hbGlhcykgJiZcbiAgICAgICAgICAgICAgICAgICAgaW5mby50aWNrZXIucGF1c2VkID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBpbmZvLnRpY2tlci5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXCJpZFwiIGluIGZpbHRlcnMpIHtcbiAgICAgICAgICAgIGxldCB7IGlkIH0gPSBmaWx0ZXJzO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlkID0gW2lkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFsuLi5uZXcgU2V0KGlkKV0uZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzW2lkXTtcbiAgICAgICAgICAgICAgICBpZiAoaW5mbykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby50aWNrZXIucGF1c2VkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5mby50aWNrZXIucGF1c2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVGlja2VyIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlkcztcbiAgICB9XG4gICAgcmVzdW1lVGlja2VyKFxuICAgICAgICBmaWx0ZXJzOlxuICAgICAgICAgICAgfCB7XG4gICAgICAgICAgICAgICAgICBjYW52YXNBbGlhczogc3RyaW5nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAgIGlkOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgICAgICAgfSxcbiAgICApIHtcbiAgICAgICAgaWYgKFwiY2FudmFzQWxpYXNcIiBpbiBmaWx0ZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNhbnZhc0FsaWFzIH0gPSBmaWx0ZXJzO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycykuZm9yRWFjaCgoaW5mbykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbmZvLnRpY2tlci5jYW52YXNFbGVtZW50QWxpYXNlcy5pbmNsdWRlcyhjYW52YXNBbGlhcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5mby50aWNrZXIucGxheSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gVE9ETzogdG8gcmVtb3ZlIGluIHRoZSBmdXR1cmVcbiAgICAgICAgICAgIGRlbGV0ZSBDYW52YXNNYW5hZ2VyU3RhdGljLl90aWNrZXJzT25QYXVzZVtjYW52YXNBbGlhc107XG4gICAgICAgIH0gZWxzZSBpZiAoXCJpZFwiIGluIGZpbHRlcnMpIHtcbiAgICAgICAgICAgIGxldCB7IGlkIH0gPSBmaWx0ZXJzO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlkID0gW2lkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFsuLi5uZXcgU2V0KGlkKV0uZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzW2lkXTtcbiAgICAgICAgICAgICAgICBpZiAoaW5mbykge1xuICAgICAgICAgICAgICAgICAgICBpbmZvLnRpY2tlci5wbGF5KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBUaWNrZXIgd2l0aCBpZCAke2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc1RpY2tlclBhdXNlZChhbGlhczogc3RyaW5nLCB0aWNrZXJJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgdGlja2Vyc09uUGF1c2VEYXRhID0gQ2FudmFzTWFuYWdlclN0YXRpYy5fdGlja2Vyc09uUGF1c2VbYWxpYXNdO1xuICAgICAgICBpZiAodGlja2Vyc09uUGF1c2VEYXRhKSB7XG4gICAgICAgICAgICBpZiAodGlja2VySWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoXCJ0aWNrZXJJZHNJbmNsdWRlZFwiIGluIHRpY2tlcnNPblBhdXNlRGF0YSAmJiB0aWNrZXJzT25QYXVzZURhdGEudGlja2VySWRzSW5jbHVkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRpY2tlcnNPblBhdXNlRGF0YS50aWNrZXJJZHNJbmNsdWRlZC5pbmNsdWRlcyh0aWNrZXJJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcInRpY2tlcklkc0V4Y2x1ZGVkXCIgaW4gdGlja2Vyc09uUGF1c2VEYXRhICYmIHRpY2tlcnNPblBhdXNlRGF0YS50aWNrZXJJZHNFeGNsdWRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXRpY2tlcnNPblBhdXNlRGF0YS50aWNrZXJJZHNFeGNsdWRlZC5pbmNsdWRlcyh0aWNrZXJJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cmFuc2ZlclRpY2tlcnMob2xkQWxpYXM6IHN0cmluZywgbmV3QWxpYXM6IHN0cmluZywgbW9kZTogXCJtb3ZlXCIgfCBcImR1cGxpY2F0ZVwiID0gXCJtb3ZlXCIpIHtcbiAgICAgICAgaWYgKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2Vbb2xkQWxpYXNdKSB7XG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gXCJtb3ZlXCIpIHtcbiAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW25ld0FsaWFzXSA9IGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW29sZEFsaWFzXSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSBcImR1cGxpY2F0ZVwiKSB7XG4gICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVtuZXdBbGlhc10gPSBjcmVhdGVFeHBvcnRhYmxlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVtvbGRBbGlhc10sXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZW50cmllcyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2VycykuZm9yRWFjaCgoW2lkLCBpbmZvXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGluZm8uY3JlYXRlZEJ5VGlja2V0U3RlcHM/LmNhbnZhc0VsZW1lbnRBbGlhcyA9PT0gb2xkQWxpYXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZVRpY2tlcihpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMuaW5jbHVkZXMob2xkQWxpYXMpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRpY2tlciA9IFJlZ2lzdGVyZWRUaWNrZXJzLmdldEluc3RhbmNlKFxuICAgICAgICAgICAgICAgICAgICBpbmZvLnRpY2tlci5hbGlhcyxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoaW5mby50aWNrZXIuYXJncyksXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBpbmZvLnRpY2tlci5kdXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBpbmZvLnRpY2tlci5wcmlvcml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnRBbGlhc2VzOiBbbmV3QWxpYXNdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHRpY2tlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRpY2tlcihuZXdBbGlhcywgdGlja2VyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8udGlja2VyLnBhdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGlja2VyLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFRpY2tlciAke2luZm8udGlja2VyLmFsaWFzfSBub3QgZm91bmRgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gXCJtb3ZlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5mby50aWNrZXIuY2FudmFzRWxlbWVudEFsaWFzZXMgPSBpbmZvLnRpY2tlci5jYW52YXNFbGVtZW50QWxpYXNlcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAoYWxpYXMpID0+IGFsaWFzICE9PSBvbGRBbGlhcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5mby50aWNrZXIuYXJncy5oYXNPd25Qcm9wZXJ0eShhbGlhc1RvUmVtb3ZlQWZ0ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBhbGlhc1RvUmVtb3ZlQWZ0ZXI6IHN0cmluZyB8IHN0cmluZ1tdID0gaW5mby50aWNrZXIuYXJncy5hbGlhc1RvUmVtb3ZlQWZ0ZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYWxpYXNUb1JlbW92ZUFmdGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIgPSBbYWxpYXNUb1JlbW92ZUFmdGVyXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbGlhc1RvUmVtb3ZlQWZ0ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gXCJtb3ZlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpY2tlci5hcmdzLmFsaWFzVG9SZW1vdmVBZnRlciA9IGFsaWFzVG9SZW1vdmVBZnRlci5tYXAoKHQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IG9sZEFsaWFzID8gbmV3QWxpYXMgOiB0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiZHVwbGljYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxpYXNUb1JlbW92ZUFmdGVyLmZpbmQoKHQpID0+IHQgPT09IG9sZEFsaWFzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpY2tlci5hcmdzLmFsaWFzVG9SZW1vdmVBZnRlciA9IFsuLi5hbGlhc1RvUmVtb3ZlQWZ0ZXIsIG5ld0FsaWFzXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QudmFsdWVzKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzVGltZW91dHMpLmZvckVhY2goKHRpY2tlclRpbWVvdXQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aWNrZXJUaW1lb3V0LmFsaWFzZXMuaW5jbHVkZXMob2xkQWxpYXMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09IFwibW92ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRpY2tlclRpbWVvdXQuYWxpYXNlcyA9IHRpY2tlclRpbWVvdXQuYWxpYXNlcy5tYXAoKHQpID0+ICh0ID09PSBvbGRBbGlhcyA/IG5ld0FsaWFzIDogdCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gXCJkdXBsaWNhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGlja2VyVGltZW91dC5hbGlhc2VzLmZpbmQoKHQpID0+IHQgPT09IG9sZEFsaWFzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGlja2VyVGltZW91dC5hbGlhc2VzLnB1c2gobmV3QWxpYXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbbmV3QWxpYXNdKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW25ld0FsaWFzXSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ydW5UaWNrZXJzU2VxdWVuY2UobmV3QWxpYXMsIGtleSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kZSA9PT0gXCJkdXBsaWNhdGVcIiAmJiBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW29sZEFsaWFzXSkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoQ2FudmFzTWFuYWdlclN0YXRpYy5fY3VycmVudFRpY2tlcnNTZXF1ZW5jZVtvbGRBbGlhc10pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucnVuVGlja2Vyc1NlcXVlbmNlKG9sZEFsaWFzLCBrZXkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29tcGxldGVUaWNrZXJPblN0ZXBFbmQoc3RlcDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGlkIG9mIHRoZSBzdGVwLlxuICAgICAgICAgKi9cbiAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGlzIGEgc2VxdWVuY2Ugb2YgdGlja2VycywgdGhlIGFsaWFzIG9mIHRoZSBzZXF1ZW5jZSBvZiB0aWNrZXJzLlxuICAgICAgICAgKi9cbiAgICAgICAgYWxpYXM/OiBzdHJpbmc7XG4gICAgfSkge1xuICAgICAgICBpZiAoc3RlcC5hbGlhcykge1xuICAgICAgICAgICAgQ2FudmFzTWFuYWdlclN0YXRpYy5fdGlja2Vyc1RvQ29tcGxldGVPblN0ZXBFbmQuc3RlcEFsaWFzLnB1c2goeyBpZDogc3RlcC5pZCwgYWxpYXM6IHN0ZXAuYWxpYXMgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl90aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZC50aWtlcnNJZHMucHVzaCh7IGlkOiBzdGVwLmlkIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgZm9yY2VDb21wbGV0aW9uT2ZUaWNrZXIoaWQ6IHN0cmluZywgYWxpYXM/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFhbGlhcykge1xuICAgICAgICAgICAgbGV0IGluZm8gPSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1tpZF07XG4gICAgICAgICAgICBpZiAoaW5mbykge1xuICAgICAgICAgICAgICAgIGF3YWl0IGluZm8udGlja2VyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgdGlja2VycyA9IENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2VbYWxpYXNdO1xuICAgICAgICAgICAgaWYgKHRpY2tlcnMgJiYgdGlja2Vyc1tpZF0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGlja2Vyc1tpZF0uc3RlcHMuaW5jbHVkZXMoUmVwZWF0KSkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgVGhlIHRpY2tlciBhbGlhczogJHthbGlhc30gaWQ6ICR7aWR9IGNvbnRhaW5zIGEgUmVwZWF0VHlwZSwgc28gaXQgY2FuJ3QgYmUgZm9yY2VkIHRvIGNvbXBsZXRlYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tlcnNbaWRdLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gdGlja2Vyc1tpZF0uc3RlcHMubWFwKChzdGVwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHN0ZXAgPT09IFwib2JqZWN0XCIgJiYgXCJ0aWNrZXJcIiBpbiBzdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRpY2tlciA9IFJlZ2lzdGVyZWRUaWNrZXJzLmdldEluc3RhbmNlPGFueT4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGVwIGFzIFRpY2tlcnNTdGVwPGFueT4pLnRpY2tlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0ZXAgYXMgVGlja2Vyc1N0ZXA8YW55PikuYXJncyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IChzdGVwIGFzIFRpY2tlcnNTdGVwPGFueT4pLmR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzRWxlbWVudEFsaWFzZXM6IFthbGlhc10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogKHN0ZXAgYXMgVGlja2Vyc1N0ZXA8YW55PikucHJpb3JpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGlja2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aWNrZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYW5pbWF0ZTxUIGV4dGVuZHMgQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+PihcbiAgICAgICAgY29tcG9uZW50czogVCB8IHN0cmluZyB8IChzdHJpbmcgfCBUKVtdLFxuICAgICAgICBrZXlmcmFtZXM6IEtleWZyYW1lc1R5cGU8VD4sXG4gICAgICAgIG9wdGlvbnM/OiBBbmltYXRpb25PcHRpb25zLFxuICAgICAgICBwcmlvcml0eT86IFVQREFURV9QUklPUklUWSxcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgYW5pbWF0ZTxUIGV4dGVuZHMgQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+PihcbiAgICAgICAgY29tcG9uZW50czogVCB8IHN0cmluZyxcbiAgICAgICAgc2VxdWVuY2U6IChPYmplY3RTZWdtZW50PFQ+IHwgT2JqZWN0U2VnbWVudFdpdGhUcmFuc2l0aW9uPFQ+KVtdLFxuICAgICAgICBvcHRpb25zPzogU2VxdWVuY2VPcHRpb25zLFxuICAgICAgICBwcmlvcml0eT86IFVQREFURV9QUklPUklUWSxcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgYW5pbWF0ZTxUIGV4dGVuZHMgQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+PihcbiAgICAgICAgY29tcG9uZW50czogVCB8IHN0cmluZyB8IChzdHJpbmcgfCBUKVtdLFxuICAgICAgICBrZXlmcmFtZXM6IEtleWZyYW1lc1R5cGU8VD4gfCAoT2JqZWN0U2VnbWVudDxUPiB8IE9iamVjdFNlZ21lbnRXaXRoVHJhbnNpdGlvbjxUPilbXSxcbiAgICAgICAgb3B0aW9ucz86IEFuaW1hdGlvbk9wdGlvbnMgfCBTZXF1ZW5jZU9wdGlvbnMsXG4gICAgICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBHYW1lVW5pZmllci5hbmltYXRlKGNvbXBvbmVudHMsIGtleWZyYW1lcywgb3B0aW9ucywgcHJpb3JpdHkpO1xuICAgIH1cblxuICAgIC8qIExheWVycyBNZXRob2RzICovXG5cbiAgICBhZGRMYXllcihsYWJlbDogc3RyaW5nLCBsYXllcjogUGl4aUNvbnRhaW5lcikge1xuICAgICAgICBpZiAobGFiZWwgPT09IENBTlZBU19BUFBfR0FNRV9MQVlFUl9BTElBUykge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBUaGUgYWxpYXMgJHtDQU5WQVNfQVBQX0dBTUVfTEFZRVJfQUxJQVN9IGlzIHJlc2VydmVkYCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGF5ZXIubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgcmV0dXJuIENhbnZhc01hbmFnZXJTdGF0aWMuYXBwLnN0YWdlLmFkZENoaWxkKGxheWVyKTtcbiAgICB9XG5cbiAgICBnZXRMYXllcihsYWJlbDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBDYW52YXNNYW5hZ2VyU3RhdGljLmFwcC5zdGFnZS5nZXRDaGlsZEJ5TGFiZWwobGFiZWwpO1xuICAgIH1cblxuICAgIHJlbW92ZUxheWVyKGxhYmVsOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGNoaWxkID0gQ2FudmFzTWFuYWdlclN0YXRpYy5hcHAuc3RhZ2UuZ2V0Q2hpbGRCeUxhYmVsKGxhYmVsKTtcbiAgICAgICAgaWYgKGNoaWxkKSB7XG4gICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLmFwcC5zdGFnZS5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRIdG1sTGF5ZXIoaWQ6IHN0cmluZywgZWxlbWVudDogSFRNTEVsZW1lbnQsIHN0eWxlPzogUGljazxDU1NTdHlsZURlY2xhcmF0aW9uLCBcInBvc2l0aW9uXCIgfCBcInBvaW50ZXJFdmVudHNcIj4pIHtcbiAgICAgICAgcmV0dXJuIENhbnZhc01hbmFnZXJTdGF0aWMuYWRkSHRtbExheWVyKGlkLCBlbGVtZW50LCBzdHlsZSk7XG4gICAgfVxuICAgIHJlbW92ZUh0bWxMYXllcihpZDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBDYW52YXNNYW5hZ2VyU3RhdGljLnJlbW92ZUh0bWxMYXllcihpZCk7XG4gICAgfVxuICAgIGdldEh0bWxMYXllcihpZDogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQ2FudmFzTWFuYWdlclN0YXRpYy5nZXRIdG1sTGF5ZXIoaWQpO1xuICAgIH1cblxuICAgIC8qIE90aGVyIE1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGV4dHJhY3RJbWFnZSgpIHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCB0aGlzLmFwcC5yZW5kZXJlci5leHRyYWN0LmltYWdlKHRoaXMuYXBwLnN0YWdlKTtcbiAgICAgICAgcmV0dXJuIGltYWdlLnNyYztcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBbGxUaWNrZXJzKCk7XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsKCk7XG4gICAgfVxuXG4gICAgLyogRXhwb3J0IGFuZCBJbXBvcnQgTWV0aG9kcyAqL1xuXG4gICAgcHVibGljIGV4cG9ydCgpOiBDYW52YXNHYW1lU3RhdGUge1xuICAgICAgICBsZXQgY3VycmVudEVsZW1lbnRzOiB7IFthbGlhczogc3RyaW5nXTogQ2FudmFzQmFzZUl0ZW1NZW1vcnkgfSA9IHt9O1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVudHNbY2hpbGQubGFiZWxdID0gZXhwb3J0Q2FudmFzRWxlbWVudChjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGlja2VyczogY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoQ2FudmFzTWFuYWdlclN0YXRpYy5jdXJyZW50VGlja2Vyc1dpdGhvdXRDcmVhdGVkQnlTdGVwcyksXG4gICAgICAgICAgICB0aWNrZXJzU3RlcHM6IGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50KENhbnZhc01hbmFnZXJTdGF0aWMuX2N1cnJlbnRUaWNrZXJzU2VxdWVuY2UpLFxuICAgICAgICAgICAgZWxlbWVudHM6IGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50KGN1cnJlbnRFbGVtZW50cyksXG4gICAgICAgICAgICBzdGFnZTogY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoZ2V0TWVtb3J5Q29udGFpbmVyKHRoaXMuZ2FtZUxheWVyKSksXG4gICAgICAgICAgICBlbGVtZW50QWxpYXNlc09yZGVyOiBjcmVhdGVFeHBvcnRhYmxlRWxlbWVudChDYW52YXNNYW5hZ2VyU3RhdGljLmNoaWxkcmVuQWxpYXNlc09yZGVyKSxcbiAgICAgICAgICAgIHRpY2tlcnNPblBhdXNlOiBjcmVhdGVFeHBvcnRhYmxlRWxlbWVudChDYW52YXNNYW5hZ2VyU3RhdGljLl90aWNrZXJzT25QYXVzZSksXG4gICAgICAgICAgICB0aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZDogY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoQ2FudmFzTWFuYWdlclN0YXRpYy5fdGlja2Vyc1RvQ29tcGxldGVPblN0ZXBFbmQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBwdWJsaWMgYXN5bmMgcmVzdG9yZShkYXRhOiBvYmplY3QpIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoXCJlbGVtZW50c1wiKSAmJiBkYXRhLmhhc093blByb3BlcnR5KFwiZWxlbWVudEFsaWFzZXNPcmRlclwiKSkge1xuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50QWxpYXNlc09yZGVyID0gKGRhdGEgYXMgQ2FudmFzR2FtZVN0YXRlKVtcImVsZW1lbnRBbGlhc2VzT3JkZXJcIl07XG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRzOiB7XG4gICAgICAgICAgICAgICAgICAgIFthbGlhczogc3RyaW5nXTogQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+O1xuICAgICAgICAgICAgICAgIH0gPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKChkYXRhIGFzIENhbnZhc0dhbWVTdGF0ZSlbXCJlbGVtZW50c1wiXSkubWFwKGFzeW5jIChbYWxpYXMsIGVsZW1lbnRdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzW2FsaWFzXSA9IGF3YWl0IGltcG9ydENhbnZhc0VsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRBbGlhc2VzT3JkZXIuZm9yRWFjaCgoYWxpYXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSBlbGVtZW50c1thbGlhc107XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgJiYgdGhpcy5hZGQoYWxpYXMsIGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJUaGUgZGF0YSBkb2VzIG5vdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIGVsZW1lbnRBbGlhc2VzT3JkZXIgYW5kIGVsZW1lbnRzXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwic3RhZ2VcIikgJiYgZGF0YS5oYXNPd25Qcm9wZXJ0eShcInN0YWdlXCIpKSB7XG4gICAgICAgICAgICAgICAgc2V0TWVtb3J5Q29udGFpbmVyKHRoaXMuZ2FtZUxheWVyLCAoZGF0YSBhcyBDYW52YXNHYW1lU3RhdGUpW1wic3RhZ2VcIl0sIHsgaWdub3JlU2NhbGU6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIlRoZSBkYXRhIGRvZXMgbm90IGhhdmUgdGhlIHByb3BlcnRpZXMgc3RhZ2VcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShcInRpY2tlcnNcIikpIHtcbiAgICAgICAgICAgICAgICBsZXQgdGlja2VycyA9IChkYXRhIGFzIENhbnZhc0dhbWVTdGF0ZSlbXCJ0aWNrZXJzXCJdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRpY2tlcnMpLmZvckVhY2goKFtvbGRJZCwgdF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWFzZXM6IHN0cmluZ1tdID0gdC5jYW52YXNFbGVtZW50QWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsaWFzZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGlja2VyID0gUmVnaXN0ZXJlZFRpY2tlcnMuZ2V0SW5zdGFuY2UodC5pZCwgdC5hcmdzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IHQuZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IHQucHJpb3JpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG9sZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnRBbGlhc2VzOiBhbGlhc2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGlja2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlja2VyLmNhbnZhc0VsZW1lbnRBbGlhc2VzID0gYWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRpY2tlcihhbGlhc2VzLCB0aWNrZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGl0IHNob3VsZCBiZSBwYXVzZWQgZXZlbiBiZWZvcmUgc3RhcnRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBBbGwgdGlja2V0cyBzaG91bGQgYmUgc3RhcnRlZCBhdCB0aGUgc2FtZSB0aW1lIGFuZCBub3Qgd2FpdCBmb3IgdGhlIHByZXZpb3VzIG9uZSB0byBpbml0aWFsaXplLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0LnBhdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWNrZXIucGF1c2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVGlja2VyICR7dC5pZH0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwidGlja2Vyc1N0ZXBzXCIpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRpY2tlcnNTdGVwcyA9IChkYXRhIGFzIENhbnZhc0dhbWVTdGF0ZSlbXCJ0aWNrZXJzU3RlcHNcIl07XG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModGlja2Vyc1N0ZXBzKS5mb3JFYWNoKChbYWxpYXMsIHN0ZXBzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1NlcXVlbmNlW2FsaWFzXSA9IHN0ZXBzO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzdGVwcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1blRpY2tlcnNTZXF1ZW5jZShhbGlhcywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShcInRpY2tlcnNPblBhdXNlXCIpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRpY2tlcnNPblBhdXNlID0gKGRhdGEgYXMgQ2FudmFzR2FtZVN0YXRlKVtcInRpY2tlcnNPblBhdXNlXCJdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRpY2tlcnNPblBhdXNlKS5mb3JFYWNoKChhbGlhcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHRpY2tlcnNPblBhdXNlW2FsaWFzXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFwidGlja2VySWRzRXhjbHVkZWRcIiBpbiBkYXRhICYmIGRhdGEudGlja2VySWRzRXhjbHVkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tlcnNPblBhdXNlW2FsaWFzXS50aWNrZXJJZHNFeGNsdWRlZCA9IGRhdGEudGlja2VySWRzRXhjbHVkZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKFwidGlja2VySWRzSW5jbHVkZWRcIiBpbiBkYXRhICYmIGRhdGEudGlja2VySWRzSW5jbHVkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tlcnNPblBhdXNlW2FsaWFzXS50aWNrZXJJZHNJbmNsdWRlZCA9IGRhdGEudGlja2VySWRzSW5jbHVkZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBDYW52YXNNYW5hZ2VyU3RhdGljLl90aWNrZXJzT25QYXVzZSA9IHRpY2tlcnNPblBhdXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoXCJ0aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZFwiKSkge1xuICAgICAgICAgICAgICAgIGxldCB0aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZCA9IChkYXRhIGFzIENhbnZhc0dhbWVTdGF0ZSlbXCJ0aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZFwiXTtcbiAgICAgICAgICAgICAgICBsZXQgdGlrZXJzSWRzID0gdGlja2Vyc1RvQ29tcGxldGVPblN0ZXBFbmQudGlrZXJzSWRzO1xuICAgICAgICAgICAgICAgIGxldCBzdGVwQWxpYXMgPSB0aWNrZXJzVG9Db21wbGV0ZU9uU3RlcEVuZC5zdGVwQWxpYXMubWFwKCh0KSA9PiAoeyBpZDogdC5pZCwgYWxpYXM6IHQuYWxpYXMgfSkpO1xuICAgICAgICAgICAgICAgIENhbnZhc01hbmFnZXJTdGF0aWMuX3RpY2tlcnNUb0NvbXBsZXRlT25TdGVwRW5kID0geyB0aWtlcnNJZHMsIHN0ZXBBbGlhcyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJFcnJvciBpbXBvcnRpbmcgZGF0YVwiLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgUmVjdGFuZ2xlIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhbnZhc1V0aWxpdGllc1N0YXRpYyB7XG4gICAgc3RhdGljIGluaXQob3B0aW9uczogeyBnZXRTY3JlZW46ICgpID0+IFJlY3RhbmdsZSB9KSB7XG4gICAgICAgIENhbnZhc1V0aWxpdGllc1N0YXRpYy5fZ2V0U2NyZWVuID0gb3B0aW9ucy5nZXRTY3JlZW47XG4gICAgfVxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRTY3JlZW46ICgpID0+IFJlY3RhbmdsZTtcbiAgICBzdGF0aWMgZ2V0IHNjcmVlbigpIHtcbiAgICAgICAgcmV0dXJuIENhbnZhc1V0aWxpdGllc1N0YXRpYy5fZ2V0U2NyZWVuKCk7XG4gICAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBUZXh0dXJlIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFBJWEkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi91dGlscy9sb2ctdXRpbGl0eVwiO1xuXG4vKipcbiAqIEdldCBhIHRleHR1cmUgZnJvbSBhIHVybC5cbiAqIEBwYXJhbSB0ZXh0dXJlQWxpYXMgaXMgdGhlIHVybCBvZiB0aGUgZmlsZS5cbiAqIEByZXR1cm5zIHRoZSB0ZXh0dXJlIG9mIHRoZSBpbWFnZSBvciB2aWRlbywgb3IgYSB0ZXh0IHdpdGggdGhlIGVycm9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VGV4dHVyZSh0ZXh0dXJlQWxpYXM/OiBzdHJpbmcpOiBQcm9taXNlPFRleHR1cmUgfCB2b2lkPiB7XG4gICAgaWYgKHRleHR1cmVBbGlhcyA9PT0gXCJFTVBUWVwiKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0ZXh0dXJlQWxpYXMpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKFwiVGV4dHVyZSBub3QgZm91bmRcIiwgdGV4dHVyZUFsaWFzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoUElYSS5Bc3NldHMuY2FjaGUuaGFzKHRleHR1cmVBbGlhcykpIHtcbiAgICAgICAgbGV0IHRleHR1cmUgPSBQSVhJLkFzc2V0cy5nZXQodGV4dHVyZUFsaWFzKTtcbiAgICAgICAgaWYgKHRleHR1cmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBQSVhJLkFzc2V0cy5sb2FkKHRleHR1cmVBbGlhcylcbiAgICAgICAgLnRoZW4oKHRleHR1cmUpID0+IHtcbiAgICAgICAgICAgIGlmICghdGV4dHVyZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIlRleHR1cmUgbm90IGZvdW5kXCIsIHRleHR1cmVBbGlhcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgdGV4dHVyZSBub3QgaXMgYSBUZXh0dXJlLCB0aGVuIGl0IGlzIGEgVGV4dHVyZVJlc291cmNlXG4gICAgICAgICAgICBpZiAoISh0ZXh0dXJlIGluc3RhbmNlb2YgUElYSS5UZXh0dXJlKSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkZpbGUgbm90IGlzIGEgZmlsZVwiLCB0ZXh0dXJlQWxpYXMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRleHR1cmU7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiRXJyb3IgbG9hZGluZyBmaWxlXCIsIGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9KTtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ29udGFpbmVyIGFzIFBpeGlDb250YWluZXIgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCBDYW52YXNVdGlsaXRpZXNTdGF0aWMgZnJvbSBcIi4uL0NhbnZhc1V0aWxpdGllc1N0YXRpY1wiO1xuXG5leHBvcnQgbmFtZXNwYWNlIENhbnZhc1Byb3BlcnR5VXRpbGl0eSB7XG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgdHlwZTogXCJ3aWR0aFwiIHwgXCJoZWlnaHRcIixcbiAgICAgICAgYWxpZ246IG51bWJlcixcbiAgICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgICAgcGl2b3Q6IG51bWJlcixcbiAgICAgICAgbmVnYXRpdmVTY2FsZTogYm9vbGVhbixcbiAgICAgICAgYW5jaG9yOiBudW1iZXIgPSAwLFxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGlmIChuZWdhdGl2ZVNjYWxlKSB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJ3aWR0aFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFsaWduICogKENhbnZhc1V0aWxpdGllc1N0YXRpYy5zY3JlZW4ud2lkdGggLSB2YWx1ZSkgKyB2YWx1ZSAtIHBpdm90IC0gYW5jaG9yICogdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbGlnbiAqIChDYW52YXNVdGlsaXRpZXNTdGF0aWMuc2NyZWVuLmhlaWdodCAtIHZhbHVlKSArIHZhbHVlIC0gcGl2b3QgLSBhbmNob3IgKiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxpZ24gKiAoQ2FudmFzVXRpbGl0aWVzU3RhdGljLnNjcmVlbi53aWR0aCAtIHZhbHVlKSArIHBpdm90ICsgYW5jaG9yICogdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbGlnbiAqIChDYW52YXNVdGlsaXRpZXNTdGF0aWMuc2NyZWVuLmhlaWdodCAtIHZhbHVlKSArIHBpdm90ICsgYW5jaG9yICogdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQWxpZ25CeVBvc2l0aW9uKFxuICAgICAgICB0eXBlOiBcIndpZHRoXCIgfCBcImhlaWdodFwiLFxuICAgICAgICBwb3NpdGlvbjogbnVtYmVyLFxuICAgICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgICBwaXZvdDogbnVtYmVyLFxuICAgICAgICBuZWdhdGl2ZVNjYWxlOiBib29sZWFuLFxuICAgICAgICBhbmNob3I6IG51bWJlciA9IDAsXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKG5lZ2F0aXZlU2NhbGUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHBvc2l0aW9uIC0gdmFsdWUgKyBwaXZvdCArIGFuY2hvciAqIHZhbHVlKSAvIChDYW52YXNVdGlsaXRpZXNTdGF0aWMuc2NyZWVuLndpZHRoIC0gdmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHBvc2l0aW9uIC0gdmFsdWUgKyBwaXZvdCArIGFuY2hvciAqIHZhbHVlKSAvIChDYW52YXNVdGlsaXRpZXNTdGF0aWMuc2NyZWVuLmhlaWdodCAtIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHBvc2l0aW9uIC0gcGl2b3QgLSBhbmNob3IgKiB2YWx1ZSkgLyAoQ2FudmFzVXRpbGl0aWVzU3RhdGljLnNjcmVlbi53aWR0aCAtIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChwb3NpdGlvbiAtIHBpdm90IC0gYW5jaG9yICogdmFsdWUpIC8gKENhbnZhc1V0aWxpdGllc1N0YXRpYy5zY3JlZW4uaGVpZ2h0IC0gdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24odHlwZTogXCJ3aWR0aFwiIHwgXCJoZWlnaHRcIiwgcGVyY2VudGFnZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwZXJjZW50YWdlICogQ2FudmFzVXRpbGl0aWVzU3RhdGljLnNjcmVlbi53aWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwZXJjZW50YWdlICogQ2FudmFzVXRpbGl0aWVzU3RhdGljLnNjcmVlbi5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbih0eXBlOiBcIndpZHRoXCIgfCBcImhlaWdodFwiLCBwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbiAvIENhbnZhc1V0aWxpdGllc1N0YXRpYy5zY3JlZW4ud2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcG9zaXRpb24gLyBDYW52YXNVdGlsaXRpZXNTdGF0aWMuc2NyZWVuLmhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBnZXRTdXBlclBvaW50KHBvaW50OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sIGFuZ2xlOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0ge1xuICAgICAgICBhbmdsZSA9IGFuZ2xlICUgMzYwO1xuICAgICAgICBpZiAoYW5nbGUgPCAwKSB7XG4gICAgICAgICAgICBhbmdsZSArPSAzNjA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFuZ2xlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB4OiBwb2ludC54LCB5OiBwb2ludC55IH07XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPT09IDkwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB4OiAtcG9pbnQueSwgeTogcG9pbnQueCB9O1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID09PSAxODApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHg6IC1wb2ludC54LCB5OiAtcG9pbnQueSB9O1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID09PSAyNzApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHg6IHBvaW50LnksIHk6IC1wb2ludC54IH07XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPiAwICYmIGFuZ2xlIDwgOTApIHtcbiAgICAgICAgICAgIGxldCBhbmdsZVJhZCA9IChhbmdsZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgICAgICAgICAgbGV0IGNvcyA9IE1hdGguY29zKGFuZ2xlUmFkKTtcbiAgICAgICAgICAgIGxldCBzaW4gPSBNYXRoLnNpbihhbmdsZVJhZCk7XG4gICAgICAgICAgICBsZXQgeCA9IHBvaW50LnggKiBjb3MgLSBwb2ludC55ICogc2luO1xuICAgICAgICAgICAgbGV0IHkgPSBwb2ludC54ICogc2luICsgcG9pbnQueSAqIGNvcztcbiAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgc2lnbiBvZiB4IG1hdGNoZXMgcG9pbnQueCwgYW5kIHRoZSBzaWduIG9mIHkgbWF0Y2hlcyBwb2ludC55XG4gICAgICAgICAgICBpZiAocG9pbnQueCAhPT0gMCAmJiBNYXRoLnNpZ24oeCkgIT09IE1hdGguc2lnbihwb2ludC54KSkge1xuICAgICAgICAgICAgICAgIHggPSAteDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwb2ludC55ICE9PSAwICYmIE1hdGguc2lnbih5KSAhPT0gTWF0aC5zaWduKHBvaW50LnkpKSB7XG4gICAgICAgICAgICAgICAgeSA9IC15O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgeCwgeSB9O1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID4gOTAgJiYgYW5nbGUgPCAxODApIHtcbiAgICAgICAgICAgIGxldCBhbmdsZVJhZCA9ICgoYW5nbGUgLSA5MCkgKiBNYXRoLlBJKSAvIDE4MDtcbiAgICAgICAgICAgIGxldCBjb3MgPSBNYXRoLmNvcyhhbmdsZVJhZCk7XG4gICAgICAgICAgICBsZXQgc2luID0gTWF0aC5zaW4oYW5nbGVSYWQpO1xuICAgICAgICAgICAgbGV0IHggPSAtcG9pbnQueSAqIHNpbiAtIHBvaW50LnggKiBjb3M7XG4gICAgICAgICAgICBsZXQgeSA9IHBvaW50LnkgKiBjb3MgLSBwb2ludC54ICogc2luO1xuICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBzaWduIG9mIHggbWF0Y2hlcyBwb2ludC54LCBhbmQgdGhlIHNpZ24gb2YgeSBtYXRjaGVzIHBvaW50LnlcbiAgICAgICAgICAgIGlmIChwb2ludC54ICE9PSAwICYmIE1hdGguc2lnbih4KSAhPT0gTWF0aC5zaWduKHBvaW50LngpKSB7XG4gICAgICAgICAgICAgICAgeCA9IC14O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBvaW50LnkgIT09IDAgJiYgTWF0aC5zaWduKHkpICE9PSBNYXRoLnNpZ24ocG9pbnQueSkpIHtcbiAgICAgICAgICAgICAgICB5ID0gLXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyB4LCB5IH07XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPiAxODAgJiYgYW5nbGUgPCAyNzApIHtcbiAgICAgICAgICAgIGxldCBhbmdsZVJhZCA9ICgoYW5nbGUgLSAxODApICogTWF0aC5QSSkgLyAxODA7XG4gICAgICAgICAgICBsZXQgY29zID0gTWF0aC5jb3MoYW5nbGVSYWQpO1xuICAgICAgICAgICAgbGV0IHNpbiA9IE1hdGguc2luKGFuZ2xlUmFkKTtcbiAgICAgICAgICAgIGxldCB4ID0gLXBvaW50LnggKiBjb3MgKyBwb2ludC55ICogc2luO1xuICAgICAgICAgICAgbGV0IHkgPSAtcG9pbnQueCAqIHNpbiAtIHBvaW50LnkgKiBjb3M7XG4gICAgICAgICAgICAvLyBFbnN1cmUgdGhlIHNpZ24gb2YgeCBtYXRjaGVzIHBvaW50LngsIGFuZCB0aGUgc2lnbiBvZiB5IG1hdGNoZXMgcG9pbnQueVxuICAgICAgICAgICAgaWYgKHBvaW50LnggIT09IDAgJiYgTWF0aC5zaWduKHgpICE9PSBNYXRoLnNpZ24ocG9pbnQueCkpIHtcbiAgICAgICAgICAgICAgICB4ID0gLXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocG9pbnQueSAhPT0gMCAmJiBNYXRoLnNpZ24oeSkgIT09IE1hdGguc2lnbihwb2ludC55KSkge1xuICAgICAgICAgICAgICAgIHkgPSAteTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHgsIHkgfTtcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA+IDI3MCAmJiBhbmdsZSA8IDM2MCkge1xuICAgICAgICAgICAgbGV0IGFuZ2xlUmFkID0gKChhbmdsZSAtIDI3MCkgKiBNYXRoLlBJKSAvIDE4MDtcbiAgICAgICAgICAgIGxldCBjb3MgPSBNYXRoLmNvcyhhbmdsZVJhZCk7XG4gICAgICAgICAgICBsZXQgc2luID0gTWF0aC5zaW4oYW5nbGVSYWQpO1xuICAgICAgICAgICAgbGV0IHggPSBwb2ludC55ICogc2luIC0gcG9pbnQueCAqIGNvcztcbiAgICAgICAgICAgIGxldCB5ID0gLXBvaW50LnkgKiBjb3MgLSBwb2ludC54ICogc2luO1xuICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBzaWduIG9mIHggbWF0Y2hlcyBwb2ludC54LCBhbmQgdGhlIHNpZ24gb2YgeSBtYXRjaGVzIHBvaW50LnlcbiAgICAgICAgICAgIGlmIChwb2ludC54ICE9PSAwICYmIE1hdGguc2lnbih4KSAhPT0gTWF0aC5zaWduKHBvaW50LngpKSB7XG4gICAgICAgICAgICAgICAgeCA9IC14O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBvaW50LnkgIT09IDAgJiYgTWF0aC5zaWduKHkpICE9PSBNYXRoLnNpZ24ocG9pbnQueSkpIHtcbiAgICAgICAgICAgICAgICB5ID0gLXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyB4LCB5IH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBnZXRQb2ludEJ5U3VwZXJQb2ludChcbiAgICAgICAgc3VwZXJQb2ludDogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LFxuICAgICAgICBhbmdsZTogbnVtYmVyLFxuICAgICk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB7XG4gICAgICAgIGFuZ2xlID0gYW5nbGUgJSAzNjA7XG4gICAgICAgIGlmIChhbmdsZSA8IDApIHtcbiAgICAgICAgICAgIGFuZ2xlICs9IDM2MDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYW5nbGUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHg6IHN1cGVyUG9pbnQueCwgeTogc3VwZXJQb2ludC55IH07XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPT09IDkwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB4OiBzdXBlclBvaW50LnksIHk6IC1zdXBlclBvaW50LnggfTtcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA9PT0gMTgwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB4OiAtc3VwZXJQb2ludC54LCB5OiAtc3VwZXJQb2ludC55IH07XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPT09IDI3MCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgeDogLXN1cGVyUG9pbnQueSwgeTogc3VwZXJQb2ludC54IH07XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPiAwICYmIGFuZ2xlIDwgOTApIHtcbiAgICAgICAgICAgIGxldCBhbmdsZVJhZCA9IChhbmdsZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgICAgICAgICAgbGV0IGNvcyA9IE1hdGguY29zKGFuZ2xlUmFkKTtcbiAgICAgICAgICAgIGxldCBzaW4gPSBNYXRoLnNpbihhbmdsZVJhZCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHg6IHN1cGVyUG9pbnQueCAqIGNvcyArIHN1cGVyUG9pbnQueSAqIHNpbixcbiAgICAgICAgICAgICAgICB5OiAtc3VwZXJQb2ludC54ICogc2luICsgc3VwZXJQb2ludC55ICogY29zLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA+IDkwICYmIGFuZ2xlIDwgMTgwKSB7XG4gICAgICAgICAgICBsZXQgYW5nbGVSYWQgPSAoKGFuZ2xlIC0gOTApICogTWF0aC5QSSkgLyAxODA7XG4gICAgICAgICAgICBsZXQgY29zID0gTWF0aC5jb3MoYW5nbGVSYWQpO1xuICAgICAgICAgICAgbGV0IHNpbiA9IE1hdGguc2luKGFuZ2xlUmFkKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgeDogc3VwZXJQb2ludC55ICogY29zIC0gc3VwZXJQb2ludC54ICogc2luLFxuICAgICAgICAgICAgICAgIHk6IC1zdXBlclBvaW50LnkgKiBzaW4gLSBzdXBlclBvaW50LnggKiBjb3MsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID4gMTgwICYmIGFuZ2xlIDwgMjcwKSB7XG4gICAgICAgICAgICBsZXQgYW5nbGVSYWQgPSAoKGFuZ2xlIC0gMTgwKSAqIE1hdGguUEkpIC8gMTgwO1xuICAgICAgICAgICAgbGV0IGNvcyA9IE1hdGguY29zKGFuZ2xlUmFkKTtcbiAgICAgICAgICAgIGxldCBzaW4gPSBNYXRoLnNpbihhbmdsZVJhZCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHg6IC1zdXBlclBvaW50LnggKiBjb3MgLSBzdXBlclBvaW50LnkgKiBzaW4sXG4gICAgICAgICAgICAgICAgeTogc3VwZXJQb2ludC54ICogc2luIC0gc3VwZXJQb2ludC55ICogY29zLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA+IDI3MCAmJiBhbmdsZSA8IDM2MCkge1xuICAgICAgICAgICAgbGV0IGFuZ2xlUmFkID0gKChhbmdsZSAtIDI3MCkgKiBNYXRoLlBJKSAvIDE4MDtcbiAgICAgICAgICAgIGxldCBjb3MgPSBNYXRoLmNvcyhhbmdsZVJhZCk7XG4gICAgICAgICAgICBsZXQgc2luID0gTWF0aC5zaW4oYW5nbGVSYWQpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4OiAtc3VwZXJQb2ludC55ICogY29zICsgc3VwZXJQb2ludC54ICogc2luLFxuICAgICAgICAgICAgICAgIHk6IHN1cGVyUG9pbnQueSAqIHNpbiArIHN1cGVyUG9pbnQueCAqIGNvcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBnZXRTdXBlcldpZHRoKGNhbnZhc0VsZW1lbnQ6IFBpeGlDb250YWluZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgd2lkdGggPSBjYW52YXNFbGVtZW50LndpZHRoO1xuICAgICAgICBsZXQgaGVpZ2h0ID0gY2FudmFzRWxlbWVudC5oZWlnaHQ7XG4gICAgICAgIGxldCBhbmdsZSA9IGNhbnZhc0VsZW1lbnQuYW5nbGUgJSAzNjA7XG4gICAgICAgIGlmIChhbmdsZSA8IDApIHtcbiAgICAgICAgICAgIGFuZ2xlICs9IDM2MDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYW5nbGUgPT09IDAgfHwgYW5nbGUgPT09IDE4MCkge1xuICAgICAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID09PSA5MCB8fCBhbmdsZSA9PT0gMjcwKSB7XG4gICAgICAgICAgICByZXR1cm4gaGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBNYXRoLmFicyh3aWR0aCAqIE1hdGguY29zKChhbmdsZSAqIE1hdGguUEkpIC8gMTgwKSkgK1xuICAgICAgICAgICAgICAgIE1hdGguYWJzKGhlaWdodCAqIE1hdGguc2luKChhbmdsZSAqIE1hdGguUEkpIC8gMTgwKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gZ2V0U3VwZXJIZWlnaHQoY2FudmFzRWxlbWVudDogUGl4aUNvbnRhaW5lcik6IG51bWJlciB7XG4gICAgICAgIGxldCB3aWR0aCA9IGNhbnZhc0VsZW1lbnQud2lkdGg7XG4gICAgICAgIGxldCBoZWlnaHQgPSBjYW52YXNFbGVtZW50LmhlaWdodDtcbiAgICAgICAgbGV0IGFuZ2xlID0gY2FudmFzRWxlbWVudC5hbmdsZSAlIDM2MDtcbiAgICAgICAgaWYgKGFuZ2xlIDwgMCkge1xuICAgICAgICAgICAgYW5nbGUgKz0gMzYwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbmdsZSA9PT0gMCB8fCBhbmdsZSA9PT0gMTgwKSB7XG4gICAgICAgICAgICByZXR1cm4gaGVpZ2h0O1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID09PSA5MCB8fCBhbmdsZSA9PT0gMjcwKSB7XG4gICAgICAgICAgICByZXR1cm4gd2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIE1hdGguYWJzKGhlaWdodCAqIE1hdGguY29zKChhbmdsZSAqIE1hdGguUEkpIC8gMTgwKSkgK1xuICAgICAgICAgICAgICAgIE1hdGguYWJzKHdpZHRoICogTWF0aC5zaW4oKGFuZ2xlICogTWF0aC5QSSkgLyAxODApKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgQ29udGFpbmVyIGFzIFBpeGlDb250YWluZXIsIFBvaW50RGF0YSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxQb3NpdGlvbnNFeHRlbnNpb25Qcm9wcyB7XG4gICAgLyoqXG4gICAgICogaXMgYSB3YXkgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgY2FudmFzLiBjb21wYXJlZCB0byBwb3NpdGlvbiwgYWxpZ24sIGl0IGlzIGEgcGVyY2VudGFnZSB1c2VkIHRvIGRldGVybWluZSB0aGUgcHJveGltaXR5IGZyb20gdGhlIGVkZ2VzIG9mIHRoZSBjYW52YXMuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogLSBpZiB5b3Ugc2V0IGFsaWduIHRvIDAuNSwgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgY2VudGVyIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBpZiB5b3Ugc2V0IGFsaWduIHRvIDAsIHRoZSBsZWZ0IGVuZCBhbmQgYSB0b3AgZW5kIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGxlZnQgZW5kIGFuZCB0b3AgZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBpZiB5b3Ugc2V0IGFsaWduIHRvIDEsIHRoZSByaWdodCBlbmQgYW5kIGEgYm90dG9tIGVuZCBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSByaWdodCBlbmQgYW5kIGJvdHRvbSBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKlxuICAgICAqICoqSW1wb3J0YW50OioqIFRoZSB7QGxpbmsgUGl4aUNvbnRhaW5lci5waXZvdH0gZmllbGQgZG9lcyBub3QgYWZmZWN0IHRoZSBhbGlnbm1lbnQuXG4gICAgICovXG4gICAgYWxpZ24/OiBQYXJ0aWFsPFBvaW50RGF0YT4gfCBudW1iZXI7XG4gICAgLyoqXG4gICAgICogaXMgYSB3YXkgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgY2FudmFzLiBjb21wYXJlZCB0byBwb3NpdGlvbiwgYWxpZ24sIGl0IGlzIGEgcGVyY2VudGFnZSB1c2VkIHRvIGRldGVybWluZSB0aGUgcHJveGltaXR5IGZyb20gdGhlIGVkZ2VzIG9mIHRoZSBjYW52YXMuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogLSBpZiB5b3Ugc2V0IGFsaWduIHRvIDAuNSwgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgY2VudGVyIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBpZiB5b3Ugc2V0IGFsaWduIHRvIDAsIHRoZSBsZWZ0IGVuZCBhbmQgYSB0b3AgZW5kIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGxlZnQgZW5kIGFuZCB0b3AgZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBpZiB5b3Ugc2V0IGFsaWduIHRvIDEsIHRoZSByaWdodCBlbmQgYW5kIGEgYm90dG9tIGVuZCBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSByaWdodCBlbmQgYW5kIGJvdHRvbSBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKlxuICAgICAqICoqSW1wb3J0YW50OioqIFRoZSB7QGxpbmsgUGl4aUNvbnRhaW5lci5waXZvdH0gZmllbGQgZG9lcyBub3QgYWZmZWN0IHRoZSBhbGlnbm1lbnQuXG4gICAgICovXG4gICAgeEFsaWduPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgd2F5IHRvIHNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgaW4gdGhlIGNhbnZhcy4gY29tcGFyZWQgdG8gcG9zaXRpb24sIGFsaWduLCBpdCBpcyBhIHBlcmNlbnRhZ2UgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHByb3hpbWl0eSBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgY2FudmFzLlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAwLjUsIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGNlbnRlciBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAwLCB0aGUgbGVmdCBlbmQgYW5kIGEgdG9wIGVuZCBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBsZWZ0IGVuZCBhbmQgdG9wIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAxLCB0aGUgcmlnaHQgZW5kIGFuZCBhIGJvdHRvbSBlbmQgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgcmlnaHQgZW5kIGFuZCBib3R0b20gZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICpcbiAgICAgKiAqKkltcG9ydGFudDoqKiBUaGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IGZpZWxkIGRvZXMgbm90IGFmZmVjdCB0aGUgYWxpZ25tZW50LlxuICAgICAqL1xuICAgIHlBbGlnbj86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBpcyBhIHdheSB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50IGluIHRoZSBjYW52YXMgY2FsY3VsYXRlZCBpbiBwZXJjZW50YWdlLlxuICAgICAqIEZvciBleGFtcGxlLCBpZiB5b3Ugc2V0IHRoZSB7QGxpbmsgUGl4aUNvbnRhaW5lci5waXZvdH0gdG8gMC41LCBhbmQ6XG4gICAgICogLSBpZiB5b3Ugc2V0IHBlcmNlbnRhZ2VQb3NpdGlvbiB0byAwLjUsIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGNlbnRlciBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gSWYgeW91IHNldCBwZXJjZW50YWdlUG9zaXRpb24gdG8gMCwgdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBsZWZ0IGVuZCBhbmQgdG9wIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gSWYgeW91IHNldCBwZXJjZW50YWdlUG9zaXRpb24gdG8gMSwgdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSByaWdodCBlbmQgYW5kIGJvdHRvbSBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKlxuICAgICAqICoqSW1wb3J0YW50OioqIFRoZSB7QGxpbmsgUGl4aUNvbnRhaW5lci5waXZvdH0gZmllbGQgZG9lcyBhZmZlY3QgdGhlIHBlcmNlbnRhZ2VQb3NpdGlvbi5cbiAgICAgKi9cbiAgICBwZXJjZW50YWdlUG9zaXRpb24/OiBQYXJ0aWFsPFBvaW50RGF0YT4gfCBudW1iZXI7XG4gICAgLyoqXG4gICAgICogaXMgYSB3YXkgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgY2FudmFzIGNhbGN1bGF0ZWQgaW4gcGVyY2VudGFnZS5cbiAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHNldCB0aGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IHRvIDAuNSwgYW5kOlxuICAgICAqIC0gaWYgeW91IHNldCBwZXJjZW50YWdlUG9zaXRpb24gdG8gMC41LCB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBjZW50ZXIgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIElmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDAsIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgbGVmdCBlbmQgYW5kIHRvcCBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIElmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDEsIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgcmlnaHQgZW5kIGFuZCBib3R0b20gZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICpcbiAgICAgKiAqKkltcG9ydGFudDoqKiBUaGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IGZpZWxkIGRvZXMgYWZmZWN0IHRoZSBwZXJjZW50YWdlUG9zaXRpb24uXG4gICAgICovXG4gICAgcGVyY2VudGFnZVg/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogaXMgYSB3YXkgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgY2FudmFzIGNhbGN1bGF0ZWQgaW4gcGVyY2VudGFnZS5cbiAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHNldCB0aGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IHRvIDAuNSwgYW5kOlxuICAgICAqIC0gaWYgeW91IHNldCBwZXJjZW50YWdlUG9zaXRpb24gdG8gMC41LCB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBjZW50ZXIgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIElmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDAsIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgbGVmdCBlbmQgYW5kIHRvcCBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIElmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDEsIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgcmlnaHQgZW5kIGFuZCBib3R0b20gZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICpcbiAgICAgKiAqKkltcG9ydGFudDoqKiBUaGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IGZpZWxkIGRvZXMgYWZmZWN0IHRoZSBwZXJjZW50YWdlUG9zaXRpb24uXG4gICAgICovXG4gICAgcGVyY2VudGFnZVk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGludGVyZmFjZSBBZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uIHtcbiAgICAvKipcbiAgICAgKiBpcyBhIHdheSB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50IGluIHRoZSBjYW52YXMuIGNvbXBhcmVkIHRvIHBvc2l0aW9uLCBhbGlnbiwgaXQgaXMgYSBwZXJjZW50YWdlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBwcm94aW1pdHkgZnJvbSB0aGUgZWRnZXMgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiBGb3IgZXhhbXBsZTpcbiAgICAgKiAtIGlmIHlvdSBzZXQgYWxpZ24gdG8gMC41LCB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBjZW50ZXIgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIGlmIHlvdSBzZXQgYWxpZ24gdG8gMCwgdGhlIGxlZnQgZW5kIGFuZCBhIHRvcCBlbmQgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgbGVmdCBlbmQgYW5kIHRvcCBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIGlmIHlvdSBzZXQgYWxpZ24gdG8gMSwgdGhlIHJpZ2h0IGVuZCBhbmQgYSBib3R0b20gZW5kIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIHJpZ2h0IGVuZCBhbmQgYm90dG9tIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqXG4gICAgICogKipJbXBvcnRhbnQ6KiogVGhlIHtAbGluayBQaXhpQ29udGFpbmVyLnBpdm90fSBmaWVsZCBkb2VzIG5vdCBhZmZlY3QgdGhlIGFsaWdubWVudC5cbiAgICAgKi9cbiAgICBhbGlnbjogUGFydGlhbDxQb2ludERhdGE+IHwgbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgd2F5IHRvIHNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgaW4gdGhlIGNhbnZhcy4gY29tcGFyZWQgdG8gcG9zaXRpb24sIGFsaWduLCBpdCBpcyBhIHBlcmNlbnRhZ2UgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHByb3hpbWl0eSBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgY2FudmFzLlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAwLjUsIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGNlbnRlciBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAwLCB0aGUgbGVmdCBlbmQgYW5kIGEgdG9wIGVuZCBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBsZWZ0IGVuZCBhbmQgdG9wIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAxLCB0aGUgcmlnaHQgZW5kIGFuZCBhIGJvdHRvbSBlbmQgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgcmlnaHQgZW5kIGFuZCBib3R0b20gZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICpcbiAgICAgKiAqKkltcG9ydGFudDoqKiBUaGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IGZpZWxkIGRvZXMgbm90IGFmZmVjdCB0aGUgYWxpZ25tZW50LlxuICAgICAqL1xuICAgIHhBbGlnbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgd2F5IHRvIHNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgaW4gdGhlIGNhbnZhcy4gY29tcGFyZWQgdG8gcG9zaXRpb24sIGFsaWduLCBpdCBpcyBhIHBlcmNlbnRhZ2UgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHByb3hpbWl0eSBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgY2FudmFzLlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAwLjUsIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGNlbnRlciBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAwLCB0aGUgbGVmdCBlbmQgYW5kIGEgdG9wIGVuZCBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBsZWZ0IGVuZCBhbmQgdG9wIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqIC0gaWYgeW91IHNldCBhbGlnbiB0byAxLCB0aGUgcmlnaHQgZW5kIGFuZCBhIGJvdHRvbSBlbmQgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgcmlnaHQgZW5kIGFuZCBib3R0b20gZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICpcbiAgICAgKiAqKkltcG9ydGFudDoqKiBUaGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IGZpZWxkIGRvZXMgbm90IGFmZmVjdCB0aGUgYWxpZ25tZW50LlxuICAgICAqL1xuICAgIHlBbGlnbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgd2F5IHRvIHNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgaW4gdGhlIGNhbnZhcyBjYWxjdWxhdGVkIGluIHBlcmNlbnRhZ2UuXG4gICAgICogRm9yIGV4YW1wbGUsIGlmIHlvdSBzZXQgdGhlIHtAbGluayBQaXhpQ29udGFpbmVyLnBpdm90fSB0byAwLjUsIGFuZDpcbiAgICAgKiAtIGlmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDAuNSwgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgY2VudGVyIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBJZiB5b3Ugc2V0IHBlcmNlbnRhZ2VQb3NpdGlvbiB0byAwLCB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGxlZnQgZW5kIGFuZCB0b3AgZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBJZiB5b3Ugc2V0IHBlcmNlbnRhZ2VQb3NpdGlvbiB0byAxLCB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIHJpZ2h0IGVuZCBhbmQgYm90dG9tIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqXG4gICAgICogKipJbXBvcnRhbnQ6KiogVGhlIHtAbGluayBQaXhpQ29udGFpbmVyLnBpdm90fSBmaWVsZCBkb2VzIGFmZmVjdCB0aGUgcGVyY2VudGFnZVBvc2l0aW9uLlxuICAgICAqL1xuICAgIHBlcmNlbnRhZ2VQb3NpdGlvbjogUGFydGlhbDxQb2ludERhdGE+IHwgbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgd2F5IHRvIHNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgaW4gdGhlIGNhbnZhcyBjYWxjdWxhdGVkIGluIHBlcmNlbnRhZ2UuXG4gICAgICogRm9yIGV4YW1wbGUsIGlmIHlvdSBzZXQgdGhlIHtAbGluayBQaXhpQ29udGFpbmVyLnBpdm90fSB0byAwLjUsIGFuZDpcbiAgICAgKiAtIGlmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDAuNSwgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgY2VudGVyIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBJZiB5b3Ugc2V0IHBlcmNlbnRhZ2VQb3NpdGlvbiB0byAwLCB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIGxlZnQgZW5kIGFuZCB0b3AgZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICogLSBJZiB5b3Ugc2V0IHBlcmNlbnRhZ2VQb3NpdGlvbiB0byAxLCB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgaW4gdGhlIHJpZ2h0IGVuZCBhbmQgYm90dG9tIGVuZCBvZiB0aGUgY2FudmFzLlxuICAgICAqXG4gICAgICogKipJbXBvcnRhbnQ6KiogVGhlIHtAbGluayBQaXhpQ29udGFpbmVyLnBpdm90fSBmaWVsZCBkb2VzIGFmZmVjdCB0aGUgcGVyY2VudGFnZVBvc2l0aW9uLlxuICAgICAqL1xuICAgIHBlcmNlbnRhZ2VYOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogaXMgYSB3YXkgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgY2FudmFzIGNhbGN1bGF0ZWQgaW4gcGVyY2VudGFnZS5cbiAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHNldCB0aGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IHRvIDAuNSwgYW5kOlxuICAgICAqIC0gaWYgeW91IHNldCBwZXJjZW50YWdlUG9zaXRpb24gdG8gMC41LCB0aGUgZWxlbWVudCB3aWxsIGJlIGluIHRoZSBjZW50ZXIgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIElmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDAsIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgbGVmdCBlbmQgYW5kIHRvcCBlbmQgb2YgdGhlIGNhbnZhcy5cbiAgICAgKiAtIElmIHlvdSBzZXQgcGVyY2VudGFnZVBvc2l0aW9uIHRvIDEsIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQgd2lsbCBiZSBpbiB0aGUgcmlnaHQgZW5kIGFuZCBib3R0b20gZW5kIG9mIHRoZSBjYW52YXMuXG4gICAgICpcbiAgICAgKiAqKkltcG9ydGFudDoqKiBUaGUge0BsaW5rIFBpeGlDb250YWluZXIucGl2b3R9IGZpZWxkIGRvZXMgYWZmZWN0IHRoZSBwZXJjZW50YWdlUG9zaXRpb24uXG4gICAgICovXG4gICAgcGVyY2VudGFnZVk6IG51bWJlcjtcbiAgICByZWFkb25seSBwb3NpdGlvblR5cGU6IFwicGl4ZWxcIiB8IFwicGVyY2VudGFnZVwiIHwgXCJhbGlnblwiO1xuICAgIHJlYWRvbmx5IHBvc2l0aW9uSW5mbzogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgdHlwZTogXCJwaXhlbFwiIHwgXCJwZXJjZW50YWdlXCIgfCBcImFsaWduXCIgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFuYWxpemVQb3NpdGlvbnNFeHRlbnNpb25Qcm9wczxUIGV4dGVuZHMgQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvblByb3BzPihwcm9wcz86IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIHJldHVybiBwcm9wcztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwcm9wcy5hbGlnbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICBpZiAocHJvcHMueEFsaWduICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLmFsaWduID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5hbGlnbiA9IHsgeDogcHJvcHMueEFsaWduIH07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLnhBbGlnbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJvcHMuYWxpZ24ueCA9IHByb3BzLnhBbGlnbjtcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMueEFsaWduO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wcy55QWxpZ24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMuYWxpZ24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHByb3BzLmFsaWduID0geyB5OiBwcm9wcy55QWxpZ24gfTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMueUFsaWduO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5hbGlnbi55ID0gcHJvcHMueUFsaWduO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy55QWxpZ247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwcm9wcy5wZXJjZW50YWdlUG9zaXRpb24gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgaWYgKHByb3BzLnBlcmNlbnRhZ2VYICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLnBlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMucGVyY2VudGFnZVBvc2l0aW9uID0geyB4OiBwcm9wcy5wZXJjZW50YWdlWCB9O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5wZXJjZW50YWdlWDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJvcHMucGVyY2VudGFnZVBvc2l0aW9uLnggPSBwcm9wcy5wZXJjZW50YWdlWDtcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMucGVyY2VudGFnZVg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzLnBlcmNlbnRhZ2VZICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLnBlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMucGVyY2VudGFnZVBvc2l0aW9uID0geyB5OiBwcm9wcy5wZXJjZW50YWdlWSB9O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5wZXJjZW50YWdlWTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJvcHMucGVyY2VudGFnZVBvc2l0aW9uLnkgPSBwcm9wcy5wZXJjZW50YWdlWTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMucGVyY2VudGFnZVk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xufVxuIiwiaW1wb3J0IHR5cGUge1xuICAgIENvbnRhaW5lckNoaWxkLFxuICAgIENvbnRhaW5lckV2ZW50cyxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT2JzZXJ2YWJsZVBvaW50LFxuICAgIFNwcml0ZU9wdGlvbnMgYXMgUGl4aVNwcml0ZU9wdGlvbnMsXG4gICAgUG9pbnREYXRhLFxuICAgIFRleHR1cmUsXG4gICAgVGV4dHVyZVNvdXJjZUxpa2UsXG59IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBDQU5WQVNfU1BSSVRFX0lEIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IENhbnZhc0Jhc2VJdGVtIGZyb20gXCIuLi9jbGFzc2VzL0NhbnZhc0Jhc2VJdGVtXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLCBzZXRNZW1vcnlDb250YWluZXIgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9jYW52YXMtZWxlbWVudC1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGdldE1lbW9yeVNwcml0ZSB9IGZyb20gXCIuLi9mdW5jdGlvbnMvY2FudmFzLW1lbW9yeS11dGlsaXR5XCI7XG5pbXBvcnQgeyBDYW52YXNQcm9wZXJ0eVV0aWxpdHkgYXMgUHJvcHNVdGlscyB9IGZyb20gXCIuLi9mdW5jdGlvbnMvY2FudmFzLXByb3BlcnR5LXV0aWxpdHlcIjtcbmltcG9ydCB7IGdldFRleHR1cmUgfSBmcm9tIFwiLi4vZnVuY3Rpb25zL3RleHR1cmUtdXRpbGl0eVwiO1xuaW1wb3J0IEFzc2V0TWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL0Fzc2V0TWVtb3J5XCI7XG5pbXBvcnQgeyBTcHJpdGVPcHRpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FudmFzLW9wdGlvbnNcIjtcbmltcG9ydCBDYW52YXNCYXNlSXRlbU1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9tZW1vcnkvQ2FudmFzQmFzZUl0ZW1NZW1vcnlcIjtcbmltcG9ydCBTcHJpdGVNZW1vcnksIHsgU3ByaXRlQmFzZU1lbW9yeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL21lbW9yeS9TcHJpdGVNZW1vcnlcIjtcbmltcG9ydCBBZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uLCB7IGFuYWxpemVQb3NpdGlvbnNFeHRlbnNpb25Qcm9wcyB9IGZyb20gXCIuL0FkZGl0aW9uYWxQb3NpdGlvbnNFeHRlbnNpb25cIjtcbmltcG9ydCBMaXN0ZW5lckV4dGVuc2lvbiwgeyBhZGRMaXN0ZW5lckhhbmRsZXIsIE9uRXZlbnRzSGFuZGxlcnMgfSBmcm9tIFwiLi9MaXN0ZW5lckV4dGVuc2lvblwiO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgYSBleHRlbnNpb24gb2YgdGhlIFtQSVhJLlNwcml0ZSBjbGFzc10oaHR0cHM6Ly9waXhpanMuY29tLzgueC9leGFtcGxlcy9zcHJpdGUvYmFzaWMpLCBpdCBoYXMgdGhlIHNhbWUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyxcbiAqIGJ1dCBpdCBoYXMgdGhlIGFiaWxpdHkgdG8gYmUgc2F2ZWQgYW5kIGxvYWRlZCBieSB0aGUgUGl4aeKAmVZOIGxpYnJhcnkuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdGV4dHVyZSA9IGF3YWl0IEFzc2V0cy5sb2FkKCdodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL2J1bm55LnBuZycpO1xuICogY29uc3Qgc3ByaXRlID0gU3ByaXRlLmZyb20odGV4dHVyZSk7XG4gKlxuICogc3ByaXRlLmFuY2hvci5zZXQoMC41KTtcbiAqIHNwcml0ZS54ID0gY2FudmFzLnNjcmVlbi53aWR0aCAvIDI7XG4gKiBzcHJpdGUueSA9IGNhbnZhcy5zY3JlZW4uaGVpZ2h0IC8gMjtcbiAqXG4gKiBzcHJpdGUuZXZlbnRNb2RlID0gJ3N0YXRpYyc7XG4gKiBzcHJpdGUuY3Vyc29yID0gJ3BvaW50ZXInO1xuICogc3ByaXRlLm9uRXZlbnQoJ3BvaW50ZXJkb3duJywgRXZlbnRUZXN0KTtcbiAqXG4gKiBjYW52YXMuYWRkKFwiYnVubnlcIiwgc3ByaXRlKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTcHJpdGU8TWVtb3J5IGV4dGVuZHMgUGl4aVNwcml0ZU9wdGlvbnMgJiBDYW52YXNCYXNlSXRlbU1lbW9yeSA9IFNwcml0ZU1lbW9yeT5cbiAgICBleHRlbmRzIFBJWEkuU3ByaXRlXG4gICAgaW1wbGVtZW50cyBDYW52YXNCYXNlSXRlbTxNZW1vcnkgfCBTcHJpdGVNZW1vcnk+LCBMaXN0ZW5lckV4dGVuc2lvbiwgQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvblxue1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBTcHJpdGVPcHRpb25zIHwgT21pdDxUZXh0dXJlLCBcIm9uXCI+KSB7XG4gICAgICAgIG9wdGlvbnMgPSBhbmFsaXplUG9zaXRpb25zRXh0ZW5zaW9uUHJvcHMob3B0aW9ucyBhcyBhbnkpO1xuICAgICAgICBsZXQgYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBwZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChvcHRpb25zICYmIFwiYWxpZ25cIiBpbiBvcHRpb25zICYmIG9wdGlvbnM/LmFsaWduICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFsaWduID0gb3B0aW9ucy5hbGlnbjtcbiAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLmFsaWduO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zICYmIFwicGVyY2VudGFnZVBvc2l0aW9uXCIgaW4gb3B0aW9ucyAmJiBvcHRpb25zPy5wZXJjZW50YWdlUG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGVyY2VudGFnZVBvc2l0aW9uID0gb3B0aW9ucy5wZXJjZW50YWdlUG9zaXRpb247XG4gICAgICAgICAgICBkZWxldGUgb3B0aW9ucy5wZXJjZW50YWdlUG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMucGl4aXZuSWQgPSB0aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5waXhpdm5JZCB8fCBDQU5WQVNfU1BSSVRFX0lEO1xuICAgICAgICBpZiAoYWxpZ24pIHtcbiAgICAgICAgICAgIHRoaXMuYWxpZ24gPSBhbGlnbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmNlbnRhZ2VQb3NpdGlvbiA9IHBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZWFkb25seSBwaXhpdm5JZDogc3RyaW5nID0gQ0FOVkFTX1NQUklURV9JRDtcbiAgICBnZXQgbWVtb3J5KCk6IE1lbW9yeSB8IFNwcml0ZU1lbW9yeSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5nZXRNZW1vcnlTcHJpdGUodGhpcyksXG4gICAgICAgICAgICBwaXhpdm5JZDogdGhpcy5waXhpdm5JZCxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLl9hbGlnbixcbiAgICAgICAgICAgIHBlcmNlbnRhZ2VQb3NpdGlvbjogdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3luYyBzZXRNZW1vcnkodmFsdWU6IE1lbW9yeSB8IFNwcml0ZU1lbW9yeSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgc2V0TWVtb3J5U3ByaXRlKHRoaXMsIHZhbHVlKTtcbiAgICB9XG4gICAgc3RhdGljIG92ZXJyaWRlIGZyb20oc291cmNlOiBUZXh0dXJlIHwgVGV4dHVyZVNvdXJjZUxpa2UsIHNraXBDYWNoZT86IGJvb2xlYW4pOiBTcHJpdGU8YW55PiB7XG4gICAgICAgIGxldCBzcHJpdGUgPSBQSVhJLlNwcml0ZS5mcm9tKHNvdXJjZSwgc2tpcENhY2hlKTtcbiAgICAgICAgbGV0IG15U3ByaXRlID0gbmV3IFNwcml0ZSgpO1xuICAgICAgICBteVNwcml0ZS50ZXh0dXJlID0gc3ByaXRlLnRleHR1cmU7XG4gICAgICAgIHJldHVybiBteVNwcml0ZTtcbiAgICB9XG5cbiAgICAvKiogTGlzdGVuZXJFeHRlbnNpb24gKi9cblxuICAgIHJlYWRvbmx5IG9uRXZlbnRzSGFuZGxlcnM6IE9uRXZlbnRzSGFuZGxlcnMgPSB7fTtcbiAgICBvdmVycmlkZSBvbjxUIGV4dGVuZHMga2V5b2YgQ29udGFpbmVyRXZlbnRzPENvbnRhaW5lckNoaWxkPiB8IGtleW9mIHsgW0s6IHN5bWJvbF06IGFueTsgW0s6IHt9ICYgc3RyaW5nXTogYW55IH0+KFxuICAgICAgICBldmVudDogVCxcbiAgICAgICAgZm46IChcbiAgICAgICAgICAgIC4uLmFyZ3M6IFtcbiAgICAgICAgICAgICAgICAuLi5FdmVudEVtaXR0ZXIuQXJndW1lbnRNYXA8XG4gICAgICAgICAgICAgICAgICAgIENvbnRhaW5lckV2ZW50czxDb250YWluZXJDaGlsZD4gJiB7IFtLOiBzeW1ib2xdOiBhbnk7IFtLOiB7fSAmIHN0cmluZ106IGFueSB9XG4gICAgICAgICAgICAgICAgPltFeHRyYWN0PFxuICAgICAgICAgICAgICAgICAgICBULFxuICAgICAgICAgICAgICAgICAgICBrZXlvZiBDb250YWluZXJFdmVudHM8Q29udGFpbmVyQ2hpbGQ+IHwga2V5b2YgeyBbSzogc3ltYm9sXTogYW55OyBbSzoge30gJiBzdHJpbmddOiBhbnkgfVxuICAgICAgICAgICAgICAgID5dLFxuICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLFxuICAgICAgICAgICAgXVxuICAgICAgICApID0+IHZvaWQsXG4gICAgICAgIGNvbnRleHQ/OiBhbnksXG4gICAgKTogdGhpcyB7XG4gICAgICAgIGFkZExpc3RlbmVySGFuZGxlcihldmVudCwgdGhpcywgZm4pO1xuXG4gICAgICAgIHJldHVybiBzdXBlci5vbjxUPihldmVudCwgKC4uLmUpID0+IGZuKC4uLmUsIHRoaXMpLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICAvKiogQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvbiAqL1xuXG4gICAgcHJpdmF0ZSBfYWxpZ246IFBhcnRpYWw8UG9pbnREYXRhPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBzZXQgYWxpZ24odmFsdWU6IFBhcnRpYWw8UG9pbnREYXRhPiB8IG51bWJlcikge1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2FsaWduID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduID0ge30pO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB0aGlzLl9hbGlnbi54ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9hbGlnbi55ID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZS54ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduLnggPSB2YWx1ZS54KTtcbiAgICAgICAgICAgIHZhbHVlLnkgIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fYWxpZ24ueSA9IHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IGFsaWduKCkge1xuICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgbGV0IHN1cGVyU2NhbGUgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5zY2FsZSwgdGhpcy5hbmdsZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBQcm9wc1V0aWxzLmNhbGN1bGF0ZUFsaWduQnlQb3NpdGlvbihcbiAgICAgICAgICAgICAgICBcIndpZHRoXCIsXG4gICAgICAgICAgICAgICAgdGhpcy54LFxuICAgICAgICAgICAgICAgIFByb3BzVXRpbHMuZ2V0U3VwZXJXaWR0aCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzdXBlclBpdm90LngsXG4gICAgICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgICAgICAgICB0aGlzLmFuY2hvci54LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHk6IFByb3BzVXRpbHMuY2FsY3VsYXRlQWxpZ25CeVBvc2l0aW9uKFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgdGhpcy55LFxuICAgICAgICAgICAgICAgIFByb3BzVXRpbHMuZ2V0U3VwZXJIZWlnaHQodGhpcyksXG4gICAgICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgICAgIHN1cGVyU2NhbGUueSA8IDAsXG4gICAgICAgICAgICAgICAgdGhpcy5hbmNob3IueSxcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNldCB4QWxpZ24odmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2FsaWduID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduID0ge30pO1xuICAgICAgICB0aGlzLl9hbGlnbi54ID0gdmFsdWU7XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IHhBbGlnbigpIHtcbiAgICAgICAgbGV0IHN1cGVyUGl2b3QgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5waXZvdCwgdGhpcy5hbmdsZSk7XG4gICAgICAgIGxldCBzdXBlclNjYWxlID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMuc2NhbGUsIHRoaXMuYW5nbGUpO1xuICAgICAgICByZXR1cm4gUHJvcHNVdGlscy5jYWxjdWxhdGVBbGlnbkJ5UG9zaXRpb24oXG4gICAgICAgICAgICBcIndpZHRoXCIsXG4gICAgICAgICAgICB0aGlzLngsXG4gICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVyV2lkdGgodGhpcyksXG4gICAgICAgICAgICBzdXBlclBpdm90LngsXG4gICAgICAgICAgICBzdXBlclNjYWxlLnggPCAwLFxuICAgICAgICAgICAgdGhpcy5hbmNob3IueCxcbiAgICAgICAgKTtcbiAgICB9XG4gICAgc2V0IHlBbGlnbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fYWxpZ24gPT09IHVuZGVmaW5lZCAmJiAodGhpcy5fYWxpZ24gPSB7fSk7XG4gICAgICAgIHRoaXMuX2FsaWduLnkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWxvYWRQb3NpdGlvbigpO1xuICAgIH1cbiAgICBnZXQgeUFsaWduKCkge1xuICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgbGV0IHN1cGVyU2NhbGUgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5zY2FsZSwgdGhpcy5hbmdsZSk7XG4gICAgICAgIHJldHVybiBQcm9wc1V0aWxzLmNhbGN1bGF0ZUFsaWduQnlQb3NpdGlvbihcbiAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICB0aGlzLnksXG4gICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVySGVpZ2h0KHRoaXMpLFxuICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgc3VwZXJTY2FsZS55IDwgMCxcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yLnksXG4gICAgICAgICk7XG4gICAgfVxuICAgIHByaXZhdGUgX3BlcmNlbnRhZ2VQb3NpdGlvbjogUGFydGlhbDxQb2ludERhdGE+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHNldCBwZXJjZW50YWdlUG9zaXRpb24odmFsdWU6IFBhcnRpYWw8UG9pbnREYXRhPiB8IG51bWJlcikge1xuICAgICAgICB0aGlzLl9hbGlnbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHt9KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnggPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi55ID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZS54ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi54ID0gdmFsdWUueCk7XG4gICAgICAgICAgICB2YWx1ZS55ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi55ID0gdmFsdWUueSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWxvYWRQb3NpdGlvbigpO1xuICAgIH1cbiAgICBnZXQgcGVyY2VudGFnZVBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogUHJvcHNVdGlscy5jYWxjdWxhdGVQZXJjZW50YWdlUG9zaXRpb25CeVBvc2l0aW9uKFwid2lkdGhcIiwgdGhpcy54KSxcbiAgICAgICAgICAgIHk6IFByb3BzVXRpbHMuY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbihcImhlaWdodFwiLCB0aGlzLnkpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgcGVyY2VudGFnZVgoKSB7XG4gICAgICAgIHJldHVybiBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBlcmNlbnRhZ2VQb3NpdGlvbkJ5UG9zaXRpb24oXCJ3aWR0aFwiLCB0aGlzLngpO1xuICAgIH1cbiAgICBzZXQgcGVyY2VudGFnZVgoX3ZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB7fSk7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi54ID0gX3ZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIGdldCBwZXJjZW50YWdlWSgpIHtcbiAgICAgICAgcmV0dXJuIFByb3BzVXRpbHMuY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbihcImhlaWdodFwiLCB0aGlzLnkpO1xuICAgIH1cbiAgICBzZXQgcGVyY2VudGFnZVkoX3ZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB7fSk7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi55ID0gX3ZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIGdldCBwb3NpdGlvblR5cGUoKTogXCJwaXhlbFwiIHwgXCJwZXJjZW50YWdlXCIgfCBcImFsaWduXCIge1xuICAgICAgICBpZiAodGhpcy5fYWxpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWduXCI7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJwZXJjZW50YWdlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwicGl4ZWxcIjtcbiAgICB9XG4gICAgZ2V0IHBvc2l0aW9uSW5mbygpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB0eXBlOiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIiB9IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImFsaWduXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy54QWxpZ24sIHk6IHRoaXMueUFsaWduLCB0eXBlOiBcImFsaWduXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJwZXJjZW50YWdlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy5wZXJjZW50YWdlWCwgeTogdGhpcy5wZXJjZW50YWdlWSwgdHlwZTogXCJwZXJjZW50YWdlXCIgfTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy54LCB5OiB0aGlzLnksIHR5cGU6IFwicGl4ZWxcIiB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldCBwb3NpdGlvbkluZm8odmFsdWU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHR5cGU/OiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIiB9KSB7XG4gICAgICAgIGlmICh2YWx1ZS50eXBlID09PSBcImFsaWduXCIpIHtcbiAgICAgICAgICAgIHRoaXMuYWxpZ24gPSB7IHg6IHZhbHVlLngsIHk6IHZhbHVlLnkgfTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS50eXBlID09PSBcInBlcmNlbnRhZ2VcIikge1xuICAgICAgICAgICAgdGhpcy5wZXJjZW50YWdlUG9zaXRpb24gPSB7IHg6IHZhbHVlLngsIHk6IHZhbHVlLnkgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24uc2V0KHZhbHVlLngsIHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCByZWxvYWRQb3NpdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FsaWduKSB7XG4gICAgICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgICAgIGxldCBzdXBlclNjYWxlID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMuc2NhbGUsIHRoaXMuYW5nbGUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FsaWduLnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnggPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgICAgICAgICAgICAgXCJ3aWR0aFwiLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbGlnbi54LFxuICAgICAgICAgICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVyV2lkdGgodGhpcyksXG4gICAgICAgICAgICAgICAgICAgIHN1cGVyUGl2b3QueCxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3IueCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX2FsaWduLnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnkgPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWxpZ24ueSxcbiAgICAgICAgICAgICAgICAgICAgUHJvcHNVdGlscy5nZXRTdXBlckhlaWdodCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgICAgICAgICBzdXBlclNjYWxlLnkgPCAwLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuY2hvci55LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnggPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24oXCJ3aWR0aFwiLCB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24ueCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnkgPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24oXCJoZWlnaHRcIiwgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBwb3NpdGlvbigpOiBPYnNlcnZhYmxlUG9pbnQge1xuICAgICAgICByZXR1cm4gc3VwZXIucG9zaXRpb247XG4gICAgfVxuICAgIHNldCBwb3NpdGlvbih2YWx1ZTogT2JzZXJ2YWJsZVBvaW50KSB7XG4gICAgICAgIHRoaXMuX2FsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN1cGVyLnBvc2l0aW9uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBzdXBlci54O1xuICAgIH1cbiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2FsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN1cGVyLnggPSB2YWx1ZTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0IHkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnk7XG4gICAgfVxuICAgIG92ZXJyaWRlIHNldCB5KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgc3VwZXIueSA9IHZhbHVlO1xuICAgIH1cbn1cblJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmFkZDxTcHJpdGVNZW1vcnksIHR5cGVvZiBTcHJpdGU8U3ByaXRlTWVtb3J5Pj4oU3ByaXRlLCB7XG4gICAgbmFtZTogQ0FOVkFTX1NQUklURV9JRCxcbiAgICBjb3B5UHJvcGVydHk6IGFzeW5jIChjb21wb25lbnQsIHNvdXJjZSkgPT4ge1xuICAgICAgICBhd2FpdCBzZXRNZW1vcnlTcHJpdGUoY29tcG9uZW50IGFzIFNwcml0ZSwgc291cmNlLCB7IGlnbm9yZVRleHR1cmU6IHRydWUgfSk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0TWVtb3J5U3ByaXRlPE1lbW9yeSBleHRlbmRzIFNwcml0ZUJhc2VNZW1vcnk+KFxuICAgIGVsZW1lbnQ6IFNwcml0ZTxhbnk+LFxuICAgIG1lbW9yeTogTWVtb3J5IHwge30sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgICAgaGFsZj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgICAgIGlnbm9yZVRleHR1cmU/OiBib29sZWFuO1xuICAgIH0sXG4pIHtcbiAgICBtZW1vcnkgPSBhbmFsaXplUG9zaXRpb25zRXh0ZW5zaW9uUHJvcHMobWVtb3J5KSE7XG4gICAgbGV0IGlnbm9yZVRleHR1cmUgPSBvcHRpb25zPy5pZ25vcmVUZXh0dXJlIHx8IGZhbHNlO1xuICAgIGF3YWl0IHNldE1lbW9yeUNvbnRhaW5lcihlbGVtZW50LCBtZW1vcnkpO1xuICAgIGlmICghaWdub3JlVGV4dHVyZSkge1xuICAgICAgICBpZiAoXCJ0ZXh0dXJlSW1hZ2VcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LnRleHR1cmVJbWFnZSAmJiBtZW1vcnkudGV4dHVyZUltYWdlLmltYWdlKSB7XG4gICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGF3YWl0IGdldFRleHR1cmUobWVtb3J5LnRleHR1cmVJbWFnZS5pbWFnZSk7XG4gICAgICAgICAgICBpZiAodGV4dHVyZSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQudGV4dHVyZSA9IHRleHR1cmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHRleHR1cmVEYXRhOiBBc3NldE1lbW9yeSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKFwidGV4dHVyZURhdGFcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LnRleHR1cmVEYXRhKSB7XG4gICAgICAgICAgICB0ZXh0dXJlRGF0YSA9IG1lbW9yeS50ZXh0dXJlRGF0YTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGV4dHVyZURhdGEpIHtcbiAgICAgICAgICAgIGlmICh0ZXh0dXJlRGF0YS51cmwgIT09IFwiRU1QVFlcIikge1xuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlVXJsOiBzdHJpbmcgPSB0ZXh0dXJlRGF0YS51cmw7XG4gICAgICAgICAgICAgICAgaWYgKHRleHR1cmVEYXRhLmFsaWFzICYmIFBJWEkuQXNzZXRzLnJlc29sdmVyLmhhc0tleSh0ZXh0dXJlRGF0YS5hbGlhcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVVybCA9IHRleHR1cmVEYXRhLmFsaWFzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGF3YWl0IGdldFRleHR1cmUodGV4dHVyZVVybCk7XG4gICAgICAgICAgICAgICAgaWYgKHRleHR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50ZXh0dXJlID0gdGV4dHVyZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IGhhbGYgPSBvcHRpb25zPy5oYWxmO1xuICAgIGlmIChoYWxmKSB7XG4gICAgICAgIGF3YWl0IGhhbGYoKTtcbiAgICB9XG4gICAgaWYgKFwiYW5jaG9yXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5hbmNob3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIG1lbW9yeS5hbmNob3IgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYW5jaG9yLnNldChtZW1vcnkuYW5jaG9yLCBtZW1vcnkuYW5jaG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYW5jaG9yLnNldChtZW1vcnkuYW5jaG9yLngsIG1lbW9yeS5hbmNob3IueSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXCJhbGlnblwiIGluIG1lbW9yeSAmJiBtZW1vcnkuYWxpZ24gIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5hbGlnbiA9IG1lbW9yeS5hbGlnbik7XG4gICAgXCJwZXJjZW50YWdlUG9zaXRpb25cIiBpbiBtZW1vcnkgJiZcbiAgICAgICAgbWVtb3J5LnBlcmNlbnRhZ2VQb3NpdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChlbGVtZW50LnBlcmNlbnRhZ2VQb3NpdGlvbiA9IG1lbW9yeS5wZXJjZW50YWdlUG9zaXRpb24pO1xuICAgIFwicm91bmRQaXhlbHNcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LnJvdW5kUGl4ZWxzICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQucm91bmRQaXhlbHMgPSBtZW1vcnkucm91bmRQaXhlbHMpO1xufVxuIiwiaW1wb3J0IHR5cGUgeyBUZXh0dXJlLCBUZXh0dXJlU291cmNlLCBUZXh0dXJlU291cmNlTGlrZSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBTcHJpdGVNZW1vcnkgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IENBTlZBU19JTUFHRV9JRCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi91dGlscy9sb2ctdXRpbGl0eVwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBSZWdpc3RlcmVkQ2FudmFzQ29tcG9uZW50cyB9IGZyb20gXCIuLi9kZWNvcmF0b3JzL2NhbnZhcy1lbGVtZW50LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgc2hvd1dpdGhEaXNzb2x2ZSB9IGZyb20gXCIuLi9mdW5jdGlvbnMvY2FudmFzLXRyYW5zaXRpb25cIjtcbmltcG9ydCB7IGFkZEltYWdlIH0gZnJvbSBcIi4uL2Z1bmN0aW9ucy9pbWFnZS11dGlsaXR5XCI7XG5pbXBvcnQgeyBnZXRUZXh0dXJlIH0gZnJvbSBcIi4uL2Z1bmN0aW9ucy90ZXh0dXJlLXV0aWxpdHlcIjtcbmltcG9ydCBBc3NldE1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9Bc3NldE1lbW9yeVwiO1xuaW1wb3J0IHsgSW1hZ2VTcHJpdGVPcHRpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FudmFzLW9wdGlvbnNcIjtcbmltcG9ydCBJbWFnZVNwcml0ZU1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9tZW1vcnkvSW1hZ2VTcHJpdGVNZW1vcnlcIjtcbmltcG9ydCBTcHJpdGUsIHsgc2V0TWVtb3J5U3ByaXRlIH0gZnJvbSBcIi4vU3ByaXRlXCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyBhIGV4dGVuc2lvbiBvZiB0aGUge0BsaW5rIFNwcml0ZX0gY2xhc3MsIGl0IGhhcyB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLFxuICogYnV0IGl0IGhhcyBzb21lIGZlYXR1cmVzIHRoYXQgbWFrZSB0ZXh0dXJlIG1hbmFnZW1lbnQgZWFzaWVyLlxuICogWW91IG5lZWQgdG8gdXNlIHtAbGluayBsb2FkfSB0byBzaG93IHRoZSBpbWFnZSBpbiB0aGUgY2FudmFzLlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIGZvciBmdW5jdGlvbnMgbGlrZSB7QGxpbmsgYWRkSW1hZ2V9IGFuZCB7QGxpbmsgc2hvd1dpdGhEaXNzb2x2ZX0uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbGV0IGFsaWVuID0gbmV3IEltYWdlU3ByaXRlKHtcbiAqICAgICBhbmNob3I6IHsgeDogMC41LCB5OiAwLjUgfSxcbiAqICAgICB4OiAxMDAsXG4gKiAgICAgeTogMTAwLFxuICogfSwgJ2h0dHBzOi8vcGl4aWpzLmNvbS9hc3NldHMvZWdnSGVhZC5wbmcnKVxuICogYXdhaXQgYWxpZW4ubG9hZCgpXG4gKiBjYW52YXMuYWRkKFwiYWxpZW5cIiwgYWxpZW4pXG4gKiBgYGBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsZXQgYWxpZW4gPSBhZGRJbWFnZShcImFsaWVuXCIsICdodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL2VnZ0hlYWQucG5nJylcbiAqIGFsaWVuLmFuY2hvci5zZXQoMC41KTtcbiAqIGFsaWVuLnggPSAxMDBcbiAqIGFsaWVuLnkgPSAxMDBcbiAqIGF3YWl0IGFsaWVuLmxvYWQoKVxuICogYGBgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEltYWdlU3ByaXRlPE1lbW9yeSBleHRlbmRzIEltYWdlU3ByaXRlTWVtb3J5ID0gSW1hZ2VTcHJpdGVNZW1vcnk+IGV4dGVuZHMgU3ByaXRlPE1lbW9yeT4ge1xuICAgIHByaXZhdGUgX3RleHR1cmVBbGlhcz86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgZ2V0IHRleHR1cmVBbGlhcygpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmVBbGlhcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RleHR1cmVBbGlhcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlLnNvdXJjZS5sYWJlbDtcbiAgICB9XG4gICAgcmVhZG9ubHkgcGl4aXZuSWQ6IHN0cmluZyA9IENBTlZBU19JTUFHRV9JRDtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogSW1hZ2VTcHJpdGVPcHRpb25zIHwgT21pdDxUZXh0dXJlLCBcIm9uXCI+IHwgdW5kZWZpbmVkLCB0ZXh0dXJlQWxpYXM/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIGlmICh0ZXh0dXJlQWxpYXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmVBbGlhcyA9IHRleHR1cmVBbGlhcztcbiAgICAgICAgfVxuICAgIH1cbiAgICBvdmVycmlkZSBnZXQgbWVtb3J5KCk6IEltYWdlU3ByaXRlTWVtb3J5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN1cGVyLm1lbW9yeSxcbiAgICAgICAgICAgIHBpeGl2bklkOiB0aGlzLnBpeGl2bklkLFxuICAgICAgICAgICAgbG9hZElzU3RhcnRlZDogdGhpcy5fbG9hZElzU3RhcnRlZCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgYXN5bmMgc2V0TWVtb3J5KG1lbW9yeTogTWVtb3J5IHwgU3ByaXRlTWVtb3J5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCB0ZXh0dXJlRGF0YTogQXNzZXRNZW1vcnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChcInRleHR1cmVEYXRhXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS50ZXh0dXJlRGF0YSkge1xuICAgICAgICAgICAgdGV4dHVyZURhdGEgPSBtZW1vcnkudGV4dHVyZURhdGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiYXNzZXRzRGF0YVwiIGluIG1lbW9yeSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWVtb3J5LmFzc2V0c0RhdGEpICYmIG1lbW9yeS5hc3NldHNEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0ZXh0dXJlRGF0YSA9IG1lbW9yeS5hc3NldHNEYXRhWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0ZXh0dXJlRGF0YSkge1xuICAgICAgICAgICAgaWYgKHRleHR1cmVEYXRhLmFsaWFzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dHVyZUFsaWFzID0gdGV4dHVyZURhdGEuYWxpYXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgc2V0TWVtb3J5SW1hZ2VTcHJpdGUodGhpcywgbWVtb3J5KTtcbiAgICAgICAgdGhpcy5yZWxvYWRQb3NpdGlvbigpO1xuICAgIH1cbiAgICBzdGF0aWMgb3ZlcnJpZGUgZnJvbShzb3VyY2U6IFRleHR1cmUgfCBUZXh0dXJlU291cmNlTGlrZSwgc2tpcENhY2hlPzogYm9vbGVhbikge1xuICAgICAgICBsZXQgc3ByaXRlID0gUElYSS5TcHJpdGUuZnJvbShzb3VyY2UsIHNraXBDYWNoZSk7XG4gICAgICAgIGxldCBteVNwcml0ZSA9IG5ldyBJbWFnZVNwcml0ZSgpO1xuICAgICAgICBteVNwcml0ZS50ZXh0dXJlID0gc3ByaXRlLnRleHR1cmU7XG4gICAgICAgIHJldHVybiBteVNwcml0ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbG9hZElzU3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGdldCBsb2FkSXNTdGFydGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZElzU3RhcnRlZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTG9hZCB0aGUgaW1hZ2UgZnJvbSB0aGUgbGluayBhbmQgc2V0IHRoZSB0ZXh0dXJlIG9mIHRoZSBzcHJpdGUuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgaW1hZ2UgaXMgbG9hZGVkLlxuICAgICAqL1xuICAgIGFzeW5jIGxvYWQoKSB7XG4gICAgICAgIHRoaXMuX2xvYWRJc1N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZ2V0VGV4dHVyZSh0aGlzLnRleHR1cmVBbGlhcylcbiAgICAgICAgICAgIC50aGVuKCh0ZXh0dXJlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZElzU3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dHVyZSA9IHRleHR1cmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRJc1N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJFcnJvciBpbnRvIEltYWdlU3ByaXRlLmxvYWQoKVwiLCBlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldCB0ZXh0dXJlKHZhbHVlOiBUZXh0dXJlPFRleHR1cmVTb3VyY2U8YW55Pj4pIHtcbiAgICAgICAgc3VwZXIudGV4dHVyZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldCB0ZXh0dXJlKCk6IFRleHR1cmU8VGV4dHVyZVNvdXJjZTxhbnk+PiB7XG4gICAgICAgIHJldHVybiBzdXBlci50ZXh0dXJlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSB0ZXh0dXJlIGlzIGVtcHR5LlxuICAgICAqIEByZXR1cm5zIEEgYm9vbGVhbiB0aGF0IGlzIHRydWUgaWYgdGhlIHRleHR1cmUgaXMgZW1wdHkuXG4gICAgICovXG4gICAgZ2V0IGhhdmVFbXB0eVRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHR1cmUuX3NvdXJjZS5sYWJlbCA9PT0gXCJFTVBUWVwiO1xuICAgIH1cbn1cblJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmFkZDxJbWFnZVNwcml0ZU1lbW9yeSwgdHlwZW9mIEltYWdlU3ByaXRlPihJbWFnZVNwcml0ZSwge1xuICAgIG5hbWU6IENBTlZBU19JTUFHRV9JRCxcbiAgICBjb3B5UHJvcGVydHk6IGFzeW5jIChjb21wb25lbnQsIHNvdXJjZSkgPT4ge1xuICAgICAgICBhd2FpdCBzZXRNZW1vcnlJbWFnZVNwcml0ZShjb21wb25lbnQgYXMgSW1hZ2VTcHJpdGUsIHNvdXJjZSwgeyBpZ25vcmVUZXh0dXJlOiB0cnVlIH0pO1xuICAgIH0sXG59KTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldE1lbW9yeUltYWdlU3ByaXRlKFxuICAgIGVsZW1lbnQ6IEltYWdlU3ByaXRlLFxuICAgIG1lbW9yeTogSW1hZ2VTcHJpdGVNZW1vcnkgfCB7fSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgICBpZ25vcmVUZXh0dXJlPzogYm9vbGVhbjtcbiAgICB9LFxuKSB7XG4gICAgcmV0dXJuIGF3YWl0IHNldE1lbW9yeVNwcml0ZShlbGVtZW50LCBtZW1vcnksIHtcbiAgICAgICAgaGFsZjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKFwibG9hZElzU3RhcnRlZFwiIGluIG1lbW9yeSAmJiBtZW1vcnkubG9hZElzU3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGVsZW1lbnQubG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpZ25vcmVUZXh0dXJlOiBvcHRpb25zPy5pZ25vcmVUZXh0dXJlLFxuICAgIH0pO1xufVxuIiwiaW1wb3J0IHR5cGUgeyBUZXh0dXJlLCBUZXh0dXJlU291cmNlTGlrZSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBDQU5WQVNfVklERU9fSUQgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzIH0gZnJvbSBcIi4uL2RlY29yYXRvcnMvY2FudmFzLWVsZW1lbnQtZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBzaG93V2l0aERpc3NvbHZlIH0gZnJvbSBcIi4uL2Z1bmN0aW9ucy9jYW52YXMtdHJhbnNpdGlvblwiO1xuaW1wb3J0IHsgYWRkVmlkZW8gfSBmcm9tIFwiLi4vZnVuY3Rpb25zL3ZpZGVvLXV0aWxpdHlcIjtcbmltcG9ydCBBc3NldE1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9Bc3NldE1lbW9yeVwiO1xuaW1wb3J0IHsgVmlkZW9TcHJpdGVPcHRpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FudmFzLW9wdGlvbnNcIjtcbmltcG9ydCBWaWRlb1Nwcml0ZU1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9tZW1vcnkvVmlkZW9TcHJpdGVNZW1vcnlcIjtcbmltcG9ydCBJbWFnZVNwcml0ZSwgeyBzZXRNZW1vcnlJbWFnZVNwcml0ZSB9IGZyb20gXCIuL0ltYWdlU3ByaXRlXCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyBhIGV4dGVuc2lvbiBvZiB0aGUge0BsaW5rIEltYWdlU3ByaXRlfSBjbGFzcywgaXQgaGFzIHRoZSBzYW1lIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsXG4gKiBidXQgaXQgaGFzIHNvbWUgZmVhdHVyZXMgdGhhdCBtYWtlIHZpZGVvIG1hbmFnZW1lbnQgZWFzaWVyLlxuICogWW91IG5lZWQgdG8gdXNlIHtAbGluayBsb2FkfSB0byBzaG93IHRoZSB2aWRlbyBpbiB0aGUgY2FudmFzLlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIGZvciBmdW5jdGlvbnMgbGlrZSB7QGxpbmsgYWRkVmlkZW99IGFuZCB7QGxpbmsgc2hvd1dpdGhEaXNzb2x2ZX0uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbGV0IGZpbG0gPSBuZXcgVmlkZW9TcHJpdGUoe1xuICogICAgIHg6IDEwMCxcbiAqICAgICB5OiAxMDAsXG4gKiB9LCAnaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy92aWRlby5tcDQnKVxuICogYXdhaXQgZmlsbS5sb2FkKClcbiAqIGNhbnZhcy5hZGQoXCJmaWxtXCIsIGZpbG0pXG4gKiBgYGBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsZXQgZmlsbSA9IGFkZFZpZGVvKFwiZmlsbVwiLCAnaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy92aWRlby5tcDQnKVxuICogZmlsbS5jdXJyZW50VGltZSA9IDJcbiAqIGF3YWl0IGZpbG0ubG9hZCgpXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlkZW9TcHJpdGUgZXh0ZW5kcyBJbWFnZVNwcml0ZTxWaWRlb1Nwcml0ZU1lbW9yeT4ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBWaWRlb1Nwcml0ZU9wdGlvbnMgfCBUZXh0dXJlIHwgdW5kZWZpbmVkLCB0ZXh0dXJlQWxpYXM/OiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGxvb3AgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBwYXVzZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgXCJsb29wXCIgaW4gb3B0aW9ucyAmJiBvcHRpb25zPy5sb29wICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvb3AgPSBvcHRpb25zLmxvb3A7XG4gICAgICAgICAgICBkZWxldGUgb3B0aW9ucy5sb29wO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zICYmIFwicGF1c2VkXCIgaW4gb3B0aW9ucyAmJiBvcHRpb25zPy5wYXVzZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGF1c2VkID0gb3B0aW9ucy5wYXVzZWQ7XG4gICAgICAgICAgICBkZWxldGUgb3B0aW9ucy5wYXVzZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgXCJjdXJyZW50VGltZVwiIGluIG9wdGlvbnMgJiYgb3B0aW9ucz8uY3VycmVudFRpbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY3VycmVudFRpbWUgPSBvcHRpb25zLmN1cnJlbnRUaW1lO1xuICAgICAgICAgICAgZGVsZXRlIG9wdGlvbnMuY3VycmVudFRpbWU7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIob3B0aW9ucywgdGV4dHVyZUFsaWFzKTtcbiAgICAgICAgaWYgKGxvb3ApIHtcbiAgICAgICAgICAgIHRoaXMubG9vcCA9IGxvb3A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSBwYXVzZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gY3VycmVudFRpbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVhZG9ubHkgcGl4aXZuSWQ6IHN0cmluZyA9IENBTlZBU19WSURFT19JRDtcbiAgICBvdmVycmlkZSBnZXQgbWVtb3J5KCk6IFZpZGVvU3ByaXRlTWVtb3J5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN1cGVyLm1lbW9yeSxcbiAgICAgICAgICAgIHBpeGl2bklkOiB0aGlzLnBpeGl2bklkLFxuICAgICAgICAgICAgbG9vcDogdGhpcy5sb29wLFxuICAgICAgICAgICAgcGF1c2VkOiB0aGlzLl9wYXVzZWQsXG4gICAgICAgICAgICBjdXJyZW50VGltZTogdGhpcy5jdXJyZW50VGltZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgYXN5bmMgc2V0TWVtb3J5KHZhbHVlOiBWaWRlb1Nwcml0ZU1lbW9yeSkge1xuICAgICAgICBhd2FpdCBzZXRNZW1vcnlWaWRlb1Nwcml0ZSh0aGlzLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgc3RhdGljIG92ZXJyaWRlIGZyb20oc291cmNlOiBUZXh0dXJlIHwgVGV4dHVyZVNvdXJjZUxpa2UsIHNraXBDYWNoZT86IGJvb2xlYW4pIHtcbiAgICAgICAgbGV0IHNwcml0ZSA9IFBJWEkuU3ByaXRlLmZyb20oc291cmNlLCBza2lwQ2FjaGUpO1xuICAgICAgICBsZXQgbXlTcHJpdGUgPSBuZXcgVmlkZW9TcHJpdGUoKTtcbiAgICAgICAgbXlTcHJpdGUudGV4dHVyZSA9IHNwcml0ZS50ZXh0dXJlO1xuICAgICAgICByZXR1cm4gbXlTcHJpdGU7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgYXN5bmMgbG9hZCgpIHtcbiAgICAgICAgYXdhaXQgc3VwZXIubG9hZCgpO1xuICAgICAgICB0aGlzLmxvb3AgPSB0aGlzLl9sb29vcDtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuX2N1cnJlbnRUaW1lO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRoaXMuX3BhdXNlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9sb29vcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIGlmIHlvdSB3YW50IHRoZSB2aWRlbyB0byBsb29wLlxuICAgICAqL1xuICAgIGdldCBsb29wKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlPy5zb3VyY2U/LnJlc291cmNlPy5sb29wIHx8IGZhbHNlO1xuICAgIH1cbiAgICBzZXQgbG9vcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9sb29vcCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy50ZXh0dXJlPy5zb3VyY2U/LnJlc291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHR1cmUuc291cmNlLnJlc291cmNlLmxvb3AgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3BhdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIGlmIHlvdSB3YW50IHRoZSB2aWRlbyB0byBiZSBwYXVzZWQuXG4gICAgICovXG4gICAgZ2V0IHBhdXNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dHVyZT8uc291cmNlPy5yZXNvdXJjZT8ucGF1c2VkIHx8IGZhbHNlO1xuICAgIH1cbiAgICBzZXQgcGF1c2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUGF1c2UgdGhlIHZpZGVvLlxuICAgICAqL1xuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLl9wYXVzZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy50ZXh0dXJlPy5zb3VyY2U/LnJlc291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHR1cmUuc291cmNlLnJlc291cmNlLnBhdXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgdmlkZW8uXG4gICAgICovXG4gICAgcGxheSgpIHtcbiAgICAgICAgdGhpcy5fcGF1c2VkID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRleHR1cmU/LnNvdXJjZT8ucmVzb3VyY2U/LnBsYXkgJiYgdHlwZW9mIHRoaXMudGV4dHVyZS5zb3VyY2UucmVzb3VyY2UucGxheSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnRleHR1cmUuc291cmNlLnJlc291cmNlLnBsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2N1cnJlbnRUaW1lOiBudW1iZXIgPSAwO1xuICAgIC8qKlxuICAgICAqIFRoZSBjdXJyZW50IHRpbWUgb2YgdGhlIHZpZGVvLlxuICAgICAqL1xuICAgIGdldCBjdXJyZW50VGltZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlPy5zb3VyY2U/LnJlc291cmNlPy5jdXJyZW50VGltZSB8fCAwO1xuICAgIH1cbiAgICBzZXQgY3VycmVudFRpbWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICBsZXQgZHVyYXRpb24gPSB0aGlzLmR1cmF0aW9uO1xuICAgICAgICBpZiAoZHVyYXRpb24gJiYgdmFsdWUgPj0gZHVyYXRpb24pIHtcbiAgICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jdXJyZW50VGltZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy50ZXh0dXJlPy5zb3VyY2U/LnJlc291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHR1cmUuc291cmNlLnJlc291cmNlLmN1cnJlbnRUaW1lID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXN0YXJ0IHRoZSB2aWRlby5cbiAgICAgKi9cbiAgICByZXN0YXJ0KCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIHZpZGVvLlxuICAgICAqL1xuICAgIGdldCBkdXJhdGlvbigpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy50ZXh0dXJlPy5zb3VyY2U/LnJlc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlLnNvdXJjZS5yZXNvdXJjZS5kdXJhdGlvbiB8fCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuUmVnaXN0ZXJlZENhbnZhc0NvbXBvbmVudHMuYWRkPFZpZGVvU3ByaXRlTWVtb3J5LCB0eXBlb2YgVmlkZW9TcHJpdGU+KFZpZGVvU3ByaXRlLCB7XG4gICAgbmFtZTogQ0FOVkFTX1ZJREVPX0lELFxuICAgIGdldEluc3RhbmNlOiBhc3luYyAodHlwZSwgbWVtb3J5KSA9PiB7XG4gICAgICAgIGxldCB0ZXh0dXJlRGF0YTogQXNzZXRNZW1vcnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChcInRleHR1cmVEYXRhXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS50ZXh0dXJlRGF0YSkge1xuICAgICAgICAgICAgdGV4dHVyZURhdGEgPSBtZW1vcnkudGV4dHVyZURhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgdHlwZSh1bmRlZmluZWQsIHRleHR1cmVEYXRhPy5hbGlhcyk7XG4gICAgICAgIGF3YWl0IGluc3RhbmNlLnNldE1lbW9yeShtZW1vcnkpO1xuICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfSxcbiAgICBjb3B5UHJvcGVydHk6IGFzeW5jIChjb21wb25lbnQsIHNvdXJjZSkgPT4ge1xuICAgICAgICBhd2FpdCBzZXRNZW1vcnlWaWRlb1Nwcml0ZShjb21wb25lbnQgYXMgVmlkZW9TcHJpdGUsIHNvdXJjZSwgeyBpZ25vcmVUZXh0dXJlOiB0cnVlIH0pO1xuICAgIH0sXG59KTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldE1lbW9yeVZpZGVvU3ByaXRlKFxuICAgIGVsZW1lbnQ6IFZpZGVvU3ByaXRlLFxuICAgIG1lbW9yeTogVmlkZW9TcHJpdGVNZW1vcnkgfCB7fSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgICBpZ25vcmVUZXh0dXJlPzogYm9vbGVhbjtcbiAgICB9LFxuKSB7XG4gICAgYXdhaXQgc2V0TWVtb3J5SW1hZ2VTcHJpdGUoZWxlbWVudCwgbWVtb3J5LCB7IGlnbm9yZVRleHR1cmU6IG9wdGlvbnM/Lmlnbm9yZVRleHR1cmUgfSk7XG4gICAgXCJsb29wXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5sb29wICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQubG9vcCA9IG1lbW9yeS5sb29wKTtcbiAgICBcImN1cnJlbnRUaW1lXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5jdXJyZW50VGltZSAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LmN1cnJlbnRUaW1lID0gbWVtb3J5LmN1cnJlbnRUaW1lKTtcbiAgICBcInBhdXNlZFwiIGluIG1lbW9yeSAmJiBtZW1vcnkucGF1c2VkICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQucGF1c2VkID0gbWVtb3J5LnBhdXNlZCk7XG59XG4iLCJpbXBvcnQgeyBkZWZhdWx0IGFzIFBJWEkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCBkYiBmcm9tIFwibWltZS1kYlwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJZlZpZGVvKHRleHR1cmVBbGlhczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FjaGVkVGV4dHVyZSA9IFBJWEkuQXNzZXRzLmNhY2hlLmhhcyh0ZXh0dXJlQWxpYXMpID8gUElYSS5Bc3NldHMuZ2V0KHRleHR1cmVBbGlhcykgOiBudWxsO1xuXG4gICAgaWYgKGNhY2hlZFRleHR1cmUgaW5zdGFuY2VvZiBQSVhJLlRleHR1cmUpIHtcbiAgICAgICAgdGV4dHVyZUFsaWFzID0gY2FjaGVkVGV4dHVyZS5zb3VyY2U/LmxhYmVsIHx8IHRleHR1cmVBbGlhcztcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWaWRlb1BhdGgodGV4dHVyZUFsaWFzKTtcbn1cblxuZnVuY3Rpb24gaXNWaWRlb1BhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXh0ID0gcGF0aC5zcGxpdChcIi5cIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFleHQpIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoY29uc3QgW21pbWUsIGRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKGRiKSkge1xuICAgICAgICBpZiAoZGF0YS5leHRlbnNpb25zPy5pbmNsdWRlcyhleHQpICYmIG1pbWUuc3RhcnRzV2l0aChcInZpZGVvL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIiwiaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlUG9pbnQsIFBvaW50RGF0YSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyRXZlbnRzLCBFdmVudEVtaXR0ZXIsIENvbnRhaW5lciBhcyBQaXhpQ29udGFpbmVyIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBDQU5WQVNfQ09OVEFJTkVSX0lEIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IENhbnZhc0Jhc2VJdGVtIGZyb20gXCIuLi9jbGFzc2VzL0NhbnZhc0Jhc2VJdGVtXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLCBzZXRNZW1vcnlDb250YWluZXIgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9jYW52YXMtZWxlbWVudC1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGltcG9ydENhbnZhc0VsZW1lbnQgfSBmcm9tIFwiLi4vZnVuY3Rpb25zL2NhbnZhcy1pbXBvcnQtdXRpbGl0eVwiO1xuaW1wb3J0IHsgZ2V0TWVtb3J5Q29udGFpbmVyIH0gZnJvbSBcIi4uL2Z1bmN0aW9ucy9jYW52YXMtbWVtb3J5LXV0aWxpdHlcIjtcbmltcG9ydCB7IENhbnZhc1Byb3BlcnR5VXRpbGl0eSBhcyBQcm9wc1V0aWxzIH0gZnJvbSBcIi4uL2Z1bmN0aW9ucy9jYW52YXMtcHJvcGVydHktdXRpbGl0eVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyT3B0aW9ucyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbnZhcy1vcHRpb25zXCI7XG5pbXBvcnQgQ29udGFpbmVyTWVtb3J5IGZyb20gXCIuLi9pbnRlcmZhY2VzL21lbW9yeS9Db250YWluZXJNZW1vcnlcIjtcbmltcG9ydCBDb250YWluZXJDaGlsZCBmcm9tIFwiLi4vdHlwZXMvQ29udGFpbmVyQ2hpbGRcIjtcbmltcG9ydCBBZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uLCB7IGFuYWxpemVQb3NpdGlvbnNFeHRlbnNpb25Qcm9wcyB9IGZyb20gXCIuL0FkZGl0aW9uYWxQb3NpdGlvbnNFeHRlbnNpb25cIjtcbmltcG9ydCBBbmNob3JFeHRlbnNpb24gZnJvbSBcIi4vQW5jaG9yRXh0ZW5zaW9uXCI7XG5pbXBvcnQgTGlzdGVuZXJFeHRlbnNpb24sIHsgYWRkTGlzdGVuZXJIYW5kbGVyLCBPbkV2ZW50c0hhbmRsZXJzIH0gZnJvbSBcIi4vTGlzdGVuZXJFeHRlbnNpb25cIjtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgZXh0ZW5zaW9uIG9mIHRoZSBbUElYSS5Db250YWluZXIgY2xhc3NdKGh0dHBzOi8vcGl4aWpzLmNvbS84LngvZXhhbXBsZXMvYmFzaWMvY29udGFpbmVyKSwgaXQgaGFzIHRoZSBzYW1lIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsXG4gKiBidXQgaXQgaGFzIHRoZSBhYmlsaXR5IHRvIGJlIHNhdmVkIGFuZCBsb2FkZWQgYnkgdGhlIFBpeGnigJlWTiBsaWJyYXJ5LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBjb25zdCBjb250YWluZXIgPSBuZXcgQ29udGFpbmVyKCk7XG4gKiAgY2FudmFzLmFkZChjb250YWluZXIpO1xuICogIGNvbnN0IHRleHR1cmUgPSBhd2FpdCBBc3NldHMubG9hZCgnaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy9idW5ueS5wbmcnKTtcbiAqICBmb3IgKGxldCBpID0gMDsgaSA8IDI1OyBpKyspXG4gKiAge1xuICogICAgICBjb25zdCBidW5ueSA9IG5ldyBTcHJpdGUodGV4dHVyZSk7XG4gKiAgICAgIGJ1bm55LnggPSAoaSAlIDUpICogNDA7XG4gKiAgICAgIGJ1bm55LnkgPSBNYXRoLmZsb29yKGkgLyA1KSAqIDQwO1xuICogICAgICBjb250YWluZXIuYWRkQ2hpbGQoYnVubnkpO1xuICogIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250YWluZXI8XG4gICAgQyBleHRlbmRzIENvbnRhaW5lckNoaWxkID0gQ29udGFpbmVyQ2hpbGQsXG4gICAgTWVtb3J5IGV4dGVuZHMgQ29udGFpbmVyTWVtb3J5ID0gQ29udGFpbmVyTWVtb3J5LFxuPlxuICAgIGV4dGVuZHMgUGl4aUNvbnRhaW5lcjxDPlxuICAgIGltcGxlbWVudHMgQ2FudmFzQmFzZUl0ZW08TWVtb3J5PiwgTGlzdGVuZXJFeHRlbnNpb24sIEFuY2hvckV4dGVuc2lvbiwgQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvblxue1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBDb250YWluZXJPcHRpb25zPEM+KSB7XG4gICAgICAgIG9wdGlvbnMgPSBhbmFsaXplUG9zaXRpb25zRXh0ZW5zaW9uUHJvcHMob3B0aW9ucyBhcyBhbnkpO1xuICAgICAgICBsZXQgYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBwZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBhbmNob3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChvcHRpb25zICYmIFwiYW5jaG9yXCIgaW4gb3B0aW9ucyAmJiBvcHRpb25zPy5hbmNob3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYW5jaG9yID0gb3B0aW9ucy5hbmNob3I7XG4gICAgICAgICAgICBkZWxldGUgb3B0aW9ucy5hbmNob3I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgXCJhbGlnblwiIGluIG9wdGlvbnMgJiYgb3B0aW9ucz8uYWxpZ24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWxpZ24gPSBvcHRpb25zLmFsaWduO1xuICAgICAgICAgICAgZGVsZXRlIG9wdGlvbnMuYWxpZ247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgXCJwZXJjZW50YWdlUG9zaXRpb25cIiBpbiBvcHRpb25zICYmIG9wdGlvbnM/LnBlcmNlbnRhZ2VQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwZXJjZW50YWdlUG9zaXRpb24gPSBvcHRpb25zLnBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLnBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5waXhpdm5JZCA9IHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLnBpeGl2bklkIHx8IENBTlZBU19DT05UQUlORVJfSUQ7XG4gICAgICAgIGlmIChhbmNob3IpIHtcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yID0gYW5jaG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGlnbikge1xuICAgICAgICAgICAgdGhpcy5hbGlnbiA9IGFsaWduO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJjZW50YWdlUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGVyY2VudGFnZVBvc2l0aW9uID0gcGVyY2VudGFnZVBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlYWRvbmx5IHBpeGl2bklkOiBzdHJpbmcgPSBDQU5WQVNfQ09OVEFJTkVSX0lEO1xuICAgIGdldCBtZW1vcnkoKTogTWVtb3J5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLihnZXRNZW1vcnlDb250YWluZXIodGhpcywgeyBjaGlsZHJlbkV4cG9ydDogdHJ1ZSB9KSBhcyBNZW1vcnkpLFxuICAgICAgICAgICAgYW5jaG9yOiB0aGlzLl9hbmNob3IgPyB0aGlzLmFuY2hvciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLl9hbGlnbixcbiAgICAgICAgICAgIHBlcmNlbnRhZ2VQb3NpdGlvbjogdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3luYyBzZXRNZW1vcnkodmFsdWU6IE1lbW9yeSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmltcG9ydENoaWxkcmVuKHZhbHVlKTtcbiAgICAgICAgYXdhaXQgc2V0TWVtb3J5Q29udGFpbmVyKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZWxvYWRBbmNob3IoKTtcbiAgICAgICAgdGhpcy5yZWxvYWRQb3NpdGlvbigpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaW1wb3J0Q2hpbGRyZW4odmFsdWU6IE1lbW9yeSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGQgPSB2YWx1ZS5lbGVtZW50c1tpXTtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXdhaXQgaW1wb3J0Q2FudmFzRWxlbWVudDxhbnksIEM+KGNoaWxkKTtcbiAgICAgICAgICAgIHRoaXMuYWRkQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTGlzdGVuZXJFeHRlbnNpb24gKi9cblxuICAgIHJlYWRvbmx5IG9uRXZlbnRzSGFuZGxlcnM6IE9uRXZlbnRzSGFuZGxlcnMgPSB7fTtcbiAgICBvdmVycmlkZSBvbjxUIGV4dGVuZHMga2V5b2YgQ29udGFpbmVyRXZlbnRzPEM+IHwga2V5b2YgeyBbSzogc3ltYm9sXTogYW55OyBbSzoge30gJiBzdHJpbmddOiBhbnkgfT4oXG4gICAgICAgIGV2ZW50OiBULFxuICAgICAgICBmbjogKFxuICAgICAgICAgICAgLi4uYXJnczogW1xuICAgICAgICAgICAgICAgIC4uLkV2ZW50RW1pdHRlci5Bcmd1bWVudE1hcDxDb250YWluZXJFdmVudHM8Qz4gJiB7IFtLOiBzeW1ib2xdOiBhbnk7IFtLOiB7fSAmIHN0cmluZ106IGFueSB9PltFeHRyYWN0PFxuICAgICAgICAgICAgICAgICAgICBULFxuICAgICAgICAgICAgICAgICAgICBrZXlvZiBDb250YWluZXJFdmVudHM8Qz4gfCBrZXlvZiB7IFtLOiBzeW1ib2xdOiBhbnk7IFtLOiB7fSAmIHN0cmluZ106IGFueSB9XG4gICAgICAgICAgICAgICAgPl0sXG4gICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMsXG4gICAgICAgICAgICBdXG4gICAgICAgICkgPT4gdm9pZCxcbiAgICAgICAgY29udGV4dD86IGFueSxcbiAgICApOiB0aGlzIHtcbiAgICAgICAgYWRkTGlzdGVuZXJIYW5kbGVyKGV2ZW50LCB0aGlzLCBmbik7XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLm9uPFQ+KGV2ZW50LCAoLi4uZSkgPT4gZm4oLi4uZSwgdGhpcyksIGNvbnRleHQpO1xuICAgIH1cblxuICAgIC8qKiBBbmNob3IgKi9cblxuICAgIHByaXZhdGUgX2FuY2hvcj86IFBvaW50RGF0YTtcbiAgICBnZXQgYW5jaG9yKCk6IFBvaW50RGF0YSB7XG4gICAgICAgIGxldCB4ID0gc3VwZXIucGl2b3QueCAvIHRoaXMud2lkdGg7XG4gICAgICAgIGxldCB5ID0gc3VwZXIucGl2b3QueSAvIHRoaXMuaGVpZ2h0O1xuICAgICAgICByZXR1cm4geyB4LCB5IH07XG4gICAgfVxuICAgIHNldCBhbmNob3IodmFsdWU6IFBvaW50RGF0YSB8IG51bWJlcikge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB0aGlzLl9hbmNob3IgPSB7IHg6IHZhbHVlLCB5OiB2YWx1ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fYW5jaG9yID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWxvYWRBbmNob3IoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbG9hZEFuY2hvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FuY2hvcikge1xuICAgICAgICAgICAgc3VwZXIucGl2b3Quc2V0KHRoaXMuX2FuY2hvci54ICogdGhpcy53aWR0aCwgdGhpcy5fYW5jaG9yLnkgKiB0aGlzLmhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0IHBpdm90KCkge1xuICAgICAgICByZXR1cm4gc3VwZXIucGl2b3Q7XG4gICAgfVxuICAgIG92ZXJyaWRlIHNldCBwaXZvdCh2YWx1ZTogT2JzZXJ2YWJsZVBvaW50KSB7XG4gICAgICAgIHRoaXMuX2FuY2hvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgc3VwZXIucGl2b3QgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQWRkaXRpb25hbFBvc2l0aW9ucyAqL1xuXG4gICAgcHJpdmF0ZSBfYWxpZ246IFBhcnRpYWw8UG9pbnREYXRhPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBzZXQgYWxpZ24odmFsdWU6IFBhcnRpYWw8UG9pbnREYXRhPiB8IG51bWJlcikge1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2FsaWduID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduID0ge30pO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB0aGlzLl9hbGlnbi54ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9hbGlnbi55ID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZS54ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduLnggPSB2YWx1ZS54KTtcbiAgICAgICAgICAgIHZhbHVlLnkgIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fYWxpZ24ueSA9IHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IGFsaWduKCkge1xuICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgbGV0IHN1cGVyU2NhbGUgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5zY2FsZSwgdGhpcy5hbmdsZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBQcm9wc1V0aWxzLmNhbGN1bGF0ZUFsaWduQnlQb3NpdGlvbihcbiAgICAgICAgICAgICAgICBcIndpZHRoXCIsXG4gICAgICAgICAgICAgICAgdGhpcy54LFxuICAgICAgICAgICAgICAgIFByb3BzVXRpbHMuZ2V0U3VwZXJXaWR0aCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzdXBlclBpdm90LngsXG4gICAgICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB5OiBQcm9wc1V0aWxzLmNhbGN1bGF0ZUFsaWduQnlQb3NpdGlvbihcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIHRoaXMueSxcbiAgICAgICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVySGVpZ2h0KHRoaXMpLFxuICAgICAgICAgICAgICAgIHN1cGVyUGl2b3QueSxcbiAgICAgICAgICAgICAgICBzdXBlclNjYWxlLnkgPCAwLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc2V0IHhBbGlnbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hbGlnbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9hbGlnbiA9IHt9KTtcbiAgICAgICAgdGhpcy5fYWxpZ24ueCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIGdldCB4QWxpZ24oKSB7XG4gICAgICAgIGxldCBzdXBlclBpdm90ID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMucGl2b3QsIHRoaXMuYW5nbGUpO1xuICAgICAgICBsZXQgc3VwZXJTY2FsZSA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnNjYWxlLCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIFByb3BzVXRpbHMuY2FsY3VsYXRlQWxpZ25CeVBvc2l0aW9uKFxuICAgICAgICAgICAgXCJ3aWR0aFwiLFxuICAgICAgICAgICAgdGhpcy54LFxuICAgICAgICAgICAgUHJvcHNVdGlscy5nZXRTdXBlcldpZHRoKHRoaXMpLFxuICAgICAgICAgICAgc3VwZXJQaXZvdC54LFxuICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgKTtcbiAgICB9XG4gICAgc2V0IHlBbGlnbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hbGlnbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9hbGlnbiA9IHt9KTtcbiAgICAgICAgdGhpcy5fYWxpZ24ueSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIGdldCB5QWxpZ24oKSB7XG4gICAgICAgIGxldCBzdXBlclBpdm90ID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMucGl2b3QsIHRoaXMuYW5nbGUpO1xuICAgICAgICBsZXQgc3VwZXJTY2FsZSA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnNjYWxlLCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIFByb3BzVXRpbHMuY2FsY3VsYXRlQWxpZ25CeVBvc2l0aW9uKFxuICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgIHRoaXMueSxcbiAgICAgICAgICAgIFByb3BzVXRpbHMuZ2V0U3VwZXJIZWlnaHQodGhpcyksXG4gICAgICAgICAgICBzdXBlclBpdm90LnksXG4gICAgICAgICAgICBzdXBlclNjYWxlLnkgPCAwLFxuICAgICAgICApO1xuICAgIH1cbiAgICBwcml2YXRlIF9wZXJjZW50YWdlUG9zaXRpb246IFBhcnRpYWw8UG9pbnREYXRhPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBzZXQgcGVyY2VudGFnZVBvc2l0aW9uKHZhbHVlOiBQYXJ0aWFsPFBvaW50RGF0YT4gfCBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB7fSk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi54ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24ueSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUueCAhPT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24ueCA9IHZhbHVlLngpO1xuICAgICAgICAgICAgdmFsdWUueSAhPT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24ueSA9IHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IHBlcmNlbnRhZ2VQb3NpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IFByb3BzVXRpbHMuY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbihcIndpZHRoXCIsIHRoaXMueCksXG4gICAgICAgICAgICB5OiBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBlcmNlbnRhZ2VQb3NpdGlvbkJ5UG9zaXRpb24oXCJoZWlnaHRcIiwgdGhpcy55KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc2V0IHBlcmNlbnRhZ2VYKF92YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9hbGlnbikge1xuICAgICAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHt9KTtcbiAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnggPSBfdmFsdWU7XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IHBlcmNlbnRhZ2VYKCkge1xuICAgICAgICByZXR1cm4gUHJvcHNVdGlscy5jYWxjdWxhdGVQZXJjZW50YWdlUG9zaXRpb25CeVBvc2l0aW9uKFwid2lkdGhcIiwgdGhpcy54KTtcbiAgICB9XG4gICAgc2V0IHBlcmNlbnRhZ2VZKF92YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9hbGlnbikge1xuICAgICAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHt9KTtcbiAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkgPSBfdmFsdWU7XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IHBlcmNlbnRhZ2VZKCkge1xuICAgICAgICByZXR1cm4gUHJvcHNVdGlscy5jYWxjdWxhdGVQZXJjZW50YWdlUG9zaXRpb25CeVBvc2l0aW9uKFwiaGVpZ2h0XCIsIHRoaXMueSk7XG4gICAgfVxuICAgIGdldCBwb3NpdGlvblR5cGUoKTogXCJwaXhlbFwiIHwgXCJwZXJjZW50YWdlXCIgfCBcImFsaWduXCIge1xuICAgICAgICBpZiAodGhpcy5fYWxpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWduXCI7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJwZXJjZW50YWdlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwicGl4ZWxcIjtcbiAgICB9XG4gICAgZ2V0IHBvc2l0aW9uSW5mbygpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB0eXBlOiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIiB9IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImFsaWduXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy54QWxpZ24sIHk6IHRoaXMueUFsaWduLCB0eXBlOiBcImFsaWduXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJwZXJjZW50YWdlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy5wZXJjZW50YWdlWCwgeTogdGhpcy5wZXJjZW50YWdlWSwgdHlwZTogXCJwZXJjZW50YWdlXCIgfTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy54LCB5OiB0aGlzLnksIHR5cGU6IFwicGl4ZWxcIiB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldCBwb3NpdGlvbkluZm8odmFsdWU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHR5cGU/OiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIiB9KSB7XG4gICAgICAgIGlmICh2YWx1ZS50eXBlID09PSBcImFsaWduXCIpIHtcbiAgICAgICAgICAgIHRoaXMuYWxpZ24gPSB7IHg6IHZhbHVlLngsIHk6IHZhbHVlLnkgfTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS50eXBlID09PSBcInBlcmNlbnRhZ2VcIikge1xuICAgICAgICAgICAgdGhpcy5wZXJjZW50YWdlUG9zaXRpb24gPSB7IHg6IHZhbHVlLngsIHk6IHZhbHVlLnkgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24uc2V0KHZhbHVlLngsIHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCByZWxvYWRQb3NpdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FsaWduKSB7XG4gICAgICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgICAgIGxldCBzdXBlclNjYWxlID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMuc2NhbGUsIHRoaXMuYW5nbGUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FsaWduLnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnggPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgICAgICAgICAgICAgXCJ3aWR0aFwiLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbGlnbi54LFxuICAgICAgICAgICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVyV2lkdGgodGhpcyksXG4gICAgICAgICAgICAgICAgICAgIHN1cGVyUGl2b3QueCxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX2FsaWduLnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnkgPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWxpZ24ueSxcbiAgICAgICAgICAgICAgICAgICAgUHJvcHNVdGlscy5nZXRTdXBlckhlaWdodCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgICAgICAgICBzdXBlclNjYWxlLnkgPCAwLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnggPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24oXCJ3aWR0aFwiLCB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24ueCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnkgPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24oXCJoZWlnaHRcIiwgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBwb3NpdGlvbigpOiBPYnNlcnZhYmxlUG9pbnQge1xuICAgICAgICByZXR1cm4gc3VwZXIucG9zaXRpb247XG4gICAgfVxuICAgIHNldCBwb3NpdGlvbih2YWx1ZTogT2JzZXJ2YWJsZVBvaW50KSB7XG4gICAgICAgIHRoaXMuX2FsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN1cGVyLnBvc2l0aW9uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBzdXBlci54O1xuICAgIH1cbiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2FsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN1cGVyLnggPSB2YWx1ZTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0IHkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnk7XG4gICAgfVxuICAgIG92ZXJyaWRlIHNldCB5KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgc3VwZXIueSA9IHZhbHVlO1xuICAgIH1cbn1cblJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmFkZDxDb250YWluZXJNZW1vcnksIHR5cGVvZiBDb250YWluZXI+KENvbnRhaW5lciwge1xuICAgIG5hbWU6IENBTlZBU19DT05UQUlORVJfSUQsXG4gICAgY29weVByb3BlcnR5OiBhc3luYyAoY29tcG9uZW50LCBtZW1vcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHNldE1lbW9yeUNvbnRhaW5lcihjb21wb25lbnQgYXMgQ29udGFpbmVyLCBtZW1vcnkpO1xuICAgIH0sXG59KTtcbiIsImltcG9ydCB0eXBlIHsgVGV4dHVyZSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBDQU5WQVNfSU1BR0VfQ09OVEFJTkVSX0lEIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xvZy11dGlsaXR5XCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLCBzZXRNZW1vcnlDb250YWluZXIgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9jYW52YXMtZWxlbWVudC1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGNoZWNrSWZWaWRlbyB9IGZyb20gXCIuLi9mdW5jdGlvbnMvY2FudmFzLXV0aWxpdHlcIjtcbmltcG9ydCB7IEltYWdlQ29udGFpbmVyT3B0aW9ucyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbnZhcy1vcHRpb25zXCI7XG5pbXBvcnQgSW1hZ2VDb250YWluZXJNZW1vcnkgZnJvbSBcIi4uL2ludGVyZmFjZXMvbWVtb3J5L0ltYWdlQ29udGFpbmVyTWVtb3J5XCI7XG5pbXBvcnQgeyBhbmFsaXplUG9zaXRpb25zRXh0ZW5zaW9uUHJvcHMgfSBmcm9tIFwiLi9BZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uXCI7XG5pbXBvcnQgQ29udGFpbmVyIGZyb20gXCIuL0NvbnRhaW5lclwiO1xuaW1wb3J0IEltYWdlU3ByaXRlIGZyb20gXCIuL0ltYWdlU3ByaXRlXCI7XG5pbXBvcnQgVmlkZW9TcHJpdGUgZnJvbSBcIi4vVmlkZW9TcHJpdGVcIjtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgZXh0ZW5zaW9uIG9mIHRoZSB7QGxpbmsgQ29udGFpbmVyfSwgaXQgaGFzIHRoZSBzYW1lIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsXG4gKiBidXQgdGhpcyBjb250YWluZXIgaXMgY29tcG9zZWQgb25seSBvZiB7QGxpbmsgSW1hZ2VTcHJpdGV9IGFuZCBpbnRyb2R1Y2VzIHRoZSB7QGxpbmsgbG9hZH0gZnVuY3Rpb25hbGl0eVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBjb25zdCBsaWFtQm9keUltYWdlVXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vYXNzZXRzL2xpYW0vYm9keS5wbmcnO1xuICogIGNvbnN0IGxpYW1IZWFkSW1hZ2VVcmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9hc3NldHMvbGlhbS9oZWFkLnBuZyc7XG4gKiAgY29uc3QgY29udGFpbmVyID0gbmV3IEltYWdlQ29udGFpbmVyKHVuZGVmaW5lZCwgW2xpYW1Cb2R5SW1hZ2VVcmwsIGxpYW1IZWFkSW1hZ2VVcmxdKTtcbiAqICBhd2FpdCBjb250YWluZXIubG9hZCgpXG4gKiAgY2FudmFzLmFkZChjb250YWluZXIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEltYWdlQ29udGFpbmVyIGV4dGVuZHMgQ29udGFpbmVyPEltYWdlU3ByaXRlLCBJbWFnZUNvbnRhaW5lck1lbW9yeT4ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBJbWFnZUNvbnRhaW5lck9wdGlvbnM8SW1hZ2VTcHJpdGU+LCB0ZXh0dXJlQWxpYXNlczogc3RyaW5nW10gPSBbXSkge1xuICAgICAgICBvcHRpb25zID0gYW5hbGl6ZVBvc2l0aW9uc0V4dGVuc2lvblByb3BzKG9wdGlvbnMgYXMgYW55KTtcbiAgICAgICAgbGV0IGFsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgcGVyY2VudGFnZVBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAob3B0aW9ucyAmJiBcImFuY2hvclwiIGluIG9wdGlvbnMgJiYgb3B0aW9ucz8uYW5jaG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFuY2hvciA9IG9wdGlvbnMuYW5jaG9yO1xuICAgICAgICAgICAgZGVsZXRlIG9wdGlvbnMuYW5jaG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zICYmIFwiYWxpZ25cIiBpbiBvcHRpb25zICYmIG9wdGlvbnM/LmFsaWduICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFsaWduID0gb3B0aW9ucy5hbGlnbjtcbiAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLmFsaWduO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zICYmIFwicGVyY2VudGFnZVBvc2l0aW9uXCIgaW4gb3B0aW9ucyAmJiBvcHRpb25zPy5wZXJjZW50YWdlUG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGVyY2VudGFnZVBvc2l0aW9uID0gb3B0aW9ucy5wZXJjZW50YWdlUG9zaXRpb247XG4gICAgICAgICAgICBkZWxldGUgb3B0aW9ucy5wZXJjZW50YWdlUG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMgPSBhbmFsaXplUG9zaXRpb25zRXh0ZW5zaW9uUHJvcHMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0ZXh0dXJlQWxpYXNlcykge1xuICAgICAgICAgICAgdGV4dHVyZUFsaWFzZXMuZm9yRWFjaCgodGV4dHVyZUFsaWFzKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tJZlZpZGVvKHRleHR1cmVBbGlhcykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50ID0gbmV3IFZpZGVvU3ByaXRlKHVuZGVmaW5lZCwgdGV4dHVyZUFsaWFzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQgPSBuZXcgSW1hZ2VTcHJpdGUodW5kZWZpbmVkLCB0ZXh0dXJlQWxpYXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmFkZENoaWxkKGNvbXBvbmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYW5jaG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvciA9IGFuY2hvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxpZ24pIHtcbiAgICAgICAgICAgIHRoaXMuYWxpZ24gPSBhbGlnbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmNlbnRhZ2VQb3NpdGlvbiA9IHBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvdmVycmlkZSBnZXQgbWVtb3J5KCk6IEltYWdlQ29udGFpbmVyTWVtb3J5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN1cGVyLm1lbW9yeSxcbiAgICAgICAgICAgIHBpeGl2bklkOiBDQU5WQVNfSU1BR0VfQ09OVEFJTkVSX0lELFxuICAgICAgICAgICAgbG9hZElzU3RhcnRlZDogdGhpcy5fbG9hZElzU3RhcnRlZCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgYXN5bmMgc2V0TWVtb3J5KHZhbHVlOiBJbWFnZUNvbnRhaW5lck1lbW9yeSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmltcG9ydENoaWxkcmVuKHZhbHVlKTtcbiAgICAgICAgYXdhaXQgc2V0TWVtb3J5SW1hZ2VDb250YWluZXIodGhpcywgdmFsdWUpO1xuICAgICAgICB0aGlzLnJlbG9hZEFuY2hvcigpO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIHJlYWRvbmx5IHBpeGl2bklkOiBzdHJpbmcgPSBDQU5WQVNfSU1BR0VfQ09OVEFJTkVSX0lEO1xuICAgIHByaXZhdGUgX2xvYWRJc1N0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBnZXQgbG9hZElzU3RhcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRJc1N0YXJ0ZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvYWQgdGhlIGNoaWxkcmVuIGltYWdlcy5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBpbWFnZXMgYXJlIGxvYWRlZC5cbiAgICAgKi9cbiAgICBhc3luYyBsb2FkKCkge1xuICAgICAgICB0aGlzLl9sb2FkSXNTdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgbGV0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBBcnJheTxQcm9taXNlPHZvaWQ+Pih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaV0gPSB0aGlzLmNoaWxkcmVuW2ldLmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB3YWl0IGZvciBhbGwgcHJvbWlzZXNcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRJc1N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZEFuY2hvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkSXNTdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiRXJyb3IgaW50byBJbWFnZUNvbnRhaW5lci5sb2FkKClcIiwgZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dHVyZSBvZiB0aGUgZmlyc3QgY2hpbGQuXG4gICAgICogSWYgdGhlcmUgaXMgbm8gY2hpbGQsIGl0IHJldHVybnMgYSBuZXcge0BsaW5rIFRleHR1cmV9LlxuICAgICAqL1xuICAgIGdldCB0ZXh0dXJlKCkge1xuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblswXS50ZXh0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUElYSS5UZXh0dXJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlcmUgaXMgYSBjaGlsZCB3aXRoIHRoZSBlbXB0eSB0ZXh0dXJlLlxuICAgICAqIEByZXR1cm5zIEEgYm9vbGVhbiB0aGF0IGlzIHRydWUgaWYgdGhlcmUgaXMgYSBjaGlsZCB3aXRoIHRoZSBlbXB0eSB0ZXh0dXJlLlxuICAgICAqL1xuICAgIGdldCBoYXZlRW1wdHlUZXh0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5zb21lKChjaGlsZCkgPT4gY2hpbGQudGV4dHVyZS5fc291cmNlLmxhYmVsID09PSBcIkVNUFRZXCIpO1xuICAgIH1cbn1cblJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmFkZDxJbWFnZUNvbnRhaW5lck1lbW9yeSwgdHlwZW9mIEltYWdlQ29udGFpbmVyPihJbWFnZUNvbnRhaW5lciwge1xuICAgIG5hbWU6IENBTlZBU19JTUFHRV9DT05UQUlORVJfSUQsXG4gICAgY29weVByb3BlcnR5OiBhc3luYyAoY29tcG9uZW50LCBtZW1vcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHNldE1lbW9yeUltYWdlQ29udGFpbmVyKGNvbXBvbmVudCBhcyBJbWFnZUNvbnRhaW5lciwgbWVtb3J5KTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRNZW1vcnlJbWFnZUNvbnRhaW5lcihlbGVtZW50OiBJbWFnZUNvbnRhaW5lciwgbWVtb3J5OiBJbWFnZUNvbnRhaW5lck9wdGlvbnMgfCB7fSkge1xuICAgIG1lbW9yeSA9IGFuYWxpemVQb3NpdGlvbnNFeHRlbnNpb25Qcm9wcyhtZW1vcnkpITtcbiAgICBzZXRNZW1vcnlDb250YWluZXIoZWxlbWVudCwgbWVtb3J5LCB7XG4gICAgICAgIGVuZDogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKFwibG9hZElzU3RhcnRlZFwiIGluIG1lbW9yeSAmJiBtZW1vcnkubG9hZElzU3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGVsZW1lbnQubG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xufVxuIiwiaW1wb3J0IHsgUGl4aUVycm9yIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9jb3JlXCI7XG5pbXBvcnQgeyBjYW52YXMsIENhbnZhc0Jhc2VJdGVtTWVtb3J5IH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgY2FudmFzQ29tcG9uZW50RGVjb3JhdG9yIGZyb20gXCIuLi9kZWNvcmF0b3JzL2NhbnZhcy1lbGVtZW50LWRlY29yYXRvclwiO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBjcmVhdGUgYSBjYW52YXMgZWxlbWVudCB0byBhZGQgaW50byBhIFBpeGkgQXBwbGljYXRpb24uXG4gKiBZb3UgY2FuIHVzZSB7QGxpbmsgY2FudmFzLmFkZCgpfSB0byBhZGQgdGhpcyBlbGVtZW50IGludG8gdGhlIGFwcGxpY2F0aW9uLlxuICogVGhpcyBjbGFzcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYW5kIHRoZSBtZW1vcnkgbWV0aG9kIHNob3VsZCBiZSBvdmVycmlkZGVuLlxuICogWW91IG11c3QgdXNlIHRoZSB7QGxpbmsgY2FudmFzQ29tcG9uZW50RGVjb3JhdG9yfSB0byByZWdpc3RlciB0aGUgY2FudmFzIGluIHRoZSBnYW1lLlxuICogSW4gUmVuJ1B5IGlzIGEgZGlzcGxheWFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgQ0FOVkFTX0VYQU1QTEVfSUQgPSBcIkNhbnZhc0V4YW1wbGVcIjtcbiAqXG4gKiBcXEBjYW52YXNDb21wb25lbnREZWNvcmF0b3Ioe1xuICogICAgIG5hbWU6IENBTlZBU19FWEFNUExFX0lELFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBDYW52YXNFeGFtcGxlIGV4dGVuZHMgQ29udGFpbmVyIGltcGxlbWVudHMgQ2FudmFzQmFzZUl0ZW08TWVtb3J5PiB7XG4gKiAgICAgZ2V0IG1lbW9yeSgpOiBNZW1vcnkge1xuICogICAgICAgICByZXR1cm4ge1xuICogICAgICAgICAgICAgcGl4aXZuSWQ6IENBTlZBU19FWEFNUExFX0lELFxuICogICAgICAgICAgICAgLy8gLi4uIG90aGVyIHByb3BlcnRpZXNcbiAqICAgICAgICAgfVxuICogICAgIH1cbiAqICAgICBhc3luYyBzZXRNZW1vcnkodmFsdWU6IE1lbW9yeSkge1xuICogICAgICAgICAvLyAuLi4gc2V0IG90aGVyIHByb3BlcnRpZXNcbiAqICAgICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2FudmFzQmFzZUl0ZW08VDIgZXh0ZW5kcyBDYW52YXNCYXNlSXRlbU1lbW9yeT4ge1xuICAgIGNvbnN0cnVjdG9yKC4uLl9vcHRpb25zOiBhbnkpIHt9XG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJuIHRoZSBtZW1vcnkgb2YgdGhlIGNhbnZhcyBlbGVtZW50LlxuICAgICAqL1xuICAgIGdldCBtZW1vcnkoKTogVDIge1xuICAgICAgICB0aHJvdyBuZXcgUGl4aUVycm9yKFwibm90X2ltcGxlbWVudGVkXCIsIFwiVGhlIG1ldGhvZCBDYW52YXNCYXNlSXRlbS5tZW1vcnkgbXVzdCBiZSBvdmVycmlkZGVuXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBzZXQgdGhlIG1lbW9yeSBvZiB0aGUgY2FudmFzIGVsZW1lbnQuXG4gICAgICovXG4gICAgc2V0TWVtb3J5KF92YWx1ZTogVDIpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBQaXhpRXJyb3IoXCJub3RfaW1wbGVtZW50ZWRcIiwgXCJUaGUgbWV0aG9kIENhbnZhc0Jhc2VJdGVtLnNldE1lbW9yeSBtdXN0IGJlIG92ZXJyaWRkZW5cIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgaWQgb2YgdGhlIGNhbnZhcyBlbGVtZW50LiBUaGlzIHZhcmlhYmxlIGlzIHVzZWQgaW4gdGhlIHN5c3RlbSB0byBnZXQgdGhlIGNhbnZhcyBlbGVtZW50IGJ5IGlkXG4gICAgICovXG4gICAgcGl4aXZuSWQ6IHN0cmluZyA9IFwiY2FudmFzX2VsZW1lbnRfaWRfbm90X3NldFwiO1xufVxuIiwiaW1wb3J0IHR5cGUge1xuICAgIENvbnRhaW5lckNoaWxkLFxuICAgIENvbnRhaW5lckV2ZW50cyxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT2JzZXJ2YWJsZVBvaW50LFxuICAgIFBvaW50RGF0YSxcbn0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFBJWEkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IENBTlZBU19URVhUX0lEIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IENhbnZhc0Jhc2VJdGVtIGZyb20gXCIuLi9jbGFzc2VzL0NhbnZhc0Jhc2VJdGVtXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLCBzZXRNZW1vcnlDb250YWluZXIgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9jYW52YXMtZWxlbWVudC1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGdldE1lbW9yeVRleHQgfSBmcm9tIFwiLi4vZnVuY3Rpb25zL2NhbnZhcy1tZW1vcnktdXRpbGl0eVwiO1xuaW1wb3J0IHsgQ2FudmFzUHJvcGVydHlVdGlsaXR5IGFzIFByb3BzVXRpbHMgfSBmcm9tIFwiLi4vZnVuY3Rpb25zL2NhbnZhcy1wcm9wZXJ0eS11dGlsaXR5XCI7XG5pbXBvcnQgeyBUZXh0T3B0aW9ucyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbnZhcy1vcHRpb25zXCI7XG5pbXBvcnQgVGV4dE1lbW9yeSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9tZW1vcnkvVGV4dE1lbW9yeVwiO1xuaW1wb3J0IEFkZGl0aW9uYWxQb3NpdGlvbnNFeHRlbnNpb24sIHsgYW5hbGl6ZVBvc2l0aW9uc0V4dGVuc2lvblByb3BzIH0gZnJvbSBcIi4vQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvblwiO1xuaW1wb3J0IExpc3RlbmVyRXh0ZW5zaW9uLCB7IGFkZExpc3RlbmVySGFuZGxlciwgT25FdmVudHNIYW5kbGVycyB9IGZyb20gXCIuL0xpc3RlbmVyRXh0ZW5zaW9uXCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyBhIGV4dGVuc2lvbiBvZiB0aGUgW1BJWEkuVGV4dCBjbGFzc10oaHR0cHM6Ly9waXhpanMuY29tLzgueC9leGFtcGxlcy90ZXh0L3BpeGktdGV4dCksIGl0IGhhcyB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLFxuICogYnV0IGl0IGhhcyB0aGUgYWJpbGl0eSB0byBiZSBzYXZlZCBhbmQgbG9hZGVkIGJ5IHRoZSBQaXhp4oCZVk4gbGlicmFyeS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gbmV3IFRleHQoKTtcbiAqIHRleHQudGV4dCA9IFwiSGVsbG8gV29ybGRcIlxuICogY2FudmFzLmFkZChcInRleHRcIiwgdGV4dCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dFxuICAgIGV4dGVuZHMgUElYSS5UZXh0XG4gICAgaW1wbGVtZW50cyBDYW52YXNCYXNlSXRlbTxUZXh0TWVtb3J5PiwgQWRkaXRpb25hbFBvc2l0aW9uc0V4dGVuc2lvbiwgTGlzdGVuZXJFeHRlbnNpb25cbntcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogVGV4dE9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGFuYWxpemVQb3NpdGlvbnNFeHRlbnNpb25Qcm9wcyhvcHRpb25zIGFzIGFueSk7XG4gICAgICAgIGxldCBhbGlnbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHBlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgXCJhbGlnblwiIGluIG9wdGlvbnMgJiYgb3B0aW9ucz8uYWxpZ24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWxpZ24gPSBvcHRpb25zLmFsaWduO1xuICAgICAgICAgICAgZGVsZXRlIG9wdGlvbnMuYWxpZ247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgXCJwZXJjZW50YWdlUG9zaXRpb25cIiBpbiBvcHRpb25zICYmIG9wdGlvbnM/LnBlcmNlbnRhZ2VQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwZXJjZW50YWdlUG9zaXRpb24gPSBvcHRpb25zLnBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLnBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5waXhpdm5JZCA9IHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLnBpeGl2bklkIHx8IENBTlZBU19URVhUX0lEO1xuICAgICAgICBpZiAoYWxpZ24pIHtcbiAgICAgICAgICAgIHRoaXMuYWxpZ24gPSBhbGlnbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmNlbnRhZ2VQb3NpdGlvbiA9IHBlcmNlbnRhZ2VQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZWFkb25seSBwaXhpdm5JZDogc3RyaW5nID0gQ0FOVkFTX1RFWFRfSUQ7XG4gICAgZ2V0IG1lbW9yeSgpOiBUZXh0TWVtb3J5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmdldE1lbW9yeVRleHQodGhpcyksXG4gICAgICAgICAgICBwaXhpdm5JZDogdGhpcy5waXhpdm5JZCxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLl9hbGlnbixcbiAgICAgICAgICAgIHBlcmNlbnRhZ2VQb3NpdGlvbjogdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3luYyBzZXRNZW1vcnkodmFsdWU6IFRleHRNZW1vcnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgc2V0TWVtb3J5VGV4dCh0aGlzLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgcmVhZG9ubHkgb25FdmVudHNIYW5kbGVyczogT25FdmVudHNIYW5kbGVycyA9IHt9O1xuICAgIG92ZXJyaWRlIG9uPFQgZXh0ZW5kcyBrZXlvZiBDb250YWluZXJFdmVudHM8Q29udGFpbmVyQ2hpbGQ+IHwga2V5b2YgeyBbSzogc3ltYm9sXTogYW55OyBbSzoge30gJiBzdHJpbmddOiBhbnkgfT4oXG4gICAgICAgIGV2ZW50OiBULFxuICAgICAgICBmbjogKFxuICAgICAgICAgICAgLi4uYXJnczogW1xuICAgICAgICAgICAgICAgIC4uLkV2ZW50RW1pdHRlci5Bcmd1bWVudE1hcDxcbiAgICAgICAgICAgICAgICAgICAgQ29udGFpbmVyRXZlbnRzPENvbnRhaW5lckNoaWxkPiAmIHsgW0s6IHN5bWJvbF06IGFueTsgW0s6IHt9ICYgc3RyaW5nXTogYW55IH1cbiAgICAgICAgICAgICAgICA+W0V4dHJhY3Q8XG4gICAgICAgICAgICAgICAgICAgIFQsXG4gICAgICAgICAgICAgICAgICAgIGtleW9mIENvbnRhaW5lckV2ZW50czxDb250YWluZXJDaGlsZD4gfCBrZXlvZiB7IFtLOiBzeW1ib2xdOiBhbnk7IFtLOiB7fSAmIHN0cmluZ106IGFueSB9XG4gICAgICAgICAgICAgICAgPl0sXG4gICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMsXG4gICAgICAgICAgICBdXG4gICAgICAgICkgPT4gdm9pZCxcbiAgICAgICAgY29udGV4dD86IGFueSxcbiAgICApOiB0aGlzIHtcbiAgICAgICAgYWRkTGlzdGVuZXJIYW5kbGVyKGV2ZW50LCB0aGlzLCBmbik7XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLm9uPFQ+KGV2ZW50LCAoLi4uZSkgPT4gZm4oLi4uZSwgdGhpcyksIGNvbnRleHQpO1xuICAgIH1cblxuICAgIC8qKiBBZGRpdGlvbmFsUG9zaXRpb25zICovXG4gICAgcHJpdmF0ZSBfYWxpZ246IFBhcnRpYWw8UG9pbnREYXRhPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBzZXQgYWxpZ24odmFsdWU6IFBhcnRpYWw8UG9pbnREYXRhPiB8IG51bWJlcikge1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2FsaWduID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduID0ge30pO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB0aGlzLl9hbGlnbi54ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9hbGlnbi55ID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZS54ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduLnggPSB2YWx1ZS54KTtcbiAgICAgICAgICAgIHZhbHVlLnkgIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fYWxpZ24ueSA9IHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IGFsaWduKCkge1xuICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgbGV0IHN1cGVyU2NhbGUgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5zY2FsZSwgdGhpcy5hbmdsZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBQcm9wc1V0aWxzLmNhbGN1bGF0ZUFsaWduQnlQb3NpdGlvbihcbiAgICAgICAgICAgICAgICBcIndpZHRoXCIsXG4gICAgICAgICAgICAgICAgdGhpcy54LFxuICAgICAgICAgICAgICAgIFByb3BzVXRpbHMuZ2V0U3VwZXJXaWR0aCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzdXBlclBpdm90LngsXG4gICAgICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgICAgICAgICB0aGlzLmFuY2hvci54LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHk6IFByb3BzVXRpbHMuY2FsY3VsYXRlQWxpZ25CeVBvc2l0aW9uKFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgdGhpcy55LFxuICAgICAgICAgICAgICAgIFByb3BzVXRpbHMuZ2V0U3VwZXJIZWlnaHQodGhpcyksXG4gICAgICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgICAgIHN1cGVyU2NhbGUueSA8IDAsXG4gICAgICAgICAgICAgICAgdGhpcy5hbmNob3IueSxcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNldCB4QWxpZ24odmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2FsaWduID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX2FsaWduID0ge30pO1xuICAgICAgICB0aGlzLl9hbGlnbi54ID0gdmFsdWU7XG4gICAgICAgIHRoaXMucmVsb2FkUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZ2V0IHhBbGlnbigpIHtcbiAgICAgICAgbGV0IHN1cGVyUGl2b3QgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5waXZvdCwgdGhpcy5hbmdsZSk7XG4gICAgICAgIGxldCBzdXBlclNjYWxlID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMuc2NhbGUsIHRoaXMuYW5nbGUpO1xuICAgICAgICByZXR1cm4gUHJvcHNVdGlscy5jYWxjdWxhdGVBbGlnbkJ5UG9zaXRpb24oXG4gICAgICAgICAgICBcIndpZHRoXCIsXG4gICAgICAgICAgICB0aGlzLngsXG4gICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVyV2lkdGgodGhpcyksXG4gICAgICAgICAgICBzdXBlclBpdm90LngsXG4gICAgICAgICAgICBzdXBlclNjYWxlLnggPCAwLFxuICAgICAgICAgICAgdGhpcy5hbmNob3IueCxcbiAgICAgICAgKTtcbiAgICB9XG4gICAgc2V0IHlBbGlnbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fYWxpZ24gPT09IHVuZGVmaW5lZCAmJiAodGhpcy5fYWxpZ24gPSB7fSk7XG4gICAgICAgIHRoaXMuX2FsaWduLnkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWxvYWRQb3NpdGlvbigpO1xuICAgIH1cbiAgICBnZXQgeUFsaWduKCkge1xuICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgbGV0IHN1cGVyU2NhbGUgPSBQcm9wc1V0aWxzLmdldFN1cGVyUG9pbnQodGhpcy5zY2FsZSwgdGhpcy5hbmdsZSk7XG4gICAgICAgIHJldHVybiBQcm9wc1V0aWxzLmNhbGN1bGF0ZUFsaWduQnlQb3NpdGlvbihcbiAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICB0aGlzLnksXG4gICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVySGVpZ2h0KHRoaXMpLFxuICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgc3VwZXJTY2FsZS55IDwgMCxcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yLnksXG4gICAgICAgICk7XG4gICAgfVxuICAgIHByaXZhdGUgX3BlcmNlbnRhZ2VQb3NpdGlvbjogUGFydGlhbDxQb2ludERhdGE+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHNldCBwZXJjZW50YWdlUG9zaXRpb24odmFsdWU6IFBhcnRpYWw8UG9pbnREYXRhPiB8IG51bWJlcikge1xuICAgICAgICB0aGlzLl9hbGlnbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uID09PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHt9KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnggPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi55ID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZS54ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi54ID0gdmFsdWUueCk7XG4gICAgICAgICAgICB2YWx1ZS55ICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi55ID0gdmFsdWUueSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWxvYWRQb3NpdGlvbigpO1xuICAgIH1cbiAgICBnZXQgcGVyY2VudGFnZVBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogUHJvcHNVdGlscy5jYWxjdWxhdGVQZXJjZW50YWdlUG9zaXRpb25CeVBvc2l0aW9uKFwid2lkdGhcIiwgdGhpcy54KSxcbiAgICAgICAgICAgIHk6IFByb3BzVXRpbHMuY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbihcImhlaWdodFwiLCB0aGlzLnkpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgcGVyY2VudGFnZVgoKSB7XG4gICAgICAgIHJldHVybiBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBlcmNlbnRhZ2VQb3NpdGlvbkJ5UG9zaXRpb24oXCJ3aWR0aFwiLCB0aGlzLngpO1xuICAgIH1cbiAgICBzZXQgcGVyY2VudGFnZVgoX3ZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB7fSk7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi54ID0gX3ZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIGdldCBwZXJjZW50YWdlWSgpIHtcbiAgICAgICAgcmV0dXJuIFByb3BzVXRpbHMuY2FsY3VsYXRlUGVyY2VudGFnZVBvc2l0aW9uQnlQb3NpdGlvbihcImhlaWdodFwiLCB0aGlzLnkpO1xuICAgIH1cbiAgICBzZXQgcGVyY2VudGFnZVkoX3ZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmICh0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB7fSk7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbi55ID0gX3ZhbHVlO1xuICAgICAgICB0aGlzLnJlbG9hZFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIGdldCBwb3NpdGlvblR5cGUoKTogXCJwaXhlbFwiIHwgXCJwZXJjZW50YWdlXCIgfCBcImFsaWduXCIge1xuICAgICAgICBpZiAodGhpcy5fYWxpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWduXCI7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJwZXJjZW50YWdlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwicGl4ZWxcIjtcbiAgICB9XG4gICAgZ2V0IHBvc2l0aW9uSW5mbygpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB0eXBlOiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIiB9IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImFsaWduXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy54QWxpZ24sIHk6IHRoaXMueUFsaWduLCB0eXBlOiBcImFsaWduXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJwZXJjZW50YWdlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy5wZXJjZW50YWdlWCwgeTogdGhpcy5wZXJjZW50YWdlWSwgdHlwZTogXCJwZXJjZW50YWdlXCIgfTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeDogdGhpcy54LCB5OiB0aGlzLnksIHR5cGU6IFwicGl4ZWxcIiB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldCBwb3NpdGlvbkluZm8odmFsdWU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHR5cGU/OiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIiB9KSB7XG4gICAgICAgIGlmICh2YWx1ZS50eXBlID09PSBcImFsaWduXCIpIHtcbiAgICAgICAgICAgIHRoaXMuYWxpZ24gPSB7IHg6IHZhbHVlLngsIHk6IHZhbHVlLnkgfTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS50eXBlID09PSBcInBlcmNlbnRhZ2VcIikge1xuICAgICAgICAgICAgdGhpcy5wZXJjZW50YWdlUG9zaXRpb24gPSB7IHg6IHZhbHVlLngsIHk6IHZhbHVlLnkgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24uc2V0KHZhbHVlLngsIHZhbHVlLnkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCByZWxvYWRQb3NpdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FsaWduKSB7XG4gICAgICAgICAgICBsZXQgc3VwZXJQaXZvdCA9IFByb3BzVXRpbHMuZ2V0U3VwZXJQb2ludCh0aGlzLnBpdm90LCB0aGlzLmFuZ2xlKTtcbiAgICAgICAgICAgIGxldCBzdXBlclNjYWxlID0gUHJvcHNVdGlscy5nZXRTdXBlclBvaW50KHRoaXMuc2NhbGUsIHRoaXMuYW5nbGUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FsaWduLnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnggPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgICAgICAgICAgICAgXCJ3aWR0aFwiLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbGlnbi54LFxuICAgICAgICAgICAgICAgICAgICBQcm9wc1V0aWxzLmdldFN1cGVyV2lkdGgodGhpcyksXG4gICAgICAgICAgICAgICAgICAgIHN1cGVyUGl2b3QueCxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJTY2FsZS54IDwgMCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3IueCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX2FsaWduLnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnkgPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlBbGlnbihcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWxpZ24ueSxcbiAgICAgICAgICAgICAgICAgICAgUHJvcHNVdGlscy5nZXRTdXBlckhlaWdodCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJQaXZvdC55LFxuICAgICAgICAgICAgICAgICAgICBzdXBlclNjYWxlLnkgPCAwLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuY2hvci55LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnggPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24oXCJ3aWR0aFwiLCB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24ueCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnkgPSBQcm9wc1V0aWxzLmNhbGN1bGF0ZVBvc2l0aW9uQnlQZXJjZW50YWdlUG9zaXRpb24oXCJoZWlnaHRcIiwgdGhpcy5fcGVyY2VudGFnZVBvc2l0aW9uLnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBwb3NpdGlvbigpOiBPYnNlcnZhYmxlUG9pbnQge1xuICAgICAgICByZXR1cm4gc3VwZXIucG9zaXRpb247XG4gICAgfVxuICAgIHNldCBwb3NpdGlvbih2YWx1ZTogT2JzZXJ2YWJsZVBvaW50KSB7XG4gICAgICAgIHRoaXMuX2FsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN1cGVyLnBvc2l0aW9uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBzdXBlci54O1xuICAgIH1cbiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2FsaWduID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wZXJjZW50YWdlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN1cGVyLnggPSB2YWx1ZTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0IHkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnk7XG4gICAgfVxuICAgIG92ZXJyaWRlIHNldCB5KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWxpZ24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BlcmNlbnRhZ2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgc3VwZXIueSA9IHZhbHVlO1xuICAgIH1cbn1cblJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLmFkZDxUZXh0TWVtb3J5LCB0eXBlb2YgVGV4dD4oVGV4dCwge1xuICAgIG5hbWU6IENBTlZBU19URVhUX0lELFxufSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRNZW1vcnlUZXh0KGVsZW1lbnQ6IFRleHQsIG1lbW9yeTogVGV4dE1lbW9yeSB8IHt9KSB7XG4gICAgXCJ0ZXh0XCIgaW4gbWVtb3J5ICYmIG1lbW9yeS50ZXh0ICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQudGV4dCA9IG1lbW9yeS50ZXh0KTtcbiAgICBhd2FpdCBzZXRNZW1vcnlDb250YWluZXIoZWxlbWVudCwgbWVtb3J5LCB7XG4gICAgICAgIGVuZDogKCkgPT4ge1xuICAgICAgICAgICAgXCJzdHlsZVwiIGluIG1lbW9yeSAmJiBtZW1vcnkuc3R5bGUgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5zdHlsZSA9IG1lbW9yeS5zdHlsZSk7XG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKFwiYW5jaG9yXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5hbmNob3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIG1lbW9yeS5hbmNob3IgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYW5jaG9yLnNldChtZW1vcnkuYW5jaG9yLCBtZW1vcnkuYW5jaG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYW5jaG9yLnNldChtZW1vcnkuYW5jaG9yLngsIG1lbW9yeS5hbmNob3IueSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXCJyZXNvbHV0aW9uXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5yZXNvbHV0aW9uICE9PSB1bmRlZmluZWQgJiYgKGVsZW1lbnQucmVzb2x1dGlvbiA9IG1lbW9yeS5yZXNvbHV0aW9uKTtcbiAgICBpZiAoXCJhbmNob3JcIiBpbiBtZW1vcnkgJiYgbWVtb3J5LmFuY2hvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWVtb3J5LmFuY2hvciA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgZWxlbWVudC5hbmNob3Iuc2V0KG1lbW9yeS5hbmNob3IsIG1lbW9yeS5hbmNob3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudC5hbmNob3Iuc2V0KG1lbW9yeS5hbmNob3IueCwgbWVtb3J5LmFuY2hvci55KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcImFsaWduXCIgaW4gbWVtb3J5ICYmIG1lbW9yeS5hbGlnbiAhPT0gdW5kZWZpbmVkICYmIChlbGVtZW50LmFsaWduID0gbWVtb3J5LmFsaWduKTtcbiAgICBcInBlcmNlbnRhZ2VQb3NpdGlvblwiIGluIG1lbW9yeSAmJlxuICAgICAgICBtZW1vcnkucGVyY2VudGFnZVBvc2l0aW9uICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKGVsZW1lbnQucGVyY2VudGFnZVBvc2l0aW9uID0gbWVtb3J5LnBlcmNlbnRhZ2VQb3NpdGlvbik7XG4gICAgXCJyb3VuZFBpeGVsc1wiIGluIG1lbW9yeSAmJiBtZW1vcnkucm91bmRQaXhlbHMgIT09IHVuZGVmaW5lZCAmJiAoZWxlbWVudC5yb3VuZFBpeGVscyA9IG1lbW9yeS5yb3VuZFBpeGVscyk7XG59XG4iLCJpbXBvcnQgdHlwZSB7IFVQREFURV9QUklPUklUWSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHsgY2FudmFzLCBTaGFrZUVmZmVjdFByb3BzIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbG9nLXV0aWxpdHlcIjtcblxuLyoqXG4gKiBTaGFrZSB0aGUgY2FudmFzIGVsZW1lbnQuXG4gKiBJZiB0aGVyZSBpcyBhL21vcmUgdGlja2VyKHMpIHdpdGggdGhlIHNhbWUgYWxpYXMsIHRoZW4gdGhlIHRpY2tlcihzKSBpcy9hcmUgcGF1c2VkLlxuICogQHBhcmFtIGFsaWFzXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHBhcmFtIHByaW9yaXR5XG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hha2VFZmZlY3QoXG4gICAgYWxpYXM6IHN0cmluZyxcbiAgICBvcHRpb25zOiBTaGFrZUVmZmVjdFByb3BzID0ge30sXG4gICAgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFksXG4pOiBQcm9taXNlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGVsZW1ldCA9IGNhbnZhcy5maW5kKGFsaWFzKTtcbiAgICBpZiAoIWVsZW1ldCkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYFRoZSBlbGVtZW50IHdpdGggdGhlIGFsaWFzICR7YWxpYXN9IGRvZXMgbm90IGV4aXN0LiBTbyB0aGUgc2hha2UgZWZmZWN0IGNhbid0IGJlIGFwcGxpZWQuYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHBvc2l0aW9uID0geyB4OiBlbGVtZXQucG9zaXRpb24ueCwgeTogZWxlbWV0LnBvc2l0aW9uLnkgfTtcbiAgICBjb25zdCB7IHNoYWtlVHlwZSA9IFwiaG9yaXpvbnRhbFwiLCBtYXhTaG9ja1NpemUgPSAxMCwgc2hvY2tzTnVtYmVyOiBzaG9ja3NOdW1iZXJUZW1wID0gMTAsIC4uLnJlc3QgfSA9IG9wdGlvbnM7XG4gICAgbGV0IHNob2Nrc051bWJlciA9IHNob2Nrc051bWJlclRlbXAgLSAxO1xuICAgIGlmIChzaG9ja3NOdW1iZXIgPCAyKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihcIlRoZSBudW1iZXIgb2Ygc2hvY2tzIG11c3QgYmUgYXQgbGVhc3QgMy5cIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHVwc2hvY2tzTnVtYmVyID0gTWF0aC5mbG9vcihzaG9ja3NOdW1iZXIgLyAyKTtcbiAgICBsZXQgZG93bnNob2Nrc051bWJlciA9IE1hdGguY2VpbChzaG9ja3NOdW1iZXIgLyAyKTtcblxuICAgIGxldCBhcnJheTogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVwc2hvY2tzTnVtYmVyOyBpKyspIHtcbiAgICAgICAgbGV0IHNob2NrU2l6ZSA9IChtYXhTaG9ja1NpemUgKiAoaSArIDEpKSAvIHVwc2hvY2tzTnVtYmVyO1xuICAgICAgICBpZiAoc2hha2VUeXBlID09PSBcImhvcml6b250YWxcIikge1xuICAgICAgICAgICAgaWYgKGkgJSAyICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgYXJyYXkucHVzaChwb3NpdGlvbi54ICsgc2hvY2tTaXplKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXJyYXkucHVzaChwb3NpdGlvbi54IC0gc2hvY2tTaXplKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpICUgMiAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGFycmF5LnB1c2gocG9zaXRpb24ueSArIHNob2NrU2l6ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycmF5LnB1c2gocG9zaXRpb24ueSAtIHNob2NrU2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IGxhc3RJdGVtSXNMZWZ0ID0gdXBzaG9ja3NOdW1iZXIgJSAyID09PSAwO1xuICAgIGZvciAobGV0IGkgPSBkb3duc2hvY2tzTnVtYmVyOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGxldCBzaG9ja1NpemUgPSAobWF4U2hvY2tTaXplICogKGkgKyAxKSkgLyAoZG93bnNob2Nrc051bWJlciAtIDEpO1xuICAgICAgICBpZiAoc2hha2VUeXBlID09PSBcImhvcml6b250YWxcIikge1xuICAgICAgICAgICAgaWYgKChpICUgMiA9PT0gMCAmJiAhbGFzdEl0ZW1Jc0xlZnQpIHx8IChpICUgMiAhPT0gMCAmJiBsYXN0SXRlbUlzTGVmdCkpIHtcbiAgICAgICAgICAgICAgICBhcnJheS5wdXNoKHBvc2l0aW9uLnggLSBzaG9ja1NpemUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJheS5wdXNoKHBvc2l0aW9uLnggKyBzaG9ja1NpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKChpICUgMiA9PT0gMCAmJiAhbGFzdEl0ZW1Jc0xlZnQpIHx8IChpICUgMiAhPT0gMCAmJiBsYXN0SXRlbUlzTGVmdCkpIHtcbiAgICAgICAgICAgICAgICBhcnJheS5wdXNoKHBvc2l0aW9uLnkgLSBzaG9ja1NpemUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJheS5wdXNoKHBvc2l0aW9uLnkgKyBzaG9ja1NpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHNoYWtlVHlwZSA9PT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICAgICAgYXJyYXkucHVzaChwb3NpdGlvbi54KTtcbiAgICAgICAgaWQgPSBjYW52YXMuYW5pbWF0ZShhbGlhcywgeyB4OiBhcnJheSB9LCByZXN0LCBwcmlvcml0eSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXJyYXkucHVzaChwb3NpdGlvbi55KTtcbiAgICAgICAgaWQgPSBjYW52YXMuYW5pbWF0ZShhbGlhcywgeyB5OiBhcnJheSB9LCByZXN0LCBwcmlvcml0eSk7XG4gICAgfVxuICAgIGlmIChpZCkge1xuICAgICAgICByZXR1cm4gW2lkXTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBjYW52YXMsIEltYWdlQ29udGFpbmVyT3B0aW9ucyB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IEltYWdlQ29udGFpbmVyIGZyb20gXCIuLi9jb21wb25lbnRzL0ltYWdlQ29udGFpbmVyXCI7XG5pbXBvcnQgSW1hZ2VTcHJpdGUgZnJvbSBcIi4uL2NvbXBvbmVudHMvSW1hZ2VTcHJpdGVcIjtcblxuLyoqXG4gKiBBZGQgYSBsaXN0IG9mIGltYWdlcyBpbiB0aGUgY29udGFpbmVyLCBhZnRlciB0aGF0LCB0aGUgaW1hZ2VzIGFyZSBhZGRlZCB0byB0aGUgY2FudmFzLlxuICogSXMgdGhlIHNhbWUgdGhhdCB7QGxpbmsgc2hvd0ltYWdlQ29udGFpbmVyfSwgYnV0IHRoZSBpbWFnZSBpcyBub3Qgc2hvd24uXG4gKiBJZiB5b3Ugd2FudCB0byBzaG93IHRoZSBpbWFnZSwgdGhlbiB5b3UgbmVlZCB0byB1c2UgdGhlIGZ1bmN0aW9uIHtAbGluayBJbWFnZVNwcml0ZS5sb2FkKCl9LlxuICogQHBhcmFtIGFsaWFzIGlzIHRoZSB1bmlxdWUgYWxpYXMgb2YgdGhlIGltYWdlLiBZb3UgY2FuIHVzZSB0aGlzIGFsaWFzIHRvIHJlZmVyIHRvIHRoaXMgaW1hZ2VcbiAqIEBwYXJhbSBpbWFnZVVybHMgaXMgdGhlIHVybCBvZiB0aGUgaW1hZ2UuIElmIHlvdSBkb24ndCBwcm92aWRlIHRoZSB1cmwsIHRoZW4gdGhlIGFsaWFzIGlzIHVzZWQgYXMgdGhlIHVybC5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9mIHRoZSBpbWFnZS5cbiAqIEByZXR1cm5zIHRoZSBjb250YWluZXIgb2YgdGhlIGltYWdlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGxldCBidW5ueSA9IGFkZEltYWdlQ29udGFpbmVyKFwiYnVubnlcIiwgW1wiaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy9idW5ueS1ib2R5LnBuZ1wiLCBcImh0dHBzOi8vcGl4aWpzLmNvbS9hc3NldHMvYnVubnktZXllcy5wbmdcIl0pXG4gKiBhd2FpdCBidW5ueS5sb2FkKClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkSW1hZ2VDb2ludGFpbmVyKFxuICAgIGFsaWFzOiBzdHJpbmcsXG4gICAgaW1hZ2VVcmxzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zPzogSW1hZ2VDb250YWluZXJPcHRpb25zPEltYWdlU3ByaXRlPlxuKTogSW1hZ2VDb250YWluZXIge1xuICAgIGxldCBvbGRNZW1vcnkgPSB7IC4uLmNhbnZhcy5maW5kKGFsaWFzKT8ubWVtb3J5LCAuLi5vcHRpb25zIH07XG4gICAgbGV0IGNvbXBvbmVudCA9IG5ldyBJbWFnZUNvbnRhaW5lcihvcHRpb25zLCBpbWFnZVVybHMpO1xuICAgIGlmIChvbGRNZW1vcnkpIHtcbiAgICAgICAgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHkob2xkTWVtb3J5LCBjb21wb25lbnQpO1xuICAgIH1cbiAgICBjYW52YXMuYWRkKGFsaWFzLCBjb21wb25lbnQsIHsgaWdub3JlT2xkU3R5bGU6IHRydWUsIHpJbmRleDogb3B0aW9ucz8uekluZGV4IH0pO1xuICAgIHJldHVybiBjb21wb25lbnQ7XG59XG5cbi8qKlxuICogQWRkIGEgbGlzdCBvZiBpbWFnZXMgaW4gdGhlIGNvbnRhaW5lciwgYWZ0ZXIgdGhhdCwgdGhlIGltYWdlcyBhcmUgYWRkZWQgYW5kIHNob3duIGluIHRoZSBjYW52YXMuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGltYWdlVXJscyBUaGUgdXJsIG9mIHRoZSBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9mIHRoZSBpbWFnZS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGltYWdlIGlzIGxvYWRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsZXQgYnVubnkgPSBzaG93SW1hZ2VDb250YWluZXIoXCJidW5ueVwiLCBbXCJodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL2J1bm55LWJvZHkucG5nXCIsIFwiaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy9idW5ueS1leWVzLnBuZ1wiXSlcbiAqIGBgYFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0ltYWdlQ29udGFpbmVyKFxuICAgIGFsaWFzOiBzdHJpbmcsXG4gICAgaW1hZ2VVcmxzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zPzogSW1hZ2VDb250YWluZXJPcHRpb25zPEltYWdlU3ByaXRlPlxuKTogUHJvbWlzZTxJbWFnZUNvbnRhaW5lcj4ge1xuICAgIGxldCBvbGRNZW1vcnkgPSB7IC4uLmNhbnZhcy5maW5kKGFsaWFzKT8ubWVtb3J5LCAuLi5vcHRpb25zIH07XG4gICAgbGV0IGNvbXBvbmVudCA9IG5ldyBJbWFnZUNvbnRhaW5lcihvcHRpb25zLCBpbWFnZVVybHMpO1xuICAgIGF3YWl0IGNvbXBvbmVudC5sb2FkKCk7XG4gICAgaWYgKG9sZE1lbW9yeSkge1xuICAgICAgICBjYW52YXMuY29weUNhbnZhc0VsZW1lbnRQcm9wZXJ0eShvbGRNZW1vcnksIGNvbXBvbmVudCk7XG4gICAgfVxuICAgIGNhbnZhcy5hZGQoYWxpYXMsIGNvbXBvbmVudCwgeyBpZ25vcmVPbGRTdHlsZTogdHJ1ZSwgekluZGV4OiBvcHRpb25zPy56SW5kZXggfSk7XG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbn1cbiIsImltcG9ydCB7IFBpeGlFcnJvciB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vY29yZVwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBQSVhJIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBjYW52YXMsIEltYWdlU3ByaXRlT3B0aW9ucyB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IEltYWdlU3ByaXRlIGZyb20gXCIuLi9jb21wb25lbnRzL0ltYWdlU3ByaXRlXCI7XG5cbi8qKlxuICogQWRkIGEgaW1hZ2UgaW4gdGhlIGNhbnZhcy5cbiAqIElzIHRoZSBzYW1lIHRoYXQge0BsaW5rIHNob3dJbWFnZX0sIGJ1dCB0aGUgaW1hZ2UgaXMgbm90IHNob3duLlxuICogSWYgeW91IHdhbnQgdG8gc2hvdyB0aGUgaW1hZ2UsIHRoZW4geW91IG5lZWQgdG8gdXNlIHRoZSBmdW5jdGlvbiB7QGxpbmsgSW1hZ2VTcHJpdGUubG9hZH0uXG4gKiBAcGFyYW0gYWxpYXMgaXMgdGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGltYWdlVXJsIGlzIHRoZSB1cmwgb2YgdGhlIGltYWdlLiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSB0aGUgdXJsLCB0aGVuIHRoZSBhbGlhcyBpcyB1c2VkIGFzIHRoZSB1cmwuXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBvZiB0aGUgaW1hZ2UuXG4gKiBAcmV0dXJucyB0aGUgY29udGFpbmVyIG9mIHRoZSBpbWFnZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsZXQgYnVubnkxID0gYWRkSW1hZ2UoXCJidW5ueTFcIiwgXCJodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL2J1bm55MS5wbmdcIilcbiAqIGF3YWl0IGJ1bm55MS5sb2FkKClcbiAqIEFzc2V0cy5hZGQoeyBhbGlhczogXCJidW5ueTJcIiwgc3JjOiBcImh0dHBzOi8vcGl4aWpzLmNvbS9hc3NldHMvYnVubnkyLnBuZ1wiIH0pXG4gKiBsZXQgYnVubnkyID0gYWRkSW1hZ2UoXCJidW5ueTJcIilcbiAqIGF3YWl0IGJ1bm55Mi5sb2FkKClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkSW1hZ2UoYWxpYXM6IHN0cmluZywgaW1hZ2VVcmw/OiBzdHJpbmcsIG9wdGlvbnM/OiBJbWFnZVNwcml0ZU9wdGlvbnMpOiBJbWFnZVNwcml0ZSB7XG4gICAgaWYgKCFpbWFnZVVybCkge1xuICAgICAgICBpZiAoUElYSS5Bc3NldHMucmVzb2x2ZXIuaGFzS2V5KGFsaWFzKSkge1xuICAgICAgICAgICAgaW1hZ2VVcmwgPSBhbGlhcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBQaXhpRXJyb3IoXCJ1bnJlZ2lzdGVyZWRfZWxlbWVudFwiLCBgVGhlIGltYWdlICR7YWxpYXN9IGRvZXMgbm90IGV4aXN0IGluIHRoZSBjYWNoZS5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgb2xkTWVtb3J5ID0geyAuLi5jYW52YXMuZmluZChhbGlhcyk/Lm1lbW9yeSwgLi4ub3B0aW9ucyB9O1xuICAgIGxldCBjb21wb25lbnQgPSBuZXcgSW1hZ2VTcHJpdGUob3B0aW9ucywgaW1hZ2VVcmwpO1xuICAgIGlmIChvbGRNZW1vcnkpIHtcbiAgICAgICAgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHkob2xkTWVtb3J5LCBjb21wb25lbnQpO1xuICAgIH1cbiAgICBjYW52YXMuYWRkKGFsaWFzLCBjb21wb25lbnQsIHsgaWdub3JlT2xkU3R5bGU6IHRydWUsIHpJbmRleDogb3B0aW9ucz8uekluZGV4IH0pO1xuICAgIHJldHVybiBjb21wb25lbnQ7XG59XG5cbi8qKlxuICogQWRkIGFuZCBzaG93IGEgaW1hZ2UgaW4gdGhlIGNhbnZhcy4gVGhpcyBmdW5jdGlvbiBpcyBhIGNvbWJpbmF0aW9uIG9mIHtAbGluayBhZGRJbWFnZX0uXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGltYWdlVXJsIFRoZSB1cmwgb2YgdGhlIGltYWdlLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgb2YgdGhlIGltYWdlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgaW1hZ2UgaXMgbG9hZGVkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGxldCBidW5ueTEgPSBzaG93SW1hZ2UoXCJidW5ueTFcIiwgXCJodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL2J1bm55MS5wbmdcIilcbiAqIEFzc2V0cy5hZGQoeyBhbGlhczogXCJidW5ueTJcIiwgc3JjOiBcImh0dHBzOi8vcGl4aWpzLmNvbS9hc3NldHMvYnVubnkyLnBuZ1wiIH0pXG4gKiBsZXQgYnVubnkyID0gc2hvd0ltYWdlKFwiYnVubnkyXCIpXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dJbWFnZShhbGlhczogc3RyaW5nLCBpbWFnZVVybD86IHN0cmluZywgb3B0aW9ucz86IEltYWdlU3ByaXRlT3B0aW9ucyk6IFByb21pc2U8SW1hZ2VTcHJpdGU+IHtcbiAgICBpZiAoIWltYWdlVXJsKSB7XG4gICAgICAgIGlmIChQSVhJLkFzc2V0cy5yZXNvbHZlci5oYXNLZXkoYWxpYXMpKSB7XG4gICAgICAgICAgICBpbWFnZVVybCA9IGFsaWFzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBpeGlFcnJvcihcInVucmVnaXN0ZXJlZF9lbGVtZW50XCIsIGBUaGUgaW1hZ2UgJHthbGlhc30gZG9lcyBub3QgZXhpc3QgaW4gdGhlIGNhY2hlLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBvbGRNZW1vcnkgPSB7IC4uLmNhbnZhcy5maW5kKGFsaWFzKT8ubWVtb3J5LCAuLi5vcHRpb25zIH07XG4gICAgbGV0IGNvbXBvbmVudCA9IG5ldyBJbWFnZVNwcml0ZShvcHRpb25zLCBpbWFnZVVybCk7XG4gICAgYXdhaXQgY29tcG9uZW50LmxvYWQoKTtcbiAgICBpZiAob2xkTWVtb3J5KSB7XG4gICAgICAgIGNhbnZhcy5jb3B5Q2FudmFzRWxlbWVudFByb3BlcnR5KG9sZE1lbW9yeSwgY29tcG9uZW50KTtcbiAgICB9XG4gICAgY2FudmFzLmFkZChhbGlhcywgY29tcG9uZW50LCB7IGlnbm9yZU9sZFN0eWxlOiB0cnVlLCB6SW5kZXg6IG9wdGlvbnM/LnpJbmRleCB9KTtcbiAgICByZXR1cm4gY29tcG9uZW50O1xufVxuIiwiaW1wb3J0IHsgUGl4aUVycm9yIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9jb3JlXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFBJWEkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IGNhbnZhcywgVmlkZW9TcHJpdGVPcHRpb25zIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgVmlkZW9TcHJpdGUgZnJvbSBcIi4uL2NvbXBvbmVudHMvVmlkZW9TcHJpdGVcIjtcblxuLyoqXG4gKiBBZGQgYSB2aWRlbyBpbiB0aGUgY2FudmFzLlxuICogSXMgdGhlIHNhbWUgdGhhdCB7QGxpbmsgc2hvd1ZpZGVvfSwgYnV0IHRoZSB2aWRlbyBpcyBub3Qgc2hvd24uXG4gKiBJZiB5b3Ugd2FudCB0byBzaG93IHRoZSB2aWRlbywgdGhlbiB5b3UgbmVlZCB0byB1c2UgdGhlIGZ1bmN0aW9uIHtAbGluayBWaWRlb1Nwcml0ZS5sb2FkKCl9LlxuICogQHBhcmFtIGFsaWFzIGlzIHRoZSB1bmlxdWUgYWxpYXMgb2YgdGhlIHZpZGVvLiBZb3UgY2FuIHVzZSB0aGlzIGFsaWFzIHRvIHJlZmVyIHRvIHRoaXMgdmlkZW9cbiAqIEBwYXJhbSB2aWRlb1VybCBpcyB0aGUgdXJsIG9mIHRoZSB2aWRlby4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIHVybCwgdGhlbiB0aGUgYWxpYXMgaXMgdXNlZCBhcyB0aGUgdXJsLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgb2YgdGhlIHZpZGVvLlxuICogQHJldHVybnMgdGhlIGNvbnRhaW5lciBvZiB0aGUgdmlkZW8uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbGV0IHZpZGVvMSA9IGFkZFZpZGVvKFwidmlkZW8xXCIsIFwiaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy92aWRlbzEubXA0XCIpXG4gKiBhd2FpdCB2aWRlbzEubG9hZCgpXG4gKiBBc3NldHMuYWRkKHsgYWxpYXM6IFwidmlkZW8yXCIsIHNyYzogXCJodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL3ZpZGVvMi5wbmdcIiB9KVxuICogbGV0IHZpZGVvMiA9IGFkZFZpZGVvKFwidmlkZW8yXCIpXG4gKiBhd2FpdCB2aWRlbzIubG9hZCgpXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFZpZGVvKGFsaWFzOiBzdHJpbmcsIHZpZGVvVXJsPzogc3RyaW5nLCBvcHRpb25zPzogVmlkZW9TcHJpdGVPcHRpb25zKTogVmlkZW9TcHJpdGUge1xuICAgIGlmICghdmlkZW9VcmwpIHtcbiAgICAgICAgaWYgKFBJWEkuQXNzZXRzLnJlc29sdmVyLmhhc0tleShhbGlhcykpIHtcbiAgICAgICAgICAgIHZpZGVvVXJsID0gYWxpYXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGl4aUVycm9yKFwidW5yZWdpc3RlcmVkX2VsZW1lbnRcIiwgYFRoZSB2aWRlbyAke2FsaWFzfSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgY2FjaGUuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IG9sZE1lbW9yeSA9IHsgLi4uY2FudmFzLmZpbmQoYWxpYXMpPy5tZW1vcnksIC4uLm9wdGlvbnMgfTtcbiAgICBsZXQgY29tcG9uZW50ID0gbmV3IFZpZGVvU3ByaXRlKG9wdGlvbnMsIHZpZGVvVXJsKTtcbiAgICBpZiAob2xkTWVtb3J5KSB7XG4gICAgICAgIGNhbnZhcy5jb3B5Q2FudmFzRWxlbWVudFByb3BlcnR5KG9sZE1lbW9yeSwgY29tcG9uZW50KTtcbiAgICB9XG4gICAgY2FudmFzLmFkZChhbGlhcywgY29tcG9uZW50LCB7IGlnbm9yZU9sZFN0eWxlOiB0cnVlLCB6SW5kZXg6IG9wdGlvbnM/LnpJbmRleCB9KTtcbiAgICByZXR1cm4gY29tcG9uZW50O1xufVxuXG4vKipcbiAqIEFkZCBhbmQgc2hvdyBhIHZpZGVvIGluIHRoZSBjYW52YXMuIFRoaXMgZnVuY3Rpb24gaXMgYSBjb21iaW5hdGlvbiBvZiB7QGxpbmsgYWRkVmlkZW99LlxuICogQHBhcmFtIGFsaWFzIFRoZSB1bmlxdWUgYWxpYXMgb2YgdGhlIHZpZGVvLiBZb3UgY2FuIHVzZSB0aGlzIGFsaWFzIHRvIHJlZmVyIHRvIHRoaXMgdmlkZW9cbiAqIEBwYXJhbSB2aWRlb1VybCBUaGUgdXJsIG9mIHRoZSB2aWRlby5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9mIHRoZSB2aWRlby5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIHZpZGVvIGlzIGxvYWRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsZXQgdmlkZW8xID0gc2hvd1ZpZGVvKFwidmlkZW8xXCIsIFwiaHR0cHM6Ly9waXhpanMuY29tL2Fzc2V0cy92aWRlbzEubXA0XCIpXG4gKiBBc3NldHMuYWRkKHsgYWxpYXM6IFwidmlkZW8yXCIsIHNyYzogXCJodHRwczovL3BpeGlqcy5jb20vYXNzZXRzL3ZpZGVvMi5wbmdcIiB9KVxuICogbGV0IHZpZGVvMiA9IHNob3dWaWRlbyhcInZpZGVvMlwiKVxuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93VmlkZW8oYWxpYXM6IHN0cmluZywgdmlkZW9Vcmw/OiBzdHJpbmcsIG9wdGlvbnM/OiBWaWRlb1Nwcml0ZU9wdGlvbnMpOiBQcm9taXNlPFZpZGVvU3ByaXRlPiB7XG4gICAgaWYgKCF2aWRlb1VybCkge1xuICAgICAgICBpZiAoUElYSS5Bc3NldHMucmVzb2x2ZXIuaGFzS2V5KGFsaWFzKSkge1xuICAgICAgICAgICAgdmlkZW9VcmwgPSBhbGlhcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBQaXhpRXJyb3IoXCJ1bnJlZ2lzdGVyZWRfZWxlbWVudFwiLCBgVGhlIHZpZGVvICR7YWxpYXN9IGRvZXMgbm90IGV4aXN0IGluIHRoZSBjYWNoZS5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgb2xkTWVtb3J5ID0geyAuLi5jYW52YXMuZmluZChhbGlhcyk/Lm1lbW9yeSwgLi4ub3B0aW9ucyB9O1xuICAgIGxldCBjb21wb25lbnQgPSBuZXcgVmlkZW9TcHJpdGUob3B0aW9ucywgdmlkZW9VcmwpO1xuICAgIGF3YWl0IGNvbXBvbmVudC5sb2FkKCk7XG4gICAgaWYgKG9sZE1lbW9yeSkge1xuICAgICAgICBjYW52YXMuY29weUNhbnZhc0VsZW1lbnRQcm9wZXJ0eShvbGRNZW1vcnksIGNvbXBvbmVudCk7XG4gICAgfVxuICAgIGNhbnZhcy5hZGQoYWxpYXMsIGNvbXBvbmVudCwgeyBpZ25vcmVPbGRTdHlsZTogdHJ1ZSwgekluZGV4OiBvcHRpb25zPy56SW5kZXggfSk7XG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbn1cbiIsImltcG9ydCB0eXBlIHsgVVBEQVRFX1BSSU9SSVRZIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12bi9waXhpLmpzXCI7XG5pbXBvcnQgeyBjYW52YXMsIENhbnZhc0Jhc2VJbnRlcmZhY2UsIEltYWdlQ29udGFpbmVyT3B0aW9ucywgSW1hZ2VTcHJpdGVPcHRpb25zIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbG9nLXV0aWxpdHlcIjtcbmltcG9ydCBJbWFnZUNvbnRhaW5lciBmcm9tIFwiLi4vY29tcG9uZW50cy9JbWFnZUNvbnRhaW5lclwiO1xuaW1wb3J0IEltYWdlU3ByaXRlIGZyb20gXCIuLi9jb21wb25lbnRzL0ltYWdlU3ByaXRlXCI7XG5pbXBvcnQgVmlkZW9TcHJpdGUgZnJvbSBcIi4uL2NvbXBvbmVudHMvVmlkZW9TcHJpdGVcIjtcbmltcG9ydCB7IENhbnZhc1Byb3BlcnR5VXRpbGl0eSBhcyBQcm9wc1V0aWxzIH0gZnJvbSBcIi4uL2Z1bmN0aW9ucy9jYW52YXMtcHJvcGVydHktdXRpbGl0eVwiO1xuaW1wb3J0IHtcbiAgICBNb3ZlSW5PdXRQcm9wcyxcbiAgICBQdXNoSW5PdXRQcm9wcyxcbiAgICBTaG93V2l0aERpc3NvbHZlVHJhbnNpdGlvblByb3BzLFxuICAgIFNob3dXaXRoRmFkZVRyYW5zaXRpb25Qcm9wcyxcbiAgICBab29tSW5PdXRQcm9wcyxcbn0gZnJvbSBcIi4uL2ludGVyZmFjZXMvdHJhbnNpdGlvbi1wcm9wc1wiO1xuaW1wb3J0IHsgY2hlY2tJZlZpZGVvIH0gZnJvbSBcIi4vY2FudmFzLXV0aWxpdHlcIjtcbmltcG9ydCB7IGFkZEltYWdlQ29pbnRhaW5lciB9IGZyb20gXCIuL2ltYWdlLWNvbnRhaW5lci11dGlsaXR5XCI7XG5pbXBvcnQgeyBhZGRJbWFnZSB9IGZyb20gXCIuL2ltYWdlLXV0aWxpdHlcIjtcbmltcG9ydCB7IGFkZFZpZGVvIH0gZnJvbSBcIi4vdmlkZW8tdXRpbGl0eVwiO1xuXG5mdW5jdGlvbiBtYXBEZXN0aW5hdGlvbihkZXN0aW5hdGlvbjoge1xuICAgIHR5cGU/OiBcInBpeGVsXCIgfCBcInBlcmNlbnRhZ2VcIiB8IFwiYWxpZ25cIjtcbiAgICB5OiBudW1iZXI7XG4gICAgeDogbnVtYmVyO1xufSk6IFBhcnRpYWw8SW1hZ2VTcHJpdGVPcHRpb25zPiB7XG4gICAgc3dpdGNoIChkZXN0aW5hdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJhbGlnblwiOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4QWxpZ246IGRlc3RpbmF0aW9uLngsXG4gICAgICAgICAgICAgICAgeUFsaWduOiBkZXN0aW5hdGlvbi55LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBcInBlcmNlbnRhZ2VcIjpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZVg6IGRlc3RpbmF0aW9uLngsXG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZVk6IGRlc3RpbmF0aW9uLnksXG4gICAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFwicGl4ZWxcIjpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgeDogZGVzdGluYXRpb24ueCxcbiAgICAgICAgICAgICAgICB5OiBkZXN0aW5hdGlvbi55LFxuICAgICAgICAgICAgfTtcbiAgICB9XG59XG5cbnR5cGUgVENvbXBvbmVudCA9XG4gICAgfCBDYW52YXNCYXNlSW50ZXJmYWNlPGFueT5cbiAgICB8IHN0cmluZ1xuICAgIHwgc3RyaW5nW11cbiAgICB8IHtcbiAgICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgICAgIG9wdGlvbnM6IEltYWdlU3ByaXRlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgICB2YWx1ZTogc3RyaW5nW107XG4gICAgICAgICAgb3B0aW9uczogSW1hZ2VDb250YWluZXJPcHRpb25zO1xuICAgICAgfTtcbmZ1bmN0aW9uIGFkZENvbXBvbmVudChcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIGNhbnZhc0VsZW1lbnQ6IFRDb21wb25lbnQsXG4gICAgb3B0aW9uczoge1xuICAgICAgICB6SW5kZXg/OiBudW1iZXI7XG4gICAgfSxcbik6IENhbnZhc0Jhc2VJbnRlcmZhY2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiBjYW52YXNFbGVtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmIChjaGVja0lmVmlkZW8oY2FudmFzRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBhZGRWaWRlbyhhbGlhcywgY2FudmFzRWxlbWVudCwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWRkSW1hZ2UoYWxpYXMsIGNhbnZhc0VsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNhbnZhc0VsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBhZGRJbWFnZUNvaW50YWluZXIoYWxpYXMsIGNhbnZhc0VsZW1lbnQsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNhbnZhc0VsZW1lbnQgPT09IFwib2JqZWN0XCIgJiYgXCJ2YWx1ZVwiIGluIGNhbnZhc0VsZW1lbnQgJiYgXCJvcHRpb25zXCIgaW4gY2FudmFzRWxlbWVudCkge1xuICAgICAgICBpZiAodHlwZW9mIGNhbnZhc0VsZW1lbnQudmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGlmIChjaGVja0lmVmlkZW8oY2FudmFzRWxlbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkVmlkZW8oYWxpYXMsIGNhbnZhc0VsZW1lbnQudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FudmFzRWxlbWVudC5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IG9wdGlvbnMuekluZGV4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkSW1hZ2UoYWxpYXMsIGNhbnZhc0VsZW1lbnQudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FudmFzRWxlbWVudC5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IG9wdGlvbnMuekluZGV4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY2FudmFzRWxlbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBhZGRJbWFnZUNvaW50YWluZXIoYWxpYXMsIGNhbnZhc0VsZW1lbnQudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAuLi5jYW52YXNFbGVtZW50Lm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgekluZGV4OiBvcHRpb25zLnpJbmRleCxcbiAgICAgICAgICAgIH0gYXMgYW55KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYW52YXMuYWRkKGFsaWFzLCBjYW52YXNFbGVtZW50IGFzIENhbnZhc0Jhc2VJbnRlcmZhY2U8YW55Piwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGNhbnZhc0VsZW1lbnQgYXMgQ2FudmFzQmFzZUludGVyZmFjZTxhbnk+O1xufVxuXG4vKipcbiAqIFNob3cgYSBpbWFnZSBpbiB0aGUgY2FudmFzIHdpdGggYSBkaXNvbHZlIGVmZmVjdC5cbiAqIERpc29sdmUgZWZmZWN0IGlzIGEgZWZmZWN0IHRoYXQgdGhlIGltYWdlIGlzIHNob3duIHdpdGggYSBmYWRlIGluLlxuICogSWYgZXhpc3QgYSBpbWFnZSB3aXRoIHRoZSBzYW1lIGFsaWFzLCB0aGVuIHRoZSBpbWFnZSBpcyByZXBsYWNlZCBhbmQgdGhlIGZpcnN0IGltYWdlIGlzIHJlbW92ZWQgYWZ0ZXIgdGhlIGVmZmVjdCBpcyBkb25lLlxuICogQHBhcmFtIGFsaWFzIFRoZSB1bmlxdWUgYWxpYXMgb2YgdGhlIGltYWdlLiBZb3UgY2FuIHVzZSB0aGlzIGFsaWFzIHRvIHJlZmVyIHRvIHRoaXMgaW1hZ2VcbiAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGltYWdlVXJsLCBhcnJheSBvZiBpbWFnZVVybCBvciB0aGUgY2FudmFzIGNvbXBvbmVudC4gSWYgaW1hZ2VVcmwgaXMgYSB2aWRlbywgdGhlbiB0aGUge0BsaW5rIFZpZGVvU3ByaXRlfSBpcyBhZGRlZCB0byB0aGUgY2FudmFzLlxuICogSWYgaW1hZ2VVcmwgaXMgYW4gYXJyYXksIHRoZW4gdGhlIHtAbGluayBJbWFnZUNvbnRhaW5lcn0gaXMgYWRkZWQgdG8gdGhlIGNhbnZhcy5cbiAqIElmIHlvdSBkb24ndCBwcm92aWRlIHRoZSBjb21wb25lbnQsIHRoZW4gdGhlIGFsaWFzIGlzIHVzZWQgYXMgdGhlIHVybC5cbiAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBvZiB0aGUgZWZmZWN0XG4gKiBAcGFyYW0gcHJpb3JpdHkgVGhlIHByaW9yaXR5IG9mIHRoZSBlZmZlY3RcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IGNvbnRhaW5zIHRoZSBpZHMgb2YgdGhlIHRpY2tlcnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgZWZmZWN0LiBUaGUgcHJvbWlzZSBpcyByZXNvbHZlZCB3aGVuIHRoZSBpbWFnZSBpcyBsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93V2l0aERpc3NvbHZlKFxuICAgIGFsaWFzOiBzdHJpbmcsXG4gICAgY29tcG9uZW50PzogVENvbXBvbmVudCxcbiAgICBwcm9wczogU2hvd1dpdGhEaXNzb2x2ZVRyYW5zaXRpb25Qcm9wcyA9IHt9LFxuICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZLFxuKTogUHJvbWlzZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCB7IGZvcmNlQ29tcGxldGVCZWZvcmVOZXh0ID0gdHJ1ZSB9ID0gcHJvcHM7XG4gICAgbGV0IHsgY29tcGxldGVPbkNvbnRpbnVlID0gZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQsIHRpY2tlcklkVG9SZXN1bWUgPSBbXSwgLi4ub3B0aW9ucyB9ID0gcHJvcHM7XG4gICAgbGV0IHJlczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICBjb21wb25lbnQgPSBhbGlhcztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aWNrZXJJZFRvUmVzdW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRpY2tlcklkVG9SZXN1bWUgPSBbdGlja2VySWRUb1Jlc3VtZV07XG4gICAgfVxuICAgIC8vIGNoZWNrIGlmIHRoZSBhbGlhcyBpcyBhbHJlYWR5IGV4aXN0XG4gICAgbGV0IG9sZENvbXBvbmVudEFsaWFzOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IG9sZENvbXBvbmVudCA9IGNhbnZhcy5maW5kKGFsaWFzKTtcbiAgICBpZiAob2xkQ29tcG9uZW50KSB7XG4gICAgICAgIG9sZENvbXBvbmVudEFsaWFzID0gYWxpYXMgKyBcIl90ZW1wX2Rpc29sdmVcIjtcbiAgICAgICAgY2FudmFzLmVkaXRBbGlhcyhhbGlhcywgb2xkQ29tcG9uZW50QWxpYXMpO1xuICAgIH1cbiAgICAvLyBhZGQgdGhlIG5ldyBjb21wb25lbnQgYW5kIHRyYW5zZmVyIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBvbGQgY29tcG9uZW50IHRvIHRoZSBuZXcgY29tcG9uZW50XG4gICAgY29tcG9uZW50ID0gYWRkQ29tcG9uZW50KGFsaWFzLCBjb21wb25lbnQsIHtcbiAgICAgICAgekluZGV4OiBvbGRDb21wb25lbnQgPyBvbGRDb21wb25lbnQucGFyZW50Py5nZXRDaGlsZEluZGV4KG9sZENvbXBvbmVudCkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgb2xkQ29tcG9uZW50Py5wYXJlbnQ/LnNldENoaWxkSW5kZXgob2xkQ29tcG9uZW50LCBvbGRDb21wb25lbnQucGFyZW50LmdldENoaWxkSW5kZXgob2xkQ29tcG9uZW50KSAtIDAuMSk7XG4gICAgb2xkQ29tcG9uZW50QWxpYXMgJiYgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHkob2xkQ29tcG9uZW50QWxpYXMsIGFsaWFzKTtcbiAgICBvbGRDb21wb25lbnRBbGlhcyAmJiBjYW52YXMudHJhbnNmZXJUaWNrZXJzKG9sZENvbXBvbmVudEFsaWFzLCBhbGlhcywgXCJkdXBsaWNhdGVcIik7XG4gICAgLy8gZWRpdCB0aGUgcHJvcGVydGllcyBvZiB0aGUgbmV3IGNvbXBvbmVudFxuICAgIGNvbXBvbmVudC5hbHBoYSA9IDA7XG4gICAgLy8gcmVtb3ZlIHRoZSBvbGQgY29tcG9uZW50XG4gICAgaWYgKG9sZENvbXBvbmVudEFsaWFzKSB7XG4gICAgICAgIGxldCBpZHMgPSByZW1vdmVXaXRoRGlzc29sdmUob2xkQ29tcG9uZW50QWxpYXMsIHsgLi4ucHJvcHMsIGF1dG9wbGF5OiBmYWxzZSwgY29tcGxldGVPbkNvbnRpbnVlIH0sIHByaW9yaXR5KTtcbiAgICAgICAgaWYgKGlkcykge1xuICAgICAgICAgICAgcmVzLnB1c2goLi4uaWRzKTtcbiAgICAgICAgICAgIHRpY2tlcklkVG9SZXN1bWUucHVzaCguLi5pZHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGNyZWF0ZSB0aGUgdGlja2VyIGFuZCBwbGF5IGl0XG4gICAgbGV0IGlkU2hvdyA9IGNhbnZhcy5hbmltYXRlKFxuICAgICAgICBhbGlhcyxcbiAgICAgICAge1xuICAgICAgICAgICAgYWxwaGE6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICB0aWNrZXJJZFRvUmVzdW1lLFxuICAgICAgICAgICAgY29tcGxldGVPbkNvbnRpbnVlLFxuICAgICAgICB9LFxuICAgICAgICBwcmlvcml0eSxcbiAgICApO1xuICAgIGlkU2hvdyAmJiByZXMucHVzaChpZFNob3cpO1xuICAgIC8vIGxvYWQgdGhlIGltYWdlIGlmIHRoZSBpbWFnZSBpcyBub3QgbG9hZGVkXG4gICAgaWYgKChjb21wb25lbnQgaW5zdGFuY2VvZiBJbWFnZVNwcml0ZSB8fCBjb21wb25lbnQgaW5zdGFuY2VvZiBJbWFnZUNvbnRhaW5lcikgJiYgY29tcG9uZW50LmhhdmVFbXB0eVRleHR1cmUpIHtcbiAgICAgICAgYXdhaXQgY29tcG9uZW50LmxvYWQoKTtcbiAgICB9XG4gICAgLy8gcmV0dXJuIHRoZSBpZHMgb2YgdGhlIHRpY2tlcnNcbiAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGEgaW1hZ2UgZnJvbSB0aGUgY2FudmFzIHdpdGggYSBkaXNvbHZlIGVmZmVjdC5cbiAqIERpc29sdmUgZWZmZWN0IGlzIGEgZWZmZWN0IHRoYXQgdGhlIGltYWdlIGlzIHJlbW92ZWQgd2l0aCBhIGZhZGUgb3V0LlxuICogVGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHtAbGluayByZW1vdmVXaXRoRmFkZX0uXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgVGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVXaXRoRGlzc29sdmUoXG4gICAgYWxpYXM6IHN0cmluZyxcbiAgICBwcm9wczogU2hvd1dpdGhEaXNzb2x2ZVRyYW5zaXRpb25Qcm9wcyA9IHt9LFxuICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZLFxuKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGxldCB7IGZvcmNlQ29tcGxldGVCZWZvcmVOZXh0ID0gdHJ1ZSB9ID0gcHJvcHM7XG4gICAgbGV0IHsgY29tcGxldGVPbkNvbnRpbnVlID0gZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQsIGFsaWFzVG9SZW1vdmVBZnRlciA9IFtdLCAuLi5vcHRpb25zIH0gPSBwcm9wcztcbiAgICBpZiAodHlwZW9mIGFsaWFzVG9SZW1vdmVBZnRlciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIgPSBbYWxpYXNUb1JlbW92ZUFmdGVyXTtcbiAgICB9XG4gICAgYWxpYXNUb1JlbW92ZUFmdGVyLnB1c2goYWxpYXMpO1xuICAgIC8vIGNyZWF0ZSB0aGUgdGlja2VyIGFuZCBwbGF5IGl0XG4gICAgbGV0IGlkID0gY2FudmFzLmFuaW1hdGUoXG4gICAgICAgIGFsaWFzLFxuICAgICAgICB7XG4gICAgICAgICAgICBhbHBoYTogMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlcixcbiAgICAgICAgICAgIGNvbXBsZXRlT25Db250aW51ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpb3JpdHksXG4gICAgKTtcbiAgICBpZiAoaWQpIHtcbiAgICAgICAgcmV0dXJuIFtpZF07XG4gICAgfVxufVxuXG4vKipcbiAqIFNob3cgYSBpbWFnZSBpbiB0aGUgY2FudmFzIHdpdGggYSBmYWRlIGVmZmVjdC5cbiAqIEZhZGUgZWZmZWN0IGlzIGEgZWZmZWN0IHRoYXQgdGhlIGltYWdlIGlzIHNob3duIHdpdGggYSBmYWRlIGluLlxuICogSWYgZXhpc3QgYSBpbWFnZSB3aXRoIHRoZSBzYW1lIGFsaWFzLCB0aGUgZXhpc3RpbmcgaW1hZ2UgaXMgcmVtb3ZlZCB3aXRoIGEgZmFkZSB0cmFuc2l0aW9uLCBhbmQgYWZ0ZXIgdGhlIGVmZmVjdCBpcyBkb25lLCB0aGUgbmV3IGltYWdlIGlzIHNob3duIHdpdGggYSBmYWRlIHRyYW5zaXRpb24uXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGNvbXBvbmVudCBUaGUgaW1hZ2VVcmwsIGFycmF5IG9mIGltYWdlVXJsIG9yIHRoZSBjYW52YXMgY29tcG9uZW50LiBJZiBpbWFnZVVybCBpcyBhIHZpZGVvLCB0aGVuIHRoZSB7QGxpbmsgVmlkZW9TcHJpdGV9IGlzIGFkZGVkIHRvIHRoZSBjYW52YXMuXG4gKiBJZiBpbWFnZVVybCBpcyBhbiBhcnJheSwgdGhlbiB0aGUge0BsaW5rIEltYWdlQ29udGFpbmVyfSBpcyBhZGRlZCB0byB0aGUgY2FudmFzLlxuICogSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGNvbXBvbmVudCwgdGhlbiB0aGUgYWxpYXMgaXMgdXNlZCBhcyB0aGUgdXJsLlxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgY29udGFpbnMgdGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuIFRoZSBwcm9taXNlIGlzIHJlc29sdmVkIHdoZW4gdGhlIGltYWdlIGlzIGxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dXaXRoRmFkZShcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIGNvbXBvbmVudD86IFRDb21wb25lbnQsXG4gICAgcHJvcHM6IFNob3dXaXRoRmFkZVRyYW5zaXRpb25Qcm9wcyA9IHt9LFxuICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZLFxuKTogUHJvbWlzZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCB7IGZvcmNlQ29tcGxldGVCZWZvcmVOZXh0ID0gdHJ1ZSB9ID0gcHJvcHM7XG4gICAgbGV0IHsgY29tcGxldGVPbkNvbnRpbnVlID0gZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQsIGFsaWFzVG9SZW1vdmVBZnRlciA9IFtdLCAuLi5vcHRpb25zIH0gPSBwcm9wcztcbiAgICBsZXQgcmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIGNvbXBvbmVudCA9IGFsaWFzO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGFsaWFzVG9SZW1vdmVBZnRlciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIgPSBbYWxpYXNUb1JlbW92ZUFmdGVyXTtcbiAgICB9XG4gICAgLy8gY2hlY2sgaWYgdGhlIGFsaWFzIGlzIGFscmVhZHkgZXhpc3RcbiAgICBsZXQgb2xkQ29tcG9uZW50ID0gY2FudmFzLmZpbmQoYWxpYXMpO1xuICAgIGlmICghb2xkQ29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybiBzaG93V2l0aERpc3NvbHZlKGFsaWFzLCBjb21wb25lbnQsIHByb3BzLCBwcmlvcml0eSk7XG4gICAgfVxuICAgIGxldCBvbGRDb21wb25lbnRBbGlhcyA9IGFsaWFzICsgXCJfdGVtcF9mYWRlXCI7XG4gICAgY2FudmFzLmVkaXRBbGlhcyhhbGlhcywgb2xkQ29tcG9uZW50QWxpYXMpO1xuICAgIGFsaWFzVG9SZW1vdmVBZnRlci5wdXNoKG9sZENvbXBvbmVudEFsaWFzKTtcbiAgICAvLyBhZGQgdGhlIG5ldyBjb21wb25lbnQgYW5kIHRyYW5zZmVyIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBvbGQgY29tcG9uZW50IHRvIHRoZSBuZXcgY29tcG9uZW50XG4gICAgY29tcG9uZW50ID0gYWRkQ29tcG9uZW50KGFsaWFzLCBjb21wb25lbnQsIHtcbiAgICAgICAgekluZGV4OiBvbGRDb21wb25lbnQgPyBvbGRDb21wb25lbnQucGFyZW50Py5nZXRDaGlsZEluZGV4KG9sZENvbXBvbmVudCkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgb2xkQ29tcG9uZW50Py5wYXJlbnQ/LnNldENoaWxkSW5kZXgob2xkQ29tcG9uZW50LCBvbGRDb21wb25lbnQucGFyZW50LmdldENoaWxkSW5kZXgob2xkQ29tcG9uZW50KSAtIDAuMSk7XG4gICAgb2xkQ29tcG9uZW50QWxpYXMgJiYgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHkob2xkQ29tcG9uZW50QWxpYXMsIGFsaWFzKTtcbiAgICBvbGRDb21wb25lbnRBbGlhcyAmJiBjYW52YXMudHJhbnNmZXJUaWNrZXJzKG9sZENvbXBvbmVudEFsaWFzLCBhbGlhcywgXCJkdXBsaWNhdGVcIik7XG4gICAgLy8gZWRpdCB0aGUgcHJvcGVydGllcyBvZiB0aGUgbmV3IGNvbXBvbmVudFxuICAgIGNvbXBvbmVudC5hbHBoYSA9IDA7XG4gICAgLy8gY3JlYXRlIHRoZSB0aWNrZXIgYW5kIHBsYXkgaXRcbiAgICBsZXQgaWRTaG93ID0gY2FudmFzLmFuaW1hdGUoXG4gICAgICAgIGFsaWFzLFxuICAgICAgICB7XG4gICAgICAgICAgICBhbHBoYTogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlcixcbiAgICAgICAgICAgIGNvbXBsZXRlT25Db250aW51ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpb3JpdHksXG4gICAgKTtcbiAgICBpZiAoaWRTaG93KSB7XG4gICAgICAgIC8vIHJlbW92ZSB0aGUgb2xkIGNvbXBvbmVudFxuICAgICAgICBsZXQgaWRIaWRlID0gcmVtb3ZlV2l0aERpc3NvbHZlKFxuICAgICAgICAgICAgb2xkQ29tcG9uZW50QWxpYXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICAgICAgdGlja2VySWRUb1Jlc3VtZTogaWRTaG93LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlT25Db250aW51ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmlvcml0eSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGlkSGlkZSkge1xuICAgICAgICAgICAgcmVzLnB1c2goLi4uaWRIaWRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5wdXNoKGlkU2hvdyk7XG4gICAgICAgIC8vIHBhdXNlIHRoZSB0aWNrZXJcbiAgICAgICAgY2FudmFzLnBhdXNlVGlja2VyKHsgaWQ6IGlkU2hvdyB9KTtcbiAgICB9XG4gICAgLy8gbG9hZCB0aGUgaW1hZ2UgaWYgdGhlIGltYWdlIGlzIG5vdCBsb2FkZWRcbiAgICBpZiAoKGNvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlU3ByaXRlIHx8IGNvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlQ29udGFpbmVyKSAmJiBjb21wb25lbnQuaGF2ZUVtcHR5VGV4dHVyZSkge1xuICAgICAgICBhd2FpdCBjb21wb25lbnQubG9hZCgpO1xuICAgIH1cbiAgICAvLyByZXR1cm4gdGhlIGlkcyBvZiB0aGUgdGlja2Vyc1xuICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgYSBpbWFnZSBmcm9tIHRoZSBjYW52YXMgd2l0aCBhIGZhZGUgZWZmZWN0LlxuICogRmFkZSBlZmZlY3QgaXMgYSBlZmZlY3QgdGhhdCB0aGUgaW1hZ2UgaXMgcmVtb3ZlZCB3aXRoIGEgZmFkZSBvdXQuXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8ge0BsaW5rIHJlbW92ZVdpdGhEaXNzb2x2ZX0uXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgVGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVXaXRoRmFkZShcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIHByb3BzOiBTaG93V2l0aEZhZGVUcmFuc2l0aW9uUHJvcHMgPSB7fSxcbiAgICBwcmlvcml0eT86IFVQREFURV9QUklPUklUWSxcbik6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gcmVtb3ZlV2l0aERpc3NvbHZlKGFsaWFzLCBwcm9wcywgcHJpb3JpdHkpO1xufVxuXG4vKipcbiAqIFNob3cgYSBpbWFnZSBpbiB0aGUgY2FudmFzIHdpdGggYSBtb3ZlIGVmZmVjdC4gVGhlIGltYWdlIGlzIG1vdmVkIGZyb20gb3V0c2lkZSB0aGUgY2FudmFzIHRvIHRoZSB4IGFuZCB5IHBvc2l0aW9uIG9mIHRoZSBpbWFnZS5cbiAqIElmIHRoZXJlIGlzIGEvbW9yZSB0aWNrZXIocykgd2l0aCB0aGUgc2FtZSBhbGlhcywgdGhlbiB0aGUgdGlja2VyKHMpIGlzL2FyZSBwYXVzZWQuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGNvbXBvbmVudCBUaGUgaW1hZ2VVcmwsIGFycmF5IG9mIGltYWdlVXJsIG9yIHRoZSBjYW52YXMgY29tcG9uZW50LiBJZiBpbWFnZVVybCBpcyBhIHZpZGVvLCB0aGVuIHRoZSB7QGxpbmsgVmlkZW9TcHJpdGV9IGlzIGFkZGVkIHRvIHRoZSBjYW52YXMuXG4gKiBJZiBpbWFnZVVybCBpcyBhbiBhcnJheSwgdGhlbiB0aGUge0BsaW5rIEltYWdlQ29udGFpbmVyfSBpcyBhZGRlZCB0byB0aGUgY2FudmFzLlxuICogSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGNvbXBvbmVudCwgdGhlbiB0aGUgYWxpYXMgaXMgdXNlZCBhcyB0aGUgdXJsLlxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgY29udGFpbnMgdGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuIFRoZSBwcm9taXNlIGlzIHJlc29sdmVkIHdoZW4gdGhlIGltYWdlIGlzIGxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1vdmVJbihcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIGNvbXBvbmVudD86IFRDb21wb25lbnQsXG4gICAgcHJvcHM6IE1vdmVJbk91dFByb3BzICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdHJ1ZSwgdGhlbiB0aGUgb2xkIGNvbXBvbmVudCBpcyByZW1vdmVkIHdpdGggYSBtb3ZlIG91dCwgYWZ0ZXIgdGhlIG5ldyBpbWFnZSBpcyBtb3ZlZCBpbi5cbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICovXG4gICAgICAgIHJlbW92ZU9sZENvbXBvbmVudFdpdGhNb3ZlT3V0PzogYm9vbGVhbjtcbiAgICB9ID0ge30sXG4gICAgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFksXG4pOiBQcm9taXNlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHsgZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQgPSB0cnVlIH0gPSBwcm9wcztcbiAgICBsZXQge1xuICAgICAgICBkaXJlY3Rpb24gPSBcInJpZ2h0XCIsXG4gICAgICAgIGNvbXBsZXRlT25Db250aW51ZSA9IGZvcmNlQ29tcGxldGVCZWZvcmVOZXh0LFxuICAgICAgICB0aWNrZXJJZFRvUmVzdW1lID0gW10sXG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFtdLFxuICAgICAgICByZW1vdmVPbGRDb21wb25lbnRXaXRoTW92ZU91dCxcbiAgICAgICAgLi4ub3B0aW9uc1xuICAgIH0gPSBwcm9wcztcbiAgICBsZXQgcmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBkZXN0aW5hdGlvbjogdW5kZWZpbmVkIHwgeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgdHlwZTogXCJwaXhlbFwiIHwgXCJwZXJjZW50YWdlXCIgfCBcImFsaWduXCIgfSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICBjb21wb25lbnQgPSBhbGlhcztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aWNrZXJJZFRvUmVzdW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRpY2tlcklkVG9SZXN1bWUgPSBbdGlja2VySWRUb1Jlc3VtZV07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYWxpYXNUb1JlbW92ZUFmdGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFthbGlhc1RvUmVtb3ZlQWZ0ZXJdO1xuICAgIH1cbiAgICAvLyBjaGVjayBpZiB0aGUgYWxpYXMgaXMgYWxyZWFkeSBleGlzdFxuICAgIGxldCBvbGRDb21wb25lbnRBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGxldCBvbGRDb21wb25lbnQgPSBjYW52YXMuZmluZChhbGlhcyk7XG4gICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgICBvbGRDb21wb25lbnRBbGlhcyA9IGFsaWFzICsgXCJfdGVtcF9tb3ZlaW5cIjtcbiAgICAgICAgY2FudmFzLmVkaXRBbGlhcyhhbGlhcywgb2xkQ29tcG9uZW50QWxpYXMpO1xuICAgICAgICBpZiAob2xkQ29tcG9uZW50IGluc3RhbmNlb2YgSW1hZ2VTcHJpdGUgfHwgb2xkQ29tcG9uZW50IGluc3RhbmNlb2YgSW1hZ2VDb250YWluZXIpIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gb2xkQ29tcG9uZW50LnBvc2l0aW9uSW5mbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0geyB4OiBvbGRDb21wb25lbnQueCwgeTogb2xkQ29tcG9uZW50LnksIHR5cGU6IFwicGl4ZWxcIiB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGFkZCB0aGUgbmV3IGNvbXBvbmVudCBhbmQgdHJhbnNmZXIgdGhlIHByb3BlcnRpZXMgb2YgdGhlIG9sZCBjb21wb25lbnQgdG8gdGhlIG5ldyBjb21wb25lbnRcbiAgICBjb21wb25lbnQgPSBhZGRDb21wb25lbnQoYWxpYXMsIGNvbXBvbmVudCwge1xuICAgICAgICB6SW5kZXg6IG9sZENvbXBvbmVudCA/IG9sZENvbXBvbmVudC5wYXJlbnQ/LmdldENoaWxkSW5kZXgob2xkQ29tcG9uZW50KSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBvbGRDb21wb25lbnQ/LnBhcmVudD8uc2V0Q2hpbGRJbmRleChvbGRDb21wb25lbnQsIG9sZENvbXBvbmVudC5wYXJlbnQuZ2V0Q2hpbGRJbmRleChvbGRDb21wb25lbnQpIC0gMC4xKTtcbiAgICBvbGRDb21wb25lbnRBbGlhcyAmJiBjYW52YXMuY29weUNhbnZhc0VsZW1lbnRQcm9wZXJ0eShvbGRDb21wb25lbnRBbGlhcywgYWxpYXMpO1xuICAgIG9sZENvbXBvbmVudEFsaWFzICYmIGNhbnZhcy50cmFuc2ZlclRpY2tlcnMob2xkQ29tcG9uZW50QWxpYXMsIGFsaWFzLCBcIm1vdmVcIik7XG4gICAgLy8gZWRpdCB0aGUgcHJvcGVydGllcyBvZiB0aGUgbmV3IGNvbXBvbmVudFxuICAgIGlmICghZGVzdGluYXRpb24pIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlU3ByaXRlIHx8IGNvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IGNvbXBvbmVudC5wb3NpdGlvbkluZm87XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsgeDogY29tcG9uZW50LngsIHk6IGNvbXBvbmVudC55LCB0eXBlOiBcInBpeGVsXCIgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyByZW1vdmUgdGhlIG9sZCBjb21wb25lbnRcbiAgICBpZiAob2xkQ29tcG9uZW50QWxpYXMpIHtcbiAgICAgICAgaWYgKHJlbW92ZU9sZENvbXBvbmVudFdpdGhNb3ZlT3V0KSB7XG4gICAgICAgICAgICBsZXQgaWRzID0gbW92ZU91dChvbGRDb21wb25lbnRBbGlhcywgeyAuLi5wcm9wcywgYXV0b3BsYXk6IGZhbHNlLCBjb21wbGV0ZU9uQ29udGludWUgfSwgcHJpb3JpdHkpO1xuICAgICAgICAgICAgaWYgKGlkcykge1xuICAgICAgICAgICAgICAgIHJlcy5wdXNoKC4uLmlkcyk7XG4gICAgICAgICAgICAgICAgdGlja2VySWRUb1Jlc3VtZS5wdXNoKC4uLmlkcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIucHVzaChvbGRDb21wb25lbnRBbGlhcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gbG9hZCB0aGUgaW1hZ2UgaWYgdGhlIGltYWdlIGlzIG5vdCBsb2FkZWRcbiAgICBpZiAoKGNvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlU3ByaXRlIHx8IGNvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlQ29udGFpbmVyKSAmJiBjb21wb25lbnQuaGF2ZUVtcHR5VGV4dHVyZSkge1xuICAgICAgICBhd2FpdCBjb21wb25lbnQubG9hZCgpO1xuICAgIH1cbiAgICAvLyBlZGl0IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBuZXcgY29tcG9uZW50XG4gICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgICAgY2FzZSBcInVwXCI6XG4gICAgICAgICAgICBjb21wb25lbnQueSA9IGNhbnZhcy5oZWlnaHQgKyBjb21wb25lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkb3duXCI6XG4gICAgICAgICAgICBjb21wb25lbnQueSA9IC1jb21wb25lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJsZWZ0XCI6XG4gICAgICAgICAgICBjb21wb25lbnQueCA9IGNhbnZhcy53aWR0aCArIGNvbXBvbmVudC53aWR0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmlnaHRcIjpcbiAgICAgICAgICAgIGNvbXBvbmVudC54ID0gLWNvbXBvbmVudC53aWR0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgaWRzID0gY2FudmFzLnBhdXNlVGlja2VyKHsgY2FudmFzQWxpYXM6IGFsaWFzIH0pO1xuICAgIHRpY2tlcklkVG9SZXN1bWUucHVzaCguLi5pZHMpO1xuICAgIC8vIGNyZWF0ZSB0aGUgdGlja2VyIGFuZCBwbGF5IGl0XG4gICAgbGV0IGlkU2hvdyA9IGNhbnZhcy5hbmltYXRlKFxuICAgICAgICBhbGlhcyxcbiAgICAgICAgbWFwRGVzdGluYXRpb24oZGVzdGluYXRpb24pIGFzIGFueSxcbiAgICAgICAge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHRpY2tlcklkVG9SZXN1bWUsXG4gICAgICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIsXG4gICAgICAgICAgICBjb21wbGV0ZU9uQ29udGludWUsXG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5LFxuICAgICk7XG4gICAgaWRTaG93ICYmIHJlcy5wdXNoKGlkU2hvdyk7XG4gICAgLy8gcmV0dXJuIHRoZSBpZHMgb2YgdGhlIHRpY2tlcnNcbiAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGEgaW1hZ2UgZnJvbSB0aGUgY2FudmFzIHdpdGggYSBtb3ZlIGVmZmVjdC4gVGhlIGltYWdlIGlzIG1vdmVkIGZyb20gdGhlIHggYW5kIHkgcG9zaXRpb24gb2YgdGhlIGltYWdlIHRvIG91dHNpZGUgdGhlIGNhbnZhcy5cbiAqIElmIHRoZXJlIGlzIGEvbW9yZSB0aWNrZXIocykgd2l0aCB0aGUgc2FtZSBhbGlhcywgdGhlbiB0aGUgdGlja2VyKHMpIGlzL2FyZSBwYXVzZWQuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgVGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlT3V0KGFsaWFzOiBzdHJpbmcsIHByb3BzOiBNb3ZlSW5PdXRQcm9wcyA9IHt9LCBwcmlvcml0eT86IFVQREFURV9QUklPUklUWSk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgeyBmb3JjZUNvbXBsZXRlQmVmb3JlTmV4dCA9IHRydWUgfSA9IHByb3BzO1xuICAgIGxldCB7XG4gICAgICAgIGRpcmVjdGlvbiA9IFwicmlnaHRcIixcbiAgICAgICAgY29tcGxldGVPbkNvbnRpbnVlID0gZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQsXG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFtdLFxuICAgICAgICAuLi5vcHRpb25zXG4gICAgfSA9IHByb3BzO1xuICAgIGlmICh0eXBlb2YgYWxpYXNUb1JlbW92ZUFmdGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFthbGlhc1RvUmVtb3ZlQWZ0ZXJdO1xuICAgIH1cbiAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIucHVzaChhbGlhcyk7XG4gICAgLy8gZ2V0IHRoZSBkZXN0aW5hdGlvblxuICAgIGxldCBjb21wb25lbnQgPSBjYW52YXMuZmluZChhbGlhcyk7XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oYFRoZSBjYW52YXMgY29tcG9uZW50IFwiJHthbGlhc31cIiBpcyBub3QgZm91bmQuYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRlc3RpbmF0aW9uID0geyB4OiBjb21wb25lbnQueCwgeTogY29tcG9uZW50LnkgfTtcbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICBjYXNlIFwidXBcIjpcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uLnkgPSAtY29tcG9uZW50LmhlaWdodDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZG93blwiOlxuICAgICAgICAgICAgZGVzdGluYXRpb24ueSA9IGNhbnZhcy5oZWlnaHQgKyBjb21wb25lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJsZWZ0XCI6XG4gICAgICAgICAgICBkZXN0aW5hdGlvbi54ID0gLWNvbXBvbmVudC53aWR0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmlnaHRcIjpcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uLnggPSBjYW52YXMud2lkdGggKyBjb21wb25lbnQud2lkdGg7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgLy8gY3JlYXRlIHRoZSB0aWNrZXIgYW5kIHBsYXkgaXRcbiAgICBjYW52YXMucGF1c2VUaWNrZXIoeyBjYW52YXNBbGlhczogYWxpYXMgfSk7XG4gICAgbGV0IGlkID0gY2FudmFzLmFuaW1hdGUoXG4gICAgICAgIGFsaWFzLFxuICAgICAgICBkZXN0aW5hdGlvbixcbiAgICAgICAge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlcixcbiAgICAgICAgICAgIGNvbXBsZXRlT25Db250aW51ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpb3JpdHksXG4gICAgKTtcbiAgICBpZiAoaWQpIHtcbiAgICAgICAgcmV0dXJuIFtpZF07XG4gICAgfVxufVxuXG4vKipcbiAqIFNob3cgYSBpbWFnZSBpbiB0aGUgY2FudmFzIHdpdGggYSB6b29tIGVmZmVjdC4gVGhlIGltYWdlIGlzIHpvb21lZCBpbiBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIGNhbnZhcy5cbiAqIElmIHRoZXJlIGlzIGEvbW9yZSB0aWNrZXIocykgd2l0aCB0aGUgc2FtZSBhbGlhcywgdGhlbiB0aGUgdGlja2VyKHMpIGlzL2FyZSBwYXVzZWQuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGNvbXBvbmVudCBUaGUgaW1hZ2VVcmwsIGFycmF5IG9mIGltYWdlVXJsIG9yIHRoZSBjYW52YXMgY29tcG9uZW50LiBJZiBpbWFnZVVybCBpcyBhIHZpZGVvLCB0aGVuIHRoZSB7QGxpbmsgVmlkZW9TcHJpdGV9IGlzIGFkZGVkIHRvIHRoZSBjYW52YXMuXG4gKiBJZiBpbWFnZVVybCBpcyBhbiBhcnJheSwgdGhlbiB0aGUge0BsaW5rIEltYWdlQ29udGFpbmVyfSBpcyBhZGRlZCB0byB0aGUgY2FudmFzLlxuICogSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGNvbXBvbmVudCwgdGhlbiB0aGUgYWxpYXMgaXMgdXNlZCBhcyB0aGUgdXJsLlxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgY29udGFpbnMgdGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuIFRoZSBwcm9taXNlIGlzIHJlc29sdmVkIHdoZW4gdGhlIGltYWdlIGlzIGxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHpvb21JbihcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIGNvbXBvbmVudD86IFRDb21wb25lbnQsXG4gICAgcHJvcHM6IFpvb21Jbk91dFByb3BzICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdHJ1ZSwgdGhlbiB0aGUgb2xkIGNvbXBvbmVudCBpcyByZW1vdmVkIHdpdGggYSB6b29tIG91dCwgYWZ0ZXIgdGhlIG5ldyBpbWFnZSBpcyB6b29tZWQgaW4uXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAqL1xuICAgICAgICByZW1vdmVPbGRDb21wb25lbnRXaXRoWm9vbU91dD86IGJvb2xlYW47XG4gICAgfSA9IHt9LFxuICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZLFxuKTogUHJvbWlzZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCB7IGZvcmNlQ29tcGxldGVCZWZvcmVOZXh0ID0gdHJ1ZSB9ID0gcHJvcHM7XG4gICAgbGV0IHtcbiAgICAgICAgZGlyZWN0aW9uID0gXCJyaWdodFwiLFxuICAgICAgICBjb21wbGV0ZU9uQ29udGludWUgPSBmb3JjZUNvbXBsZXRlQmVmb3JlTmV4dCxcbiAgICAgICAgdGlja2VySWRUb1Jlc3VtZSA9IFtdLFxuICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIgPSBbXSxcbiAgICAgICAgLi4ub3B0aW9uc1xuICAgIH0gPSBwcm9wcztcbiAgICBsZXQgcmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBkZXN0aW5hdGlvbjogdW5kZWZpbmVkIHwgeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgdHlwZTogXCJwaXhlbFwiIHwgXCJwZXJjZW50YWdlXCIgfCBcImFsaWduXCIgfSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICBjb21wb25lbnQgPSBhbGlhcztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aWNrZXJJZFRvUmVzdW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRpY2tlcklkVG9SZXN1bWUgPSBbdGlja2VySWRUb1Jlc3VtZV07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYWxpYXNUb1JlbW92ZUFmdGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFthbGlhc1RvUmVtb3ZlQWZ0ZXJdO1xuICAgIH1cbiAgICAvLyBjaGVjayBpZiB0aGUgYWxpYXMgaXMgYWxyZWFkeSBleGlzdFxuICAgIGxldCBvbGRDb21wb25lbnRBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGxldCBvbGRDb21wb25lbnQgPSBjYW52YXMuZmluZChhbGlhcyk7XG4gICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgICBvbGRDb21wb25lbnRBbGlhcyA9IGFsaWFzICsgXCJfdGVtcF96b29tXCI7XG4gICAgICAgIGNhbnZhcy5lZGl0QWxpYXMoYWxpYXMsIG9sZENvbXBvbmVudEFsaWFzKTtcbiAgICAgICAgaWYgKG9sZENvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlU3ByaXRlIHx8IG9sZENvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG9sZENvbXBvbmVudC5wb3NpdGlvbkluZm87XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsgeDogb2xkQ29tcG9uZW50LngsIHk6IG9sZENvbXBvbmVudC55LCB0eXBlOiBcInBpeGVsXCIgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBhZGQgdGhlIG5ldyBjb21wb25lbnQgYW5kIHRyYW5zZmVyIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBvbGQgY29tcG9uZW50IHRvIHRoZSBuZXcgY29tcG9uZW50XG4gICAgY29tcG9uZW50ID0gYWRkQ29tcG9uZW50KGFsaWFzLCBjb21wb25lbnQsIHtcbiAgICAgICAgekluZGV4OiBvbGRDb21wb25lbnQgPyBvbGRDb21wb25lbnQucGFyZW50Py5nZXRDaGlsZEluZGV4KG9sZENvbXBvbmVudCkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgb2xkQ29tcG9uZW50Py5wYXJlbnQ/LnNldENoaWxkSW5kZXgob2xkQ29tcG9uZW50LCBvbGRDb21wb25lbnQucGFyZW50LmdldENoaWxkSW5kZXgob2xkQ29tcG9uZW50KSAtIDAuMSk7XG4gICAgb2xkQ29tcG9uZW50QWxpYXMgJiYgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHkob2xkQ29tcG9uZW50QWxpYXMsIGFsaWFzKTtcbiAgICBvbGRDb21wb25lbnRBbGlhcyAmJiBjYW52YXMudHJhbnNmZXJUaWNrZXJzKG9sZENvbXBvbmVudEFsaWFzLCBhbGlhcywgXCJtb3ZlXCIpO1xuICAgIC8vIGVkaXQgdGhlIHByb3BlcnRpZXMgb2YgdGhlIG5ldyBjb21wb25lbnRcbiAgICBpZiAoIWRlc3RpbmF0aW9uKSB7XG4gICAgICAgIGlmIChjb21wb25lbnQgaW5zdGFuY2VvZiBJbWFnZVNwcml0ZSB8fCBjb21wb25lbnQgaW5zdGFuY2VvZiBJbWFnZUNvbnRhaW5lcikge1xuICAgICAgICAgICAgZGVzdGluYXRpb24gPSBjb21wb25lbnQucG9zaXRpb25JbmZvO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7IHg6IGNvbXBvbmVudC54LCB5OiBjb21wb25lbnQueSwgdHlwZTogXCJwaXhlbFwiIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGl2b3Q6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9IHtcbiAgICAgICAgeDogY29tcG9uZW50LnBpdm90LngsXG4gICAgICAgIHk6IGNvbXBvbmVudC5waXZvdC55LFxuICAgIH07XG4gICAgY29uc3Qgc2NhbGU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9IHtcbiAgICAgICAgeDogY29tcG9uZW50LnNjYWxlLngsXG4gICAgICAgIHk6IGNvbXBvbmVudC5zY2FsZS55LFxuICAgIH07XG4gICAgLy8gcmVtb3ZlIHRoZSBvbGQgY29tcG9uZW50XG4gICAgaWYgKG9sZENvbXBvbmVudEFsaWFzKSB7XG4gICAgICAgIGlmIChwcm9wcy5yZW1vdmVPbGRDb21wb25lbnRXaXRoWm9vbU91dCkge1xuICAgICAgICAgICAgbGV0IGlkcyA9IHpvb21PdXQob2xkQ29tcG9uZW50QWxpYXMsIHsgLi4ucHJvcHMsIGF1dG9wbGF5OiBmYWxzZSwgY29tcGxldGVPbkNvbnRpbnVlIH0sIHByaW9yaXR5KTtcbiAgICAgICAgICAgIGlmIChpZHMpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaCguLi5pZHMpO1xuICAgICAgICAgICAgICAgIHRpY2tlcklkVG9SZXN1bWUucHVzaCguLi5pZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWxpYXNUb1JlbW92ZUFmdGVyLnB1c2gob2xkQ29tcG9uZW50QWxpYXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGxvYWQgdGhlIGltYWdlIGlmIHRoZSBpbWFnZSBpcyBub3QgbG9hZGVkXG4gICAgaWYgKChjb21wb25lbnQgaW5zdGFuY2VvZiBJbWFnZVNwcml0ZSB8fCBjb21wb25lbnQgaW5zdGFuY2VvZiBJbWFnZUNvbnRhaW5lcikgJiYgY29tcG9uZW50LmhhdmVFbXB0eVRleHR1cmUpIHtcbiAgICAgICAgYXdhaXQgY29tcG9uZW50LmxvYWQoKTtcbiAgICB9XG4gICAgLy8gZWRpdCB0aGUgcHJvcGVydGllcyBvZiB0aGUgbmV3IGNvbXBvbmVudFxuICAgIGlmIChkaXJlY3Rpb24gPT0gXCJ1cFwiKSB7XG4gICAgICAgIGNvbXBvbmVudC5waXZvdC55ID0gY2FudmFzLmhlaWdodCAtIGNvbXBvbmVudC55O1xuICAgICAgICBjb21wb25lbnQucGl2b3QueCA9IGNhbnZhcy53aWR0aCAvIDIgLSBjb21wb25lbnQueDtcbiAgICAgICAgY29tcG9uZW50LnkgPSBjYW52YXMuaGVpZ2h0O1xuICAgICAgICBjb21wb25lbnQueCA9IGNhbnZhcy53aWR0aCAvIDI7XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJkb3duXCIpIHtcbiAgICAgICAgY29tcG9uZW50LnBpdm90LnkgPSAwIC0gY29tcG9uZW50Lnk7XG4gICAgICAgIGNvbXBvbmVudC5waXZvdC54ID0gY2FudmFzLndpZHRoIC8gMiAtIGNvbXBvbmVudC54O1xuICAgICAgICBjb21wb25lbnQueSA9IDA7XG4gICAgICAgIGNvbXBvbmVudC54ID0gY2FudmFzLndpZHRoIC8gMjtcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcImxlZnRcIikge1xuICAgICAgICBjb21wb25lbnQucGl2b3QueCA9IGNhbnZhcy53aWR0aCAtIGNvbXBvbmVudC54O1xuICAgICAgICBjb21wb25lbnQucGl2b3QueSA9IGNhbnZhcy5oZWlnaHQgLyAyIC0gY29tcG9uZW50Lnk7XG4gICAgICAgIGNvbXBvbmVudC54ID0gY2FudmFzLndpZHRoO1xuICAgICAgICBjb21wb25lbnQueSA9IGNhbnZhcy5oZWlnaHQgLyAyO1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IFwicmlnaHRcIikge1xuICAgICAgICBjb21wb25lbnQucGl2b3QueCA9IDAgLSBjb21wb25lbnQueDtcbiAgICAgICAgY29tcG9uZW50LnBpdm90LnkgPSBjYW52YXMuaGVpZ2h0IC8gMiAtIGNvbXBvbmVudC55O1xuICAgICAgICBjb21wb25lbnQueCA9IDA7XG4gICAgICAgIGNvbXBvbmVudC55ID0gY2FudmFzLmhlaWdodCAvIDI7XG4gICAgfVxuICAgIGNvbXBvbmVudC5waXZvdCA9IFByb3BzVXRpbHMuZ2V0UG9pbnRCeVN1cGVyUG9pbnQoY29tcG9uZW50LnBpdm90LCBjb21wb25lbnQuYW5nbGUpO1xuICAgIGNvbXBvbmVudC5zY2FsZS5zZXQoMCk7XG4gICAgLy8gcGF1c2UgdGhlIHRpY2tlclxuICAgIGxldCBpZHMgPSBjYW52YXMucGF1c2VUaWNrZXIoeyBjYW52YXNBbGlhczogYWxpYXMgfSk7XG4gICAgdGlja2VySWRUb1Jlc3VtZS5wdXNoKC4uLmlkcyk7XG4gICAgLy8gY3JlYXRlIHRoZSB0aWNrZXIgYW5kIHBsYXkgaXRcbiAgICBsZXQgaWRTaG93ID0gY2FudmFzLmFuaW1hdGUoXG4gICAgICAgIGFsaWFzLFxuICAgICAgICB7XG4gICAgICAgICAgICAuLi4obWFwRGVzdGluYXRpb24oZGVzdGluYXRpb24pIGFzIGFueSksXG4gICAgICAgICAgICBwaXZvdFg6IHBpdm90LngsXG4gICAgICAgICAgICBwaXZvdFk6IHBpdm90LnksXG4gICAgICAgICAgICBzY2FsZVg6IHNjYWxlLngsXG4gICAgICAgICAgICBzY2FsZVk6IHNjYWxlLnksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICB0aWNrZXJJZFRvUmVzdW1lLFxuICAgICAgICAgICAgYWxpYXNUb1JlbW92ZUFmdGVyLFxuICAgICAgICAgICAgY29tcGxldGVPbkNvbnRpbnVlLFxuICAgICAgICB9LFxuICAgICAgICBwcmlvcml0eSxcbiAgICApO1xuICAgIGlkU2hvdyAmJiByZXMucHVzaChpZFNob3cpO1xuICAgIC8vIHJldHVybiB0aGUgaWRzIG9mIHRoZSB0aWNrZXJzXG4gICAgaWYgKHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlbW92ZSBhIGltYWdlIGZyb20gdGhlIGNhbnZhcyB3aXRoIGEgem9vbSBlZmZlY3QuIFRoZSBpbWFnZSBpcyB6b29tZWQgb3V0IHRvIHRoZSBjZW50ZXIgb2YgdGhlIGNhbnZhcy5cbiAqIElmIHRoZXJlIGlzIGEvbW9yZSB0aWNrZXIocykgd2l0aCB0aGUgc2FtZSBhbGlhcywgdGhlbiB0aGUgdGlja2VyKHMpIGlzL2FyZSBwYXVzZWQuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgVGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b29tT3V0KGFsaWFzOiBzdHJpbmcsIHByb3BzOiBab29tSW5PdXRQcm9wcyA9IHt9LCBwcmlvcml0eT86IFVQREFURV9QUklPUklUWSk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgeyBmb3JjZUNvbXBsZXRlQmVmb3JlTmV4dCA9IHRydWUgfSA9IHByb3BzO1xuICAgIGxldCB7XG4gICAgICAgIGRpcmVjdGlvbiA9IFwicmlnaHRcIixcbiAgICAgICAgY29tcGxldGVPbkNvbnRpbnVlID0gZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQsXG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFtdLFxuICAgICAgICAuLi5vcHRpb25zXG4gICAgfSA9IHByb3BzO1xuICAgIGlmICh0eXBlb2YgYWxpYXNUb1JlbW92ZUFmdGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFsaWFzVG9SZW1vdmVBZnRlciA9IFthbGlhc1RvUmVtb3ZlQWZ0ZXJdO1xuICAgIH1cbiAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIucHVzaChhbGlhcyk7XG4gICAgLy8gZ2V0IHRoZSBkZXN0aW5hdGlvblxuICAgIGxldCBjb21wb25lbnQgPSBjYW52YXMuZmluZChhbGlhcyk7XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oYFRoZSBjYW52YXMgY29tcG9uZW50IFwiJHthbGlhc31cIiBpcyBub3QgZm91bmQuYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRlc3RpbmF0aW9uID0geyB4OiBjb21wb25lbnQueCwgeTogY29tcG9uZW50LnkgfTtcbiAgICBsZXQgcGl2b3Q6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9IHtcbiAgICAgICAgeDogY29tcG9uZW50LnBpdm90LngsXG4gICAgICAgIHk6IGNvbXBvbmVudC5waXZvdC55LFxuICAgIH07XG4gICAgaWYgKGRpcmVjdGlvbiA9PSBcImRvd25cIikge1xuICAgICAgICBkZXN0aW5hdGlvbi55ID0gY2FudmFzLmhlaWdodDtcbiAgICAgICAgZGVzdGluYXRpb24ueCA9IGNhbnZhcy53aWR0aCAvIDI7XG4gICAgICAgIHBpdm90LnkgPSBjYW52YXMuaGVpZ2h0IC0gZGVzdGluYXRpb24ueTtcbiAgICAgICAgcGl2b3QueCA9IGNhbnZhcy53aWR0aCAvIDIgLSBkZXN0aW5hdGlvbi54O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IFwidXBcIikge1xuICAgICAgICBkZXN0aW5hdGlvbi55ID0gMDtcbiAgICAgICAgZGVzdGluYXRpb24ueCA9IGNhbnZhcy53aWR0aCAvIDI7XG4gICAgICAgIHBpdm90LnkgPSAwIC0gZGVzdGluYXRpb24ueTtcbiAgICAgICAgcGl2b3QueCA9IGNhbnZhcy53aWR0aCAvIDIgLSBkZXN0aW5hdGlvbi54O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IFwicmlnaHRcIikge1xuICAgICAgICBkZXN0aW5hdGlvbi54ID0gY2FudmFzLndpZHRoO1xuICAgICAgICBkZXN0aW5hdGlvbi55ID0gY2FudmFzLmhlaWdodCAvIDI7XG4gICAgICAgIHBpdm90LnggPSBjYW52YXMud2lkdGggLSBkZXN0aW5hdGlvbi54O1xuICAgICAgICBwaXZvdC55ID0gY2FudmFzLmhlaWdodCAvIDIgLSBkZXN0aW5hdGlvbi55O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IFwibGVmdFwiKSB7XG4gICAgICAgIGRlc3RpbmF0aW9uLnggPSAwO1xuICAgICAgICBkZXN0aW5hdGlvbi55ID0gY2FudmFzLmhlaWdodCAvIDI7XG4gICAgICAgIHBpdm90LnggPSAwIC0gZGVzdGluYXRpb24ueDtcbiAgICAgICAgcGl2b3QueSA9IGNhbnZhcy5oZWlnaHQgLyAyIC0gZGVzdGluYXRpb24ueTtcbiAgICB9XG4gICAgcGl2b3QgPSBQcm9wc1V0aWxzLmdldFBvaW50QnlTdXBlclBvaW50KHBpdm90LCBjb21wb25lbnQuYW5nbGUpO1xuICAgIC8vIGNyZWF0ZSB0aGUgdGlja2VyIGFuZCBwbGF5IGl0XG4gICAgY2FudmFzLnBhdXNlVGlja2VyKHsgY2FudmFzQWxpYXM6IGFsaWFzIH0pO1xuICAgIGxldCBpZCA9IGNhbnZhcy5hbmltYXRlKFxuICAgICAgICBhbGlhcyxcbiAgICAgICAge1xuICAgICAgICAgICAgLi4uZGVzdGluYXRpb24sXG4gICAgICAgICAgICBwaXZvdFg6IHBpdm90LngsXG4gICAgICAgICAgICBwaXZvdFk6IHBpdm90LnksXG4gICAgICAgICAgICBzY2FsZVg6IDAsXG4gICAgICAgICAgICBzY2FsZVk6IDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBhbGlhc1RvUmVtb3ZlQWZ0ZXIsXG4gICAgICAgICAgICBjb21wbGV0ZU9uQ29udGludWUsXG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5LFxuICAgICk7XG4gICAgaWYgKGlkKSB7XG4gICAgICAgIHJldHVybiBbaWRdO1xuICAgIH1cbn1cblxuLyoqXG4gKiBTaG93IGEgaW1hZ2UgaW4gdGhlIGNhbnZhcyB3aXRoIGEgcHVzaCBlZmZlY3QuIFRoZSBuZXcgaW1hZ2UgaXMgcHVzaGVkIGluIGZyb20gdGhlIGluc2lkZSBvZiB0aGUgY2FudmFzIGFuZCB0aGUgb2xkIGltYWdlIGlzIHB1c2hlZCBvdXQgdG8gdGhlIG91dHNpZGUgb2YgdGhlIGNhbnZhcy5cbiAqIElmIHRoZXJlIGlzIGEvbW9yZSB0aWNrZXIocykgd2l0aCB0aGUgc2FtZSBhbGlhcywgdGhlbiB0aGUgdGlja2VyKHMpIGlzL2FyZSBwYXVzZWQuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIGNvbXBvbmVudCBUaGUgaW1hZ2VVcmwsIGFycmF5IG9mIGltYWdlVXJsIG9yIHRoZSBjYW52YXMgY29tcG9uZW50LiBJZiBpbWFnZVVybCBpcyBhIHZpZGVvLCB0aGVuIHRoZSB7QGxpbmsgVmlkZW9TcHJpdGV9IGlzIGFkZGVkIHRvIHRoZSBjYW52YXMuXG4gKiBJZiBpbWFnZVVybCBpcyBhbiBhcnJheSwgdGhlbiB0aGUge0BsaW5rIEltYWdlQ29udGFpbmVyfSBpcyBhZGRlZCB0byB0aGUgY2FudmFzLlxuICogSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGNvbXBvbmVudCwgdGhlbiB0aGUgYWxpYXMgaXMgdXNlZCBhcyB0aGUgdXJsLlxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgY29udGFpbnMgdGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuIFRoZSBwcm9taXNlIGlzIHJlc29sdmVkIHdoZW4gdGhlIGltYWdlIGlzIGxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1c2hJbihcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIGNvbXBvbmVudD86IFRDb21wb25lbnQsXG4gICAgcHJvcHM6IFB1c2hJbk91dFByb3BzID0ge30sXG4gICAgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFksXG4pOiBQcm9taXNlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHsgZm9yY2VDb21wbGV0ZUJlZm9yZU5leHQgPSB0cnVlIH0gPSBwcm9wcztcbiAgICBsZXQge1xuICAgICAgICBkaXJlY3Rpb24gPSBcInJpZ2h0XCIsXG4gICAgICAgIGNvbXBsZXRlT25Db250aW51ZSA9IGZvcmNlQ29tcGxldGVCZWZvcmVOZXh0LFxuICAgICAgICB0aWNrZXJJZFRvUmVzdW1lID0gW10sXG4gICAgICAgIC4uLm9wdGlvbnNcbiAgICB9ID0gcHJvcHM7XG4gICAgbGV0IHJlczogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgZGVzdGluYXRpb246IHVuZGVmaW5lZCB8IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHR5cGU6IFwicGl4ZWxcIiB8IFwicGVyY2VudGFnZVwiIHwgXCJhbGlnblwiIH0gPSB1bmRlZmluZWQ7XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgY29tcG9uZW50ID0gYWxpYXM7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGlja2VySWRUb1Jlc3VtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aWNrZXJJZFRvUmVzdW1lID0gW3RpY2tlcklkVG9SZXN1bWVdO1xuICAgIH1cbiAgICAvLyBjaGVjayBpZiB0aGUgYWxpYXMgaXMgYWxyZWFkeSBleGlzdFxuICAgIGxldCBvbGRDb21wb25lbnRBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGxldCBvbGRDb21wb25lbnQgPSBjYW52YXMuZmluZChhbGlhcyk7XG4gICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgICBvbGRDb21wb25lbnRBbGlhcyA9IGFsaWFzICsgXCJfdGVtcF9wdXNoXCI7XG4gICAgICAgIGNhbnZhcy5lZGl0QWxpYXMoYWxpYXMsIG9sZENvbXBvbmVudEFsaWFzKTtcbiAgICAgICAgaWYgKG9sZENvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlU3ByaXRlIHx8IG9sZENvbXBvbmVudCBpbnN0YW5jZW9mIEltYWdlQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG9sZENvbXBvbmVudC5wb3NpdGlvbkluZm87XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsgeDogb2xkQ29tcG9uZW50LngsIHk6IG9sZENvbXBvbmVudC55LCB0eXBlOiBcInBpeGVsXCIgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBhZGQgdGhlIG5ldyBjb21wb25lbnQgYW5kIHRyYW5zZmVyIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBvbGQgY29tcG9uZW50IHRvIHRoZSBuZXcgY29tcG9uZW50XG4gICAgY29tcG9uZW50ID0gYWRkQ29tcG9uZW50KGFsaWFzLCBjb21wb25lbnQsIHtcbiAgICAgICAgekluZGV4OiBvbGRDb21wb25lbnQgPyBvbGRDb21wb25lbnQucGFyZW50Py5nZXRDaGlsZEluZGV4KG9sZENvbXBvbmVudCkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgb2xkQ29tcG9uZW50Py5wYXJlbnQ/LnNldENoaWxkSW5kZXgob2xkQ29tcG9uZW50LCBvbGRDb21wb25lbnQucGFyZW50LmdldENoaWxkSW5kZXgob2xkQ29tcG9uZW50KSAtIDAuMSk7XG4gICAgb2xkQ29tcG9uZW50QWxpYXMgJiYgY2FudmFzLmNvcHlDYW52YXNFbGVtZW50UHJvcGVydHkob2xkQ29tcG9uZW50QWxpYXMsIGFsaWFzKTtcbiAgICBvbGRDb21wb25lbnRBbGlhcyAmJiBjYW52YXMudHJhbnNmZXJUaWNrZXJzKG9sZENvbXBvbmVudEFsaWFzLCBhbGlhcywgXCJtb3ZlXCIpO1xuICAgIC8vIGVkaXQgdGhlIHByb3BlcnRpZXMgb2YgdGhlIG5ldyBjb21wb25lbnRcbiAgICBpZiAoIWRlc3RpbmF0aW9uKSB7XG4gICAgICAgIGlmICgoY29tcG9uZW50IGluc3RhbmNlb2YgSW1hZ2VTcHJpdGUgfHwgY29tcG9uZW50IGluc3RhbmNlb2YgSW1hZ2VDb250YWluZXIpICYmIGNvbXBvbmVudC5oYXZlRW1wdHlUZXh0dXJlKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IGNvbXBvbmVudC5wb3NpdGlvbkluZm87XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsgeDogY29tcG9uZW50LngsIHk6IGNvbXBvbmVudC55LCB0eXBlOiBcInBpeGVsXCIgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBsb2FkIHRoZSBpbWFnZSBpZiB0aGUgaW1hZ2UgaXMgbm90IGxvYWRlZFxuICAgIGlmICgoY29tcG9uZW50IGluc3RhbmNlb2YgSW1hZ2VTcHJpdGUgfHwgY29tcG9uZW50IGluc3RhbmNlb2YgSW1hZ2VDb250YWluZXIpICYmIGNvbXBvbmVudC5oYXZlRW1wdHlUZXh0dXJlKSB7XG4gICAgICAgIGF3YWl0IGNvbXBvbmVudC5sb2FkKCk7XG4gICAgfVxuICAgIC8vIGVkaXQgdGhlIHByb3BlcnRpZXMgb2YgdGhlIG5ldyBjb21wb25lbnRcbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICBjYXNlIFwidXBcIjpcbiAgICAgICAgICAgIGNvbXBvbmVudC55ID0gY2FudmFzLmhlaWdodCArIGNvbXBvbmVudC5oZWlnaHQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRvd25cIjpcbiAgICAgICAgICAgIGNvbXBvbmVudC55ID0gLWNvbXBvbmVudC5oZWlnaHQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImxlZnRcIjpcbiAgICAgICAgICAgIGNvbXBvbmVudC54ID0gY2FudmFzLndpZHRoICsgY29tcG9uZW50LndpZHRoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyaWdodFwiOlxuICAgICAgICAgICAgY29tcG9uZW50LnggPSAtY29tcG9uZW50LndpZHRoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxldCBpZHMgPSBjYW52YXMucGF1c2VUaWNrZXIoeyBjYW52YXNBbGlhczogYWxpYXMgfSk7XG4gICAgdGlja2VySWRUb1Jlc3VtZS5wdXNoKC4uLmlkcyk7XG4gICAgLy8gcmVtb3ZlIHRoZSBvbGQgY29tcG9uZW50XG4gICAgaWYgKG9sZENvbXBvbmVudEFsaWFzKSB7XG4gICAgICAgIGxldCBpZHMgPSBwdXNoT3V0KG9sZENvbXBvbmVudEFsaWFzLCB7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uLCAvLz09IFwidXBcIiA/IFwiZG93blwiIDogZGlyZWN0aW9uID09IFwiZG93blwiID8gXCJ1cFwiIDogZGlyZWN0aW9uID09IFwibGVmdFwiID8gXCJyaWdodFwiIDogXCJsZWZ0XCIsXG4gICAgICAgICAgICBjb21wbGV0ZU9uQ29udGludWUsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaWRzKSB7XG4gICAgICAgICAgICByZXMucHVzaCguLi5pZHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGNyZWF0ZSB0aGUgdGlja2VyIGFuZCBwbGF5IGl0XG4gICAgbGV0IGlkU2hvdyA9IGNhbnZhcy5hbmltYXRlKFxuICAgICAgICBhbGlhcyxcbiAgICAgICAgbWFwRGVzdGluYXRpb24oZGVzdGluYXRpb24pIGFzIGFueSxcbiAgICAgICAge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHRpY2tlcklkVG9SZXN1bWUsXG4gICAgICAgICAgICBjb21wbGV0ZU9uQ29udGludWUsXG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5LFxuICAgICk7XG4gICAgaWRTaG93ICYmIHJlcy5wdXNoKGlkU2hvdyk7XG4gICAgLy8gcmV0dXJuIHRoZSBpZHMgb2YgdGhlIHRpY2tlcnNcbiAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGEgaW1hZ2UgZnJvbSB0aGUgY2FudmFzIHdpdGggYSBwdXNoIGVmZmVjdC4gVGhlIGltYWdlIGlzIHB1c2hlZCBvdXQgdG8gdGhlIG91dHNpZGUgb2YgdGhlIGNhbnZhcy5cbiAqIElmIHRoZXJlIGlzIGEvbW9yZSB0aWNrZXIocykgd2l0aCB0aGUgc2FtZSBhbGlhcywgdGhlbiB0aGUgdGlja2VyKHMpIGlzL2FyZSBwYXVzZWQuXG4gKiBAcGFyYW0gYWxpYXMgVGhlIHVuaXF1ZSBhbGlhcyBvZiB0aGUgaW1hZ2UuIFlvdSBjYW4gdXNlIHRoaXMgYWxpYXMgdG8gcmVmZXIgdG8gdGhpcyBpbWFnZVxuICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlZmZlY3RcbiAqIEBwYXJhbSBwcmlvcml0eSBUaGUgcHJpb3JpdHkgb2YgdGhlIGVmZmVjdFxuICogQHJldHVybnMgVGhlIGlkcyBvZiB0aGUgdGlja2VycyB0aGF0IGFyZSB1c2VkIGluIHRoZSBlZmZlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdXNoT3V0KFxuICAgIGFsaWFzOiBzdHJpbmcsXG4gICAgcHJvcHM6IFB1c2hJbk91dFByb3BzID0geyBkaXJlY3Rpb246IFwicmlnaHRcIiB9LFxuICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZLFxuKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBtb3ZlT3V0KGFsaWFzLCBwcm9wcywgcHJpb3JpdHkpO1xufVxuIiwiaW1wb3J0IHsgY2FudmFzLCBUZXh0LCBUZXh0T3B0aW9ucyB9IGZyb20gXCIuLlwiO1xuXG4vKipcbiAqIEFkZCBhbmQgc2hvdyBhIHRleHQgaW4gdGhlIGNhbnZhcy5cbiAqIEBwYXJhbSBhbGlhcyBUaGUgdW5pcXVlIGFsaWFzIG9mIHRoZSB0ZXh0LiBZb3UgY2FuIHVzZSB0aGlzIGFsaWFzIHRvIHJlZmVyIHRvIHRoaXMgdGV4dC5cbiAqIEBwYXJhbSB0ZXh0XG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBvZiB0aGUgdGV4dC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIHRleHQgaXMgbG9hZGVkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGxldCB0ZXh0ID0gc2hvd1RleHQoXCJ0ZXh0XCIsIFwiSGVsbG8gV29ybGRcIiwgeyBmb250U2l6ZTogMjQsIGZpbGw6IFwid2hpdGVcIiB9KVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG93VGV4dChhbGlhczogc3RyaW5nLCB0ZXh0OiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PFRleHRPcHRpb25zLCBcInRleHRcIj4pOiBUZXh0IHtcbiAgICBsZXQgb2xkTWVtb3J5ID0geyAuLi5jYW52YXMuZmluZChhbGlhcyk/Lm1lbW9yeSwgLi4ub3B0aW9ucyB9O1xuICAgIGxldCBjb21wb25lbnQgPSBuZXcgVGV4dCh7XG4gICAgICAgIHRleHQsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gICAgaWYgKG9sZE1lbW9yeSkge1xuICAgICAgICBjYW52YXMuY29weUNhbnZhc0VsZW1lbnRQcm9wZXJ0eShvbGRNZW1vcnksIGNvbXBvbmVudCk7XG4gICAgfVxuICAgIGNhbnZhcy5hZGQoYWxpYXMsIGNvbXBvbmVudCwgeyBpZ25vcmVPbGRTdHlsZTogdHJ1ZSwgekluZGV4OiBvcHRpb25zPy56SW5kZXggfSk7XG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbn1cbiIsImltcG9ydCB7IFBpeGlFcnJvciB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBVUERBVEVfUFJJT1JJVFkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUElYSSB9IGZyb20gXCJAZHJpbmNzL3BpeGktdm4vcGl4aS5qc1wiO1xuaW1wb3J0IHNoYTEgZnJvbSBcImNyeXB0by1qcy9zaGExXCI7XG5pbXBvcnQgeyBjYW52YXMsIENhbnZhc01hbmFnZXJTdGF0aWMsIFRpY2tlciB9IGZyb20gXCIuLi8uLlwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2xvZy11dGlsaXR5XCI7XG5pbXBvcnQgeyB0aWNrZXJEZWNvcmF0b3IgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9SZWdpc3RlcmVkVGlja2Vyc1wiO1xuaW1wb3J0IFRpY2tlckFyZ3MgZnJvbSBcIi4uL2ludGVyZmFjZXMvVGlja2VyQXJnc1wiO1xuaW1wb3J0IFRpY2tlclZhbHVlIGZyb20gXCIuL1RpY2tlclZhbHVlXCI7XG5cbi8qKlxuICogQSBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBhIHRpY2tlciBlbGVtZW50IHRvIGFkZCBpbnRvIGEgUGl4aSBBcHBsaWNhdGlvbi5cbiAqIFlvdSBjYW4gdXNlIHtAbGluayBjYW52YXMuYWRkVGlja2VyKCl9IHRvIGFkZCB0aGlzIGVsZW1lbnQgaW50byB0aGUgYXBwbGljYXRpb24uXG4gKiBUaGlzIGNsYXNzIHNob3VsZCBiZSBleHRlbmRlZCBhbmQgdGhlIGZuIG1ldGhvZCBzaG91bGQgYmUgb3ZlcnJpZGRlbi5cbiAqIFlvdSBtdXN0IHVzZSB0aGUge0BsaW5rIHRpY2tlckRlY29yYXRvcn0gdG8gcmVnaXN0ZXIgdGhlIHRpY2tlciBpbiB0aGUgZ2FtZS5cbiAqIEluIFJlbidQeSBpcyBhIHRyYW5zZm9ybS5cbiAqIEB0ZW1wbGF0ZSBUQXJncyBUaGUgdHlwZSBvZiB0aGUgYXJndW1lbnRzIHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0byB0aGUgdGlja2VyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIFxcQHRpY2tlckRlY29yYXRvcigpIC8vIHRoaXMgaXMgZXF1aXZhbGVudCB0byB0aWNrZXJEZWNvcmF0b3IoXCJSb3RhdGVUaWNrZXJcIilcbiAqIGV4cG9ydCBjbGFzcyBSb3RhdGVUaWNrZXIgZXh0ZW5kcyBUaWNrZXJCYXNlPHsgc3BlZWQ/OiBudW1iZXIgfT4ge1xuICogICAgIG92ZXJyaWRlIGZuKFxuICogICAgICAgICB0OiBUaWNrZXJWYWx1ZSwgLy8gdGhlIHRpY2tlciB0aGF0IGlzIGNhbGxpbmcgdGhpcyBtZXRob2RcbiAqICAgICAgICAgYXJnczogeyAvLyB0aGUgYXJndW1lbnRzIHRoYXQgeW91IHBhc3NlZCB3aGVuIHlvdSBhZGRlZCB0aGUgdGlja2VyXG4gKiAgICAgICAgICAgICBzcGVlZD86IG51bWJlcixcbiAqICAgICAgICAgfSxcbiAqICAgICAgICAgYWxpYXNlczogc3RyaW5nW10sIC8vIHRoZSBhbGlhc2VzIG9mIHRoZSBjYW52YXMgZWxlbWVudHMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIHRoaXMgdGlja2VyXG4gKiAgICAgICAgIHRpY2tlcklkOiBzdHJpbmcsIC8vIHRoZSBpZCBvZiB0aGUgdGlja2VyLiBZb3UgY2FuIHVzZSB0aGlzIHRvIGdldCB0aGUgdGlja2VyIGZyb20gdGhlIGNhbnZhcy5jdXJyZW50VGlja2Vyc1xuICogICAgICk6IHZvaWQge1xuICogICAgICAgICBsZXQgc3BlZWQgPSBhcmdzLnNwZWVkID09PSB1bmRlZmluZWQgPyAwLjEgOiBhcmdzLnNwZWVkXG4gKiAgICAgICAgIGFsaWFzZXMuZm9yRWFjaCgoYWxpYXMpID0+IHtcbiAqICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGNhbnZhcy5maW5kKGFsaWFzKVxuICogICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQgaW5zdGFuY2VvZiBDb250YWluZXIpIHtcbiAqICAgICAgICAgICAgICAgICAgICAgaWYgKGNsb2Nrd2lzZSlcbiAqICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucm90YXRpb24gKz0gc3BlZWQgKiB0LmRlbHRhVGltZVxuICogICAgICAgICAgICAgICAgICAgICBlbHNlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJvdGF0aW9uIC09IHNwZWVkICogdC5kZWx0YVRpbWVcbiAqICAgICAgICAgICAgICAgICB9XG4gKiAgICAgICAgICAgICB9KVxuICogICAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBUaWNrZXJCYXNlPFRBcmdzIGV4dGVuZHMgVGlja2VyQXJncz4gaW1wbGVtZW50cyBUaWNrZXI8VEFyZ3M+IHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gYXJncyBUaGUgYXJndW1lbnRzIHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0byB0aGUgdGlja2VyLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9mIHRoZSB0aWNrZXIuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGFyZ3M6IFRBcmdzLFxuICAgICAgICBvcHRpb25zPzoge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIHRpY2tlciBpbiBzZWNvbmRzLiBJZiBpcyB1bmRlZmluZWQsIHRoZSBzdGVwIHdpbGwgZW5kIG9ubHkgd2hlbiB0aGUgYW5pbWF0aW9uIGlzIGZpbmlzaGVkIChpZiB0aGUgYW5pbWF0aW9uIGRvZXNuJ3QgaGF2ZSBhIGdvYWwgdG8gcmVhY2ggdGhlbiBpdCB3b24ndCBmaW5pc2gpLiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZHVyYXRpb24/OiBudW1iZXI7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoZSBwcmlvcml0eSBvZiB0aGUgdGlja2VyLiBAZGVmYXVsdCBVUERBVEVfUFJJT1JJVFkuTk9STUFMXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHByaW9yaXR5PzogVVBEQVRFX1BSSU9SSVRZO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgaWQgb2YgdGhlIHRpY2tlci4gVGhpcyBwYXJhbSBpcyB1c2VkIGJ5IHRoZSBzeXN0ZW0gd2hlbiB3aWxsIGJlciByZXN0b3JpbmcgdGhlIHRpY2tlcnMgZnJvbSBhIHNhdmUuIElmIG5vdCBwcm92aWRlZCwgYSByYW5kb20gaWQgd2lsbCBiZSBnZW5lcmF0ZWQuIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZD86IHN0cmluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGhlIGFsaWFzZXMgb2YgdGhlIGNhbnZhcyBlbGVtZW50cyB0aGF0IGFyZSBjb25uZWN0ZWQgdG8gdGhpcyB0aWNrZXIuIFRoaXMgaXMgdXNlZCBieSB0aGUgc3lzdGVtIHRvIGtub3cgd2hpY2ggY2FudmFzIGVsZW1lbnRzIGFyZSBjb25uZWN0ZWQgdG8gdGhpcyB0aWNrZXIsIGFuZCB0byBwYXNzIHRoZW0gdG8gdGhlIGZuIG1ldGhvZC4gQGRlZmF1bHQgW11cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY2FudmFzRWxlbWVudEFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICAgICAgfSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5hbGlhcyA9IHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLmlkO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgICAgaWQgPSB0aGlzLmdlbmVyYXRlVGlja2VySWQodGhpcy5hbGlhcywgb3B0aW9ucyksXG4gICAgICAgICAgICBjYW52YXNFbGVtZW50QWxpYXNlcyA9IFtdLFxuICAgICAgICB9ID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgdGhpcy5hcmdzID0gYXJncztcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uO1xuICAgICAgICB0aGlzLnByaW9yaXR5ID0gcHJpb3JpdHk7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5jYW52YXNFbGVtZW50QWxpYXNlcyA9IGNhbnZhc0VsZW1lbnRBbGlhc2VzO1xuICAgIH1cbiAgICByZWFkb25seSBhbGlhczogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gICAgYXJnczogVEFyZ3M7XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG4gICAgcHJpb3JpdHk/OiBVUERBVEVfUFJJT1JJVFk7XG4gICAgcHJvdGVjdGVkIHRpY2tlciA9IG5ldyBQSVhJLlRpY2tlcigpO1xuICAgIGNhbnZhc0VsZW1lbnRBbGlhc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgZ2VuZXJhdGVUaWNrZXJJZCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gc2hhMShKU09OLnN0cmluZ2lmeShhcmdzKSkudG9TdHJpbmcoKSArIFwiX1wiICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGl4aUVycm9yKFwibm90X2pzb25fc2VyaWFsaXphYmxlXCIsIGBFcnJvciB0byBnZW5lcmF0ZSB0aWNrZXIgaWQ6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgZXZlcnkgZnJhbWUuXG4gICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYW5kIHlvdSBjYW4gdXNlIHtAbGluayBjYW52YXMuYWRkKCl9IHRvIGdldCB0aGUgY2FudmFzIGVsZW1lbnQgb2YgdGhlIGNhbnZhcywgYW5kIGVkaXQgdGhlbS5cbiAgICAgKiBAcGFyYW0gX3RpY2tlciBUaGUgdGlja2VyIHRoYXQgaXMgY2FsbGluZyB0aGlzIG1ldGhvZFxuICAgICAqIEBwYXJhbSBfYXJncyBUaGUgYXJndW1lbnRzIHRoYXQgeW91IHBhc3NlZCB3aGVuIHlvdSBhZGRlZCB0aGUgdGlja2VyXG4gICAgICogQHBhcmFtIF9hbGlhcyBUaGUgYWxpYXMgb2YgdGhlIGNhbnZhcyBlbGVtZW50cyB0aGF0IGFyZSBjb25uZWN0ZWQgdG8gdGhpcyB0aWNrZXJcbiAgICAgKiBAcGFyYW0gX3RpY2tlcklkIFRoZSBpZCBvZiB0aGUgdGlja2VyLiBZb3UgY2FuIHVzZSB0aGlzIHRvIGdldCB0aGUgdGlja2VyIGZyb20gdGhlIHtAbGluayBjYW52YXMuY3VycmVudFRpY2tlcnN9XG4gICAgICovXG4gICAgYWJzdHJhY3QgZm4oX3RpY2tlcjogVGlja2VyVmFsdWUsIF9hcmdzOiBUQXJncywgX2FsaWFzOiBzdHJpbmcgfCBzdHJpbmdbXSwgX3RpY2tlcklkOiBzdHJpbmcpOiB2b2lkO1xuICAgIHByb3RlY3RlZCBmblZhbHVlPzogKCkgPT4gdm9pZDtcbiAgICBjb21wbGV0ZShfb3B0aW9ucz86IHsgaWdub3JlVGlja2VyU3RlcHM/OiBib29sZWFuIH0pIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgfVxuICAgIHN0b3AoKSB7XG4gICAgICAgIGNvbnN0IGZuVmFsdWUgPSB0aGlzLmZuVmFsdWU7XG4gICAgICAgIGlmICghZm5WYWx1ZSkge1xuICAgICAgICAgICAgbG9nZ2VyLndhcm4oXCJUaWNrZXJCYXNlLnN0b3AoKSBjYWxsZWQgd2l0aG91dCBmblZhbHVlIHNldC4gVGhpcyBtYXkgY2F1c2UgaXNzdWVzLlwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRpY2tlci5yZW1vdmUoZm5WYWx1ZSwgbnVsbCk7XG4gICAgfVxuICAgIHN0YXJ0KCkge1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuaWQ7XG4gICAgICAgIGNvbnN0IGZuVmFsdWUgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGNyZWF0ZWRCeVRpY2tldFN0ZXBzIH0gPSBDYW52YXNNYW5hZ2VyU3RhdGljLl9jdXJyZW50VGlja2Vyc1tpZF07XG4gICAgICAgICAgICBsZXQgY2FudmFzRWxlbWVudEFsaWFzZXMgPSB0aGlzLmNhbnZhc0VsZW1lbnRBbGlhc2VzO1xuICAgICAgICAgICAgaWYgKGNyZWF0ZWRCeVRpY2tldFN0ZXBzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbnZhcy5pc1RpY2tlclBhdXNlZChjcmVhdGVkQnlUaWNrZXRTdGVwcy5jYW52YXNFbGVtZW50QWxpYXMsIGNyZWF0ZWRCeVRpY2tldFN0ZXBzLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYW52YXNFbGVtZW50QWxpYXNlcyA9IGNhbnZhc0VsZW1lbnRBbGlhc2VzLmZpbHRlcigoYWxpYXMpID0+ICFjYW52YXMuaXNUaWNrZXJQYXVzZWQoYWxpYXMsIGlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mbih0aGlzLnRpY2tlciwgdGhpcy5hcmdzLCBjYW52YXNFbGVtZW50QWxpYXNlcywgaWQpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmZuVmFsdWUgPSBmblZhbHVlO1xuICAgICAgICB0aGlzLnRpY2tlci5hZGQoZm5WYWx1ZSwgbnVsbCwgdGhpcy5wcmlvcml0eSk7XG4gICAgICAgIHRoaXMudGlja2VyLnN0YXJ0KCk7XG4gICAgfVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnRpY2tlci5zdG9wKCk7XG4gICAgfVxuICAgIHBsYXkoKSB7XG4gICAgICAgIHRoaXMudGlja2VyLnN0YXJ0KCk7XG4gICAgfVxuICAgIGdldCBwYXVzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy50aWNrZXIuc3RhcnRlZDtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBkZWZhdWx0IGFzIFBJWEkgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcbmltcG9ydCBDYW52YXNNYW5hZ2VyIGZyb20gXCIuL0NhbnZhc01hbmFnZXJcIjtcbmltcG9ydCBDYW52YXNVdGlsaXRpZXNTdGF0aWMgZnJvbSBcIi4vQ2FudmFzVXRpbGl0aWVzU3RhdGljXCI7XG5pbXBvcnQgQ2FudmFzTWFuYWdlckludGVyZmFjZSBmcm9tIFwiLi9pbnRlcmZhY2VzL0NhbnZhc01hbmFnZXJJbnRlcmZhY2VcIjtcbmV4cG9ydCBjb25zdCB7IEFzc2V0cywgQ29sb3IsIFJlY3RhbmdsZSwgVGV4dFN0eWxlLCBUZXh0dXJlLCBVUERBVEVfUFJJT1JJVFkgfSA9IFBJWEk7XG5leHBvcnQgdHlwZSB7IFRleHR1cmVTb3VyY2VMaWtlLCBUaWNrZXIgYXMgVGlja2VyVmFsdWUgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL3BpeGkuanNcIjtcblxuLy8gKiBUaGlzIGltcG9ydCBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSB0aGUgSW1hZ2VTcHJpdGUgaW1wb3J0LlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWRlb1Nwcml0ZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvVmlkZW9TcHJpdGVcIjtcblxuZXhwb3J0IHR5cGUgeyBBbmltYXRpb25PcHRpb25zIGFzIE1vdGlvbkFuaW1hdGlvbk9wdGlvbnMgfSBmcm9tIFwibW90aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlQ29udGFpbmVyIH0gZnJvbSBcIi4uL2NhbnZhcy9jb21wb25lbnRzL0ltYWdlQ29udGFpbmVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbnZhc01hbmFnZXJTdGF0aWMgfSBmcm9tIFwiLi9DYW52YXNNYW5hZ2VyU3RhdGljXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbnZhc0Jhc2VJdGVtIH0gZnJvbSBcIi4vY2xhc3Nlcy9DYW52YXNCYXNlSXRlbVwiO1xuZXhwb3J0IHsgYW5hbGl6ZVBvc2l0aW9uc0V4dGVuc2lvblByb3BzIH0gZnJvbSBcIi4vY29tcG9uZW50cy9BZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uXCI7XG5leHBvcnQgdHlwZSB7XG4gICAgZGVmYXVsdCBhcyBBZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uLFxuICAgIEFkZGl0aW9uYWxQb3NpdGlvbnNFeHRlbnNpb25Qcm9wcyxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9BZGRpdGlvbmFsUG9zaXRpb25zRXh0ZW5zaW9uXCI7XG5leHBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgQW5jaG9yRXh0ZW5zaW9uLCBBbmNob3JFeHRlbnNpb25Qcm9wcyB9IGZyb20gXCIuL2NvbXBvbmVudHMvQW5jaG9yRXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRhaW5lciB9IGZyb20gXCIuL2NvbXBvbmVudHMvQ29udGFpbmVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlU3ByaXRlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVNwcml0ZVwiO1xuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIExheWVyIH0gZnJvbSBcIi4vY29tcG9uZW50cy9MYXllclwiO1xuZXhwb3J0IHsgYWRkTGlzdGVuZXJIYW5kbGVyIH0gZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0ZW5lckV4dGVuc2lvblwiO1xuZXhwb3J0IHR5cGUge1xuICAgIGRlZmF1bHQgYXMgTGlzdGVuZXJFeHRlbnNpb24sXG4gICAgTGlzdGVuZXJFeHRlbnNpb25NZW1vcnksXG4gICAgT25FdmVudHNIYW5kbGVycyxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0ZW5lckV4dGVuc2lvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcHJpdGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL1Nwcml0ZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9UZXh0XCI7XG5leHBvcnQge1xuICAgIGNhbnZhc0NvbXBvbmVudERlY29yYXRvcixcbiAgICBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRDYW52YXNDb21wb25lbnRzLFxuICAgIHNldE1lbW9yeUNvbnRhaW5lcixcbn0gZnJvbSBcIi4vZGVjb3JhdG9ycy9jYW52YXMtZWxlbWVudC1kZWNvcmF0b3JcIjtcbmV4cG9ydCB7IGV2ZW50RGVjb3JhdG9yLCBkZWZhdWx0IGFzIFJlZ2lzdGVyZWRFdmVudHMgfSBmcm9tIFwiLi9kZWNvcmF0b3JzL2V2ZW50LWRlY29yYXRvclwiO1xuZXhwb3J0IHsgc2hha2VFZmZlY3QgfSBmcm9tIFwiLi9mdW5jdGlvbnMvY2FudmFzLWVmZmVjdFwiO1xuZXhwb3J0IHsgQ2FudmFzUHJvcGVydHlVdGlsaXR5IH0gZnJvbSBcIi4vZnVuY3Rpb25zL2NhbnZhcy1wcm9wZXJ0eS11dGlsaXR5XCI7XG5leHBvcnQge1xuICAgIG1vdmVJbixcbiAgICBtb3ZlT3V0LFxuICAgIHB1c2hJbixcbiAgICBwdXNoT3V0LFxuICAgIHJlbW92ZVdpdGhEaXNzb2x2ZSxcbiAgICByZW1vdmVXaXRoRmFkZSxcbiAgICBzaG93V2l0aERpc3NvbHZlLFxuICAgIHNob3dXaXRoRmFkZSxcbiAgICB6b29tSW4sXG4gICAgem9vbU91dCxcbn0gZnJvbSBcIi4vZnVuY3Rpb25zL2NhbnZhcy10cmFuc2l0aW9uXCI7XG5leHBvcnQgeyBhZGRJbWFnZUNvaW50YWluZXIsIHNob3dJbWFnZUNvbnRhaW5lciB9IGZyb20gXCIuL2Z1bmN0aW9ucy9pbWFnZS1jb250YWluZXItdXRpbGl0eVwiO1xuZXhwb3J0IHsgYWRkSW1hZ2UsIHNob3dJbWFnZSB9IGZyb20gXCIuL2Z1bmN0aW9ucy9pbWFnZS11dGlsaXR5XCI7XG5leHBvcnQgeyBzaG93VGV4dCB9IGZyb20gXCIuL2Z1bmN0aW9ucy90ZXh0LXV0aWxpdHlcIjtcbmV4cG9ydCB7IGdldFRleHR1cmUgfSBmcm9tIFwiLi9mdW5jdGlvbnMvdGV4dHVyZS11dGlsaXR5XCI7XG5leHBvcnQgeyBhZGRWaWRlbywgc2hvd1ZpZGVvIH0gZnJvbSBcIi4vZnVuY3Rpb25zL3ZpZGVvLXV0aWxpdHlcIjtcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBBc3NldE1lbW9yeSB9IGZyb20gXCIuL2ludGVyZmFjZXMvQXNzZXRNZW1vcnlcIjtcbmV4cG9ydCB0eXBlIHtcbiAgICBDb250YWluZXJPcHRpb25zLFxuICAgIEltYWdlQ29udGFpbmVyT3B0aW9ucyxcbiAgICBJbWFnZVNwcml0ZU9wdGlvbnMsXG4gICAgU3ByaXRlT3B0aW9ucyxcbiAgICBUZXh0T3B0aW9ucyxcbiAgICBWaWRlb1Nwcml0ZU9wdGlvbnMsXG59IGZyb20gXCIuL2ludGVyZmFjZXMvY2FudmFzLW9wdGlvbnNcIjtcbmV4cG9ydCB7IHR5cGUgQ2FudmFzQmFzZUludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZXMvQ2FudmFzQmFzZUludGVyZmFjZVwiO1xuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIENhbnZhc0dhbWVTdGF0ZSB9IGZyb20gXCIuL2ludGVyZmFjZXMvQ2FudmFzR2FtZVN0YXRlXCI7XG5leHBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgQ2FudmFzTWFuYWdlckludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZXMvQ2FudmFzTWFuYWdlckludGVyZmFjZVwiO1xuZXhwb3J0IHR5cGUgeyBTaGFrZUVmZmVjdFByb3BzIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9lZmZlY3QtcHJvcHNcIjtcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBDYW52YXNCYXNlSXRlbU1lbW9yeSB9IGZyb20gXCIuL2ludGVyZmFjZXMvbWVtb3J5L0NhbnZhc0Jhc2VJdGVtTWVtb3J5XCI7XG5leHBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgQ29udGFpbmVyTWVtb3J5IH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9tZW1vcnkvQ29udGFpbmVyTWVtb3J5XCI7XG5leHBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgSW1hZ2VDb250YWluZXJNZW1vcnkgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL21lbW9yeS9JbWFnZUNvbnRhaW5lck1lbW9yeVwiO1xuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIEltYWdlU3ByaXRlTWVtb3J5IH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9tZW1vcnkvSW1hZ2VTcHJpdGVNZW1vcnlcIjtcbmV4cG9ydCB0eXBlIHsgU3ByaXRlQmFzZU1lbW9yeSwgZGVmYXVsdCBhcyBTcHJpdGVNZW1vcnkgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL21lbW9yeS9TcHJpdGVNZW1vcnlcIjtcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBUZXh0TWVtb3J5IH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9tZW1vcnkvVGV4dE1lbW9yeVwiO1xuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIFZpZGVvU3ByaXRlTWVtb3J5IH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9tZW1vcnkvVmlkZW9TcHJpdGVNZW1vcnlcIjtcbmV4cG9ydCB0eXBlIHtcbiAgICBNb3ZlSW5PdXRQcm9wcyxcbiAgICBQdXNoSW5PdXRQcm9wcyxcbiAgICBTaG93V2l0aERpc3NvbHZlVHJhbnNpdGlvblByb3BzLFxuICAgIFNob3dXaXRoRmFkZVRyYW5zaXRpb25Qcm9wcyxcbiAgICBab29tSW5PdXRQcm9wcyxcbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy90cmFuc2l0aW9uLXByb3BzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90aWNrZXJzXCI7XG5leHBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgQ29udGFpbmVyQ2hpbGQgfSBmcm9tIFwiLi90eXBlcy9Db250YWluZXJDaGlsZFwiO1xuZXhwb3J0IHR5cGUgeyBQYXVzZVR5cGUgfSBmcm9tIFwiLi90eXBlcy9QYXVzZVR5cGVcIjtcbmV4cG9ydCB0eXBlIHsgUmVwZWF0VHlwZSB9IGZyb20gXCIuL3R5cGVzL1JlcGVhdFR5cGVcIjtcblxuY29uc3QgY2FudmFzOiBDYW52YXNNYW5hZ2VySW50ZXJmYWNlID0gbmV3IENhbnZhc01hbmFnZXIoKTtcbkNhbnZhc1V0aWxpdGllc1N0YXRpYy5pbml0KHtcbiAgICBnZXRTY3JlZW46ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNhbnZhcy5zY3JlZW47XG4gICAgfSxcbn0pO1xuXG5leHBvcnQgeyBjYW52YXMgfTtcbiJdfQ==