{"format":"cadcraft-addon-package","version":1,"manifest":{"id":"printer-resin-chitu","name":"Resin files: Chitubox (CBDDLP, CTB 2 to 5)","version":"0.9.0","apps":["bimcraft"],"api":"1.0","license":"Apache-2.0","entry":"./main.js","permissions":[],"needs":[{"id":"slicer-resin","range":"*"}],"description":"Writes the Chitubox family of resin files that many Elegoo, Phrozen and Creality printers read. CBDDLP and CTB version 2 are written from a format document, CTB versions 3 to 5 from a specification. Our own code, read back by CadCraft only: not yet loaded on a printer.","author":"CadCraft","lang":"./lang/","default":"off"},"files":{"LICENSE":"CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLwoKICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCgogICAxLiBEZWZpbml0aW9ucy4KCiAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCiAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgoKICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAogICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCiAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCiAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQogICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgogICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KCiAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KCiAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAogICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCiAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgogICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAogICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CiAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgoKICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQogICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KCiAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQogICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCiAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCiAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgogICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCiAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCgogICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwogICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCiAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQogICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCiAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgogICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAogICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwogICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAogICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQogICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCgogICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCgogICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQogICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCiAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCgogICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQogICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCiAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCiAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCiAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawogICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAogICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCiAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQogICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCgogICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQogICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgogICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKCiAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAoKICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCiAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCiAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAogICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgogICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAoKICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCiAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CiAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAogICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCiAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAogICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgogICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCiAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCiAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCiAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQogICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCiAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KCiAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAogICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCiAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCiAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAogICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgoKICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAogICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCiAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgoKICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQogICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCiAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQogICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KCiAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgogICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCiAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAogICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQogICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CiAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KCiAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAogICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAogICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQogICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCiAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCiAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgoKICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZwogICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAogICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAogICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwogICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQogICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgogICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCiAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQogICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCiAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgoKICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCg==","addon.json":"ewogICJpZCI6ICJwcmludGVyLXJlc2luLWNoaXR1IiwKICAibmFtZSI6ICJSZXNpbiBmaWxlczogQ2hpdHVib3ggKENCRERMUCwgQ1RCIDIgdG8gNSkiLAogICJ2ZXJzaW9uIjogIjAuOS4wIiwKICAiYXBwcyI6IFsKICAgICJiaW1jcmFmdCIKICBdLAogICJhcGkiOiAiMS4wIiwKICAibGljZW5zZSI6ICJBcGFjaGUtMi4wIiwKICAiZW50cnkiOiAiLi9tYWluLmpzIiwKICAicGVybWlzc2lvbnMiOiBbXSwKICAibmVlZHMiOiBbCiAgICB7CiAgICAgICJpZCI6ICJzbGljZXItcmVzaW4iLAogICAgICAicmFuZ2UiOiAiKiIKICAgIH0KICBdLAogICJkZXNjcmlwdGlvbiI6ICJXcml0ZXMgdGhlIENoaXR1Ym94IGZhbWlseSBvZiByZXNpbiBmaWxlcyB0aGF0IG1hbnkgRWxlZ29vLCBQaHJvemVuIGFuZCBDcmVhbGl0eSBwcmludGVycyByZWFkLiBDQkRETFAgYW5kIENUQiB2ZXJzaW9uIDIgYXJlIHdyaXR0ZW4gZnJvbSBhIGZvcm1hdCBkb2N1bWVudCwgQ1RCIHZlcnNpb25zIDMgdG8gNSBmcm9tIGEgc3BlY2lmaWNhdGlvbi4gT3VyIG93biBjb2RlLCByZWFkIGJhY2sgYnkgQ2FkQ3JhZnQgb25seTogbm90IHlldCBsb2FkZWQgb24gYSBwcmludGVyLiIsCiAgImF1dGhvciI6ICJDYWRDcmFmdCIsCiAgImxhbmciOiAiLi9sYW5nLyIsCiAgImRlZmF1bHQiOiAib2ZmIgp9Cg==","lang/ar.json":"ewogICJAbG9jYWxlIjogImFyIiwKICAiQG5hbWUiOiAi2KfZhNi52LHYqNmK2KkiLAogICJAbm90ZSI6ICJEcmFmdCB0cmFuc2xhdGlvbiwgbm90IHlldCByZXZpZXdlZCBieSBhIG5hdGl2ZSBzcGVha2VyIiwKICAibGFiZWwiOiAiQ2hpdHVib3gg2YXZhNmB2KfYqiBDQkRETFAg2YggQ1RCICjYp9mE2KXYtdiv2KfYsdin2Kog2YXZhiAyINil2YTZiSA1KSIsCiAgIm9wdC5hYSI6ICLZhdiz2KrZiNmK2KfYqiDYqtmG2LnZitmFINin2YTYrdmI2KfZgSIsCiAgIm9wdC5hYS4xIjogIjEgKNio2YTYpykiLAogICJvcHQuYWEuMiI6ICIyIiwKICAib3B0LmFhLjMiOiAiMyIsCiAgIm9wdC5hYS40IjogIjQgKNmF2KvYp9mEINin2YTZiNir2YrZgtipKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIti52YTYp9mF2Kkg2KfZhNil2LPZgtin2LciLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICLZhdmP2LnZg9mI2LMgKNin2YTZhdi52KrYp9ivKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICLYudin2K/ZiiIsCiAgIm9wdC5yZXNUeXBlIjogItit2YLZhCDYp9mE2K/ZgtipIiwKICAib3B0LnJlc1R5cGUuZjMyIjogIti52LTYsdmKICjZg9mF2Kcg2YHZiiDYp9mE2YjYq9mK2YLYqSkiLAogICJvcHQucmVzVHlwZS51MzIiOiAi2LnYr9ivINi12K3ZititIiwKICAib3B0LmNpcGhlckNvbnN0YW50IjogItir2KfYqNiqINin2YTYqti02YHZitixIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICjYp9mE2YXYs9iq2K7Yr9mFINmB2Yog2KfZhNij2K/ZiNin2Kog2KfZhNi52KfZhdmE2KkpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0ICjZiNir2YrZgtipINin2YTYqtmG2LPZitmCKSIsCiAgIm9wdC5zdHlsZSI6ICLYqtiu2LfZiti3INin2YTZhdmE2YEiLAogICJvcHQuc3R5bGUucGxhaW4iOiAi2KzYr9in2YjZhCDYudin2K/ZitipIiwKICAib3B0LnN0eWxlLmVuY3J5cHRlZCI6ICLYpdi52K/Yp9iv2KfYqiDZhdi02YHZkdix2KkiLAogICJvcHQudmVyc2lvbiI6ICLYp9mE2KXYtdiv2KfYsSIsCiAgIm9wdC52ZXJzaW9uLjMiOiAiMyIsCiAgIm9wdC52ZXJzaW9uLjQiOiAiNCIsCiAgIm9wdC52ZXJzaW9uLjUiOiAiNSIsCiAgIm9wdC5hbnRpYWxpYXMiOiAi2KrZhti52YrZhSDYp9mE2K3ZiNin2YEiLAogICJvcHQuYW50aWFsaWFzLm9uIjogItmF2YHYudmR2YQiLAogICJvcHQuYW50aWFsaWFzLm9mZiI6ICLZhdi52LfZjtmR2YQiLAogICJvcHQubGF5ZXJDaXBoZXIiOiAi2KrYtNmI2YrYtCDYp9mE2LfYqNmC2KfYqiIsCiAgIm9wdC5sYXllckNpcGhlci5vbiI6ICLZhti52YUgKNin2YTZhdi52KrYp9ivKSIsCiAgIm9wdC5sYXllckNpcGhlci5vZmYiOiAi2YTYpyAo2KfZhNil2LXYr9in2LEgMyDYp9mE2LnYp9iv2Yog2YHZgti3KSIsCiAgIm9wdC5lbmNyeXB0aW9uIjogItiq2LTZgdmK2LEg2KfZhNi32KjZgtin2KoiLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAi2YTYpyIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogItmG2LnZhSAo2YPZhdinINmB2Yog2KfZhNmI2KvZitmC2KkpIgp9Cg==","lang/de.json":"ewogICJAbG9jYWxlIjogImRlIiwKICAiQG5hbWUiOiAiRGV1dHNjaCIsCiAgIkBub3RlIjogIkRyYWZ0IHRyYW5zbGF0aW9uLCBub3QgeWV0IHJldmlld2VkIGJ5IGEgbmF0aXZlIHNwZWFrZXIiLAogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgdW5kIENUQiAoVmVyc2lvbmVuIDIgYmlzIDUpIiwKICAib3B0LmFhIjogIkthbnRlbmdsw6R0dHVuZ3NzdHVmZW4iLAogICJvcHQuYWEuMSI6ICIxIChrZWluZSkiLAogICJvcHQuYWEuMiI6ICIyIiwKICAib3B0LmFhLjMiOiAiMyIsCiAgIm9wdC5hYS40IjogIjQgKEJlaXNwaWVsIGltIERva3VtZW50KSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIlByb2pla3Rpb25za2VubnplaWNoZW4iLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJHZXNwaWVnZWx0ICjDvGJsaWNoKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICJOb3JtYWwiLAogICJvcHQucmVzVHlwZSI6ICJBdWZsw7ZzdW5nc2ZlbGQiLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRGV6aW1hbCAod2llIGRva3VtZW50aWVydCkiLAogICJvcHQucmVzVHlwZS51MzIiOiAiR2FuenphaGwiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiQ2hpZmZyaWVya29uc3RhbnRlIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICh2b24gZnVua3Rpb25pZXJlbmRlbiBXZXJremV1Z2VuIHZlcndlbmRldCkiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjQgKGxhdXQgRm9ybWF0ZG9rdW1lbnQpIiwKICAib3B0LnN0eWxlIjogIkRhdGVpYXVmYmF1IiwKICAib3B0LnN0eWxlLnBsYWluIjogIkVpbmZhY2hlIFRhYmVsbGVuIiwKICAib3B0LnN0eWxlLmVuY3J5cHRlZCI6ICJWZXJzY2hsw7xzc2VsdGUgRWluc3RlbGx1bmdlbiIsCiAgIm9wdC52ZXJzaW9uIjogIlZlcnNpb24iLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIkthbnRlbmdsw6R0dHVuZyIsCiAgIm9wdC5hbnRpYWxpYXMub24iOiAiRWluIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiQXVzIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIkxheWVyIHZlcnNjaGxlaWVybiIsCiAgIm9wdC5sYXllckNpcGhlci5vbiI6ICJKYSAow7xibGljaCkiLAogICJvcHQubGF5ZXJDaXBoZXIub2ZmIjogIk5laW4gKG51ciBlaW5mYWNoZSBWZXJzaW9uIDMpIiwKICAib3B0LmVuY3J5cHRpb24iOiAiTGF5ZXIgdmVyc2NobMO8c3NlbG4iLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAiTmVpbiIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIkphICh3aWUgZG9rdW1lbnRpZXJ0KSIKfQo=","lang/el.json":"ewogICJAbG9jYWxlIjogImVsIiwKICAiQG5hbWUiOiAizpXOu867zrfOvc65zrrOrCIsCiAgIkBub3RlIjogIkRyYWZ0IHRyYW5zbGF0aW9uLCBub3QgeWV0IHJldmlld2VkIGJ5IGEgbmF0aXZlIHNwZWFrZXIiLAogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgzrrOsc65IENUQiAozrXOus60z4zPg861zrnPgiAyIM6tz4nPgiA1KSIsCiAgIm9wdC5hYSI6ICLOlc+Azq/PgM61zrTOsSDOtc6+zr/OvM6szrvPhc69z4POt8+CIM6xzrrOvM+Ozr0iLAogICJvcHQuYWEuMSI6ICIxICjOus6xzrzOr86xKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAoz4TOvyDPgM6xz4HOrM60zrXOuc6zzrzOsSDPhM6/z4UgzrXOs86zz4HOrM+Gzr/PhSkiLAogICJvcHQucHJvamVjdGlvbiI6ICLOo863zrzOsc6vzrEgz4DPgc6/zrLOv867zq7PgiIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIs6Rzr3Otc+Dz4TPgc6xzrzOvM6tzr3OtyAozrcgz4PPhc69zq7OuM63z4IpIiwKICAib3B0LnByb2plY3Rpb24ubm9ybWFsIjogIs6azrHOvc6/zr3Ouc66zq4iLAogICJvcHQucmVzVHlwZSI6ICLOoM61zrTOr86/IM6xzr3OrM67z4XPg863z4IiLAogICJvcHQucmVzVHlwZS5mMzIiOiAizpTOtc66zrHOtM65zrrPjM+CICjPjM+Az4nPgiDPhM61zrrOvM63z4HOuc+Ozr3Otc+EzrHOuSkiLAogICJvcHQucmVzVHlwZS51MzIiOiAizpHOus6tz4HOsc65zr/PgiDOsc+BzrnOuM68z4zPgiIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICLOo8+EzrHOuM61z4HOrCDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POt8+CIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICjPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM6xzrkgzrHPgM+MIM61z4HOs86xzrvOtc6vzrEgz4DOv8+FIM67zrXOuc+Ezr/Phc+BzrPOv8+Nzr0pIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0ICjPhM6/IM6tzrPOs8+BzrHPhs6/IM+Az4HOv860zrnOsc6zz4HOsc+Gz47OvSkiLAogICJvcHQuc3R5bGUiOiAizpTOuc6sz4TOsc6+zrcgzrHPgc+HzrXOr86/z4UiLAogICJvcHQuc3R5bGUucGxhaW4iOiAizpHPgM67zr/OryDPgM6vzr3Osc66zrXPgiIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAizprPgc+Fz4DPhM6/zrPPgc6xz4bOt868zq3Ovc61z4Igz4HPhc64zrzOr8+DzrXOuc+CIiwKICAib3B0LnZlcnNpb24iOiAizojOus60zr/Pg863IiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICLOlc6+zr/OvM6szrvPhc69z4POtyDOsc66zrzPjs69IiwKICAib3B0LmFudGlhbGlhcy5vbiI6ICLOlc69zrXPgc6zz4wiLAogICJvcHQuYW50aWFsaWFzLm9mZiI6ICLOkc69zrXOvc61z4HOs8+MIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIs6Rzr3Osc66zqzPhM61zrzOsSDOtc+AzrnPgM6tzrTPic69IiwKICAib3B0LmxheWVyQ2lwaGVyLm9uIjogIs6dzrHOuSAozrcgz4PPhc69zq7OuM63z4IpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICLOjM+HzrkgKM68z4zOvc6/IM6xz4DOu86uIM6tzrrOtM6/z4POtyAzKSIsCiAgIm9wdC5lbmNyeXB0aW9uIjogIs6az4HPhc+Az4TOv86zz4HOrM+GzrfPg863IM61z4DOuc+Azq3OtM+Jzr0iLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAizozPh865IiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAizp3Osc65ICjPjM+Az4nPgiDPhM61zrrOvM63z4HOuc+Ozr3Otc+EzrHOuSkiCn0K","lang/en.json":"ewogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgYW5kIENUQiAodmVyc2lvbnMgMiB0byA1KSIsCiAgIm9wdC5hYSI6ICJFZGdlIHNtb290aGluZyBsZXZlbHMiLAogICJvcHQuYWEuMSI6ICIxIChub25lKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAodGhlIGRvY3VtZW50J3MgZXhhbXBsZSkiLAogICJvcHQucHJvamVjdGlvbiI6ICJQcm9qZWN0aW9uIGZsYWciLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJNaXJyb3JlZCAodGhlIHVzdWFsKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICJOb3JtYWwiLAogICJvcHQucmVzVHlwZSI6ICJSZXNvbHV0aW9uIGZpZWxkIiwKICAib3B0LnJlc1R5cGUuZjMyIjogIkRlY2ltYWwgKGFzIGRvY3VtZW50ZWQpIiwKICAib3B0LnJlc1R5cGUudTMyIjogIldob2xlIG51bWJlciIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICJDaXBoZXIgY29uc3RhbnQiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjMiOiAiRDhBODM0MjMgKHVzZWQgYnkgd29ya2luZyB0b29scykiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjQgKHRoZSBmb3JtYXQgZG9jdW1lbnQpIiwKICAib3B0LnN0eWxlIjogIkZpbGUgbGF5b3V0IiwKICAib3B0LnN0eWxlLnBsYWluIjogIlBsYWluIHRhYmxlcyIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAiRW5jcnlwdGVkIHNldHRpbmdzIiwKICAib3B0LnZlcnNpb24iOiAiVmVyc2lvbiIsCiAgIm9wdC52ZXJzaW9uLjMiOiAiMyIsCiAgIm9wdC52ZXJzaW9uLjQiOiAiNCIsCiAgIm9wdC52ZXJzaW9uLjUiOiAiNSIsCiAgIm9wdC5hbnRpYWxpYXMiOiAiRWRnZSBzbW9vdGhpbmciLAogICJvcHQuYW50aWFsaWFzLm9uIjogIk9uIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiT2ZmIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIlNjcmFtYmxlIHRoZSBsYXllcnMiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAiWWVzICh0aGUgdXN1YWwpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJObyAocGxhaW4gdmVyc2lvbiAzIG9ubHkpIiwKICAib3B0LmVuY3J5cHRpb24iOiAiRW5jcnlwdCB0aGUgbGF5ZXJzIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIk5vIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAiWWVzIChhcyBkb2N1bWVudGVkKSIKfQo=","lang/es-ES.json":"ewogICJAbG9jYWxlIjogImVzLUVTIiwKICAiQG5hbWUiOiAiRXNwYcOxb2wgKEVzcGHDsWEpIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCB5IENUQiAodmVyc2lvbmVzIDIgYSA1KSIsCiAgIm9wdC5hYSI6ICJOaXZlbGVzIGRlIHN1YXZpemFkbyBkZSBib3JkZXMiLAogICJvcHQuYWEuMSI6ICIxIChuaW5ndW5vKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAoZWwgZWplbXBsbyBkZWwgZG9jdW1lbnRvKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIkluZGljYWRvciBkZSBwcm95ZWNjacOzbiIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIkVzcGVqYWRhIChsYSBoYWJpdHVhbCkiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAiTm9ybWFsIiwKICAib3B0LnJlc1R5cGUiOiAiQ2FtcG8gZGUgcmVzb2x1Y2nDs24iLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRGVjaW1hbCAoc2Vnw7puIGxhIGRvY3VtZW50YWNpw7NuKSIsCiAgIm9wdC5yZXNUeXBlLnUzMiI6ICJOw7ptZXJvIGVudGVybyIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICJDb25zdGFudGUgZGUgY2lmcmFkbyIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyMyI6ICJEOEE4MzQyMyAodXNhZGEgcG9yIGxhcyBoZXJyYW1pZW50YXMgcXVlIGZ1bmNpb25hbikiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjQgKGVsIGRvY3VtZW50byBkZSBmb3JtYXRvKSIsCiAgIm9wdC5zdHlsZSI6ICJFc3RydWN0dXJhIGRlbCBhcmNoaXZvIiwKICAib3B0LnN0eWxlLnBsYWluIjogIlRhYmxhcyBzaW4gY2lmcmFyIiwKICAib3B0LnN0eWxlLmVuY3J5cHRlZCI6ICJBanVzdGVzIGNpZnJhZG9zIiwKICAib3B0LnZlcnNpb24iOiAiVmVyc2nDs24iLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIlN1YXZpemFkbyBkZSBib3JkZXMiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIlPDrSIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIk5vIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIkNvZGlmaWNhciBsYXMgY2FwYXMiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAiU8OtIChsYSBoYWJpdHVhbCkiLAogICJvcHQubGF5ZXJDaXBoZXIub2ZmIjogIk5vIChzb2xvIHZlcnNpw7NuIDMgc2luIGNpZnJhcikiLAogICJvcHQuZW5jcnlwdGlvbiI6ICJDaWZyYXIgbGFzIGNhcGFzIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIk5vIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAiU8OtIChzZWfDum4gbGEgZG9jdW1lbnRhY2nDs24pIgp9Cg==","lang/es-MX.json":"ewogICJAbG9jYWxlIjogImVzLU1YIiwKICAiQG5hbWUiOiAiRXNwYcOxb2wgKE3DqXhpY28pIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCB5IENUQiAodmVyc2lvbmVzIDIgYSA1KSIsCiAgIm9wdC5hYSI6ICJOaXZlbGVzIGRlIHN1YXZpemFkbyBkZSBib3JkZXMiLAogICJvcHQuYWEuMSI6ICIxIChuaW5ndW5vKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAoZWwgZWplbXBsbyBkZWwgZG9jdW1lbnRvKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIkluZGljYWRvciBkZSBwcm95ZWNjacOzbiIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIlJlZmxlamFkYSAobGEgaGFiaXR1YWwpIiwKICAib3B0LnByb2plY3Rpb24ubm9ybWFsIjogIk5vcm1hbCIsCiAgIm9wdC5yZXNUeXBlIjogIkNhbXBvIGRlIHJlc29sdWNpw7NuIiwKICAib3B0LnJlc1R5cGUuZjMyIjogIkRlY2ltYWwgKGNvbW8gc2UgZG9jdW1lbnRhKSIsCiAgIm9wdC5yZXNUeXBlLnUzMiI6ICJOw7ptZXJvIGVudGVybyIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICJDb25zdGFudGUgZGUgY2lmcmFkbyIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyMyI6ICJEOEE4MzQyMyAodXNhZGEgcG9yIGhlcnJhbWllbnRhcyBxdWUgZnVuY2lvbmFuKSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyNCI6ICJEOEE4MzQyNCAoZWwgZG9jdW1lbnRvIGRlIGZvcm1hdG8pIiwKICAib3B0LnN0eWxlIjogIkRpc3Bvc2ljacOzbiBkZWwgYXJjaGl2byIsCiAgIm9wdC5zdHlsZS5wbGFpbiI6ICJUYWJsYXMgc2luIGNpZnJhciIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAiQ29uZmlndXJhY2nDs24gY2lmcmFkYSIsCiAgIm9wdC52ZXJzaW9uIjogIlZlcnNpw7NuIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICJTdWF2aXphZG8gZGUgYm9yZGVzIiwKICAib3B0LmFudGlhbGlhcy5vbiI6ICJBY3RpdmFkbyIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIkRlc2FjdGl2YWRvIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIk9mdXNjYXIgbGFzIGNhcGFzIiwKICAib3B0LmxheWVyQ2lwaGVyLm9uIjogIlPDrSAobG8gaGFiaXR1YWwpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJObyAoc29sbyB2ZXJzacOzbiAzIHNpbiBjaWZyYXIpIiwKICAib3B0LmVuY3J5cHRpb24iOiAiQ2lmcmFyIGxhcyBjYXBhcyIsCiAgIm9wdC5lbmNyeXB0aW9uLm9mZiI6ICJObyIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIlPDrSAoY29tbyBzZSBkb2N1bWVudGEpIgp9Cg==","lang/fr.json":"ewogICJAbG9jYWxlIjogImZyIiwKICAiQG5hbWUiOiAiRnJhbsOnYWlzIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCBldCBDVEIgKHZlcnNpb25zIDIgw6AgNSkiLAogICJvcHQuYWEiOiAiTml2ZWF1eCBkZSBsaXNzYWdlIGRlcyBib3JkcyIsCiAgIm9wdC5hYS4xIjogIjEgKGF1Y3VuKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAoZXhlbXBsZSBkdSBkb2N1bWVudCkiLAogICJvcHQucHJvamVjdGlvbiI6ICJJbmRpY2F0ZXVyIGRlIHByb2plY3Rpb24iLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJNaXJvaXIgKGxlIHBsdXMgY291cmFudCkiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAiTm9ybWFsIiwKICAib3B0LnJlc1R5cGUiOiAiQ2hhbXAgZGUgcsOpc29sdXRpb24iLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRMOpY2ltYWwgKHNlbG9uIGxhIGRvY3VtZW50YXRpb24pIiwKICAib3B0LnJlc1R5cGUudTMyIjogIk5vbWJyZSBlbnRpZXIiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiQ29uc3RhbnRlIGRlIGNoaWZmcmVtZW50IiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICh1dGlsaXPDqWUgcGFyIGxlcyBvdXRpbHMgY291cmFudHMpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0IChsZSBkb2N1bWVudCBkZSBmb3JtYXQpIiwKICAib3B0LnN0eWxlIjogIkRpc3Bvc2l0aW9uIGR1IGZpY2hpZXIiLAogICJvcHQuc3R5bGUucGxhaW4iOiAiVGFibGVhdXggc2ltcGxlcyIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAiUGFyYW3DqHRyZXMgY2hpZmZyw6lzIiwKICAib3B0LnZlcnNpb24iOiAiVmVyc2lvbiIsCiAgIm9wdC52ZXJzaW9uLjMiOiAiMyIsCiAgIm9wdC52ZXJzaW9uLjQiOiAiNCIsCiAgIm9wdC52ZXJzaW9uLjUiOiAiNSIsCiAgIm9wdC5hbnRpYWxpYXMiOiAiTGlzc2FnZSBkZXMgYm9yZHMiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIkFjdGl2w6kiLAogICJvcHQuYW50aWFsaWFzLm9mZiI6ICJEw6lzYWN0aXbDqSIsCiAgIm9wdC5sYXllckNpcGhlciI6ICJCcm91aWxsZXIgbGVzIGNhbHF1ZXMiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAiT3VpIChsZSBwbHVzIGNvdXJhbnQpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJOb24gKHZlcnNpb24gMyBzaW1wbGUgdW5pcXVlbWVudCkiLAogICJvcHQuZW5jcnlwdGlvbiI6ICJDaGlmZnJlciBsZXMgY2FscXVlcyIsCiAgIm9wdC5lbmNyeXB0aW9uLm9mZiI6ICJOb24iLAogICJvcHQuZW5jcnlwdGlvbi5vbiI6ICJPdWkgKHNlbG9uIGxhIGRvY3VtZW50YXRpb24pIgp9Cg==","lang/id.json":"ewogICJAbG9jYWxlIjogImlkIiwKICAiQG5hbWUiOiAiQmFoYXNhIEluZG9uZXNpYSIsCiAgIkBub3RlIjogIkRyYWZ0IHRyYW5zbGF0aW9uLCBub3QgeWV0IHJldmlld2VkIGJ5IGEgbmF0aXZlIHNwZWFrZXIiLAogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgZGFuIENUQiAodmVyc2kgMiBoaW5nZ2EgNSkiLAogICJvcHQuYWEiOiAiVGluZ2thdCBwZW5naGFsdXNhbiB0ZXBpIiwKICAib3B0LmFhLjEiOiAiMSAodGlkYWsgYWRhKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAoY29udG9oIGRva3VtZW4pIiwKICAib3B0LnByb2plY3Rpb24iOiAiQmVuZGVyYSBwcm95ZWtzaSIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIkRpY2VybWlua2FuICh5YW5nIHVtdW0pIiwKICAib3B0LnByb2plY3Rpb24ubm9ybWFsIjogIk5vcm1hbCIsCiAgIm9wdC5yZXNUeXBlIjogIktvbG9tIHJlc29sdXNpIiwKICAib3B0LnJlc1R5cGUuZjMyIjogIkRlc2ltYWwgKHNlc3VhaSBkb2t1bWVudGFzaSkiLAogICJvcHQucmVzVHlwZS51MzIiOiAiQmlsYW5nYW4gYnVsYXQiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiS29uc3RhbnRhIHNhbmRpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzIChkaXBha2FpIGFsYXQgeWFuZyBiZXJmdW5nc2kpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0IChkb2t1bWVuIGZvcm1hdCkiLAogICJvcHQuc3R5bGUiOiAiVGF0YSBsZXRhayBmaWxlIiwKICAib3B0LnN0eWxlLnBsYWluIjogIlRhYmVsIGJpYXNhIiwKICAib3B0LnN0eWxlLmVuY3J5cHRlZCI6ICJQZW5nYXR1cmFuIHRlcmVua3JpcHNpIiwKICAib3B0LnZlcnNpb24iOiAiVmVyc2kiLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIlBlbmdoYWx1c2FuIHRlcGkiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIk55YWxhIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiTWF0aSIsCiAgIm9wdC5sYXllckNpcGhlciI6ICJBY2FrIGxheWVyIiwKICAib3B0LmxheWVyQ2lwaGVyLm9uIjogIllhICh5YW5nIHVtdW0pIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJUaWRhayAoaGFueWEgdmVyc2kgMyBiaWFzYSkiLAogICJvcHQuZW5jcnlwdGlvbiI6ICJFbmtyaXBzaSBsYXllciIsCiAgIm9wdC5lbmNyeXB0aW9uLm9mZiI6ICJUaWRhayIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIllhIChzZXN1YWkgZG9rdW1lbnRhc2kpIgp9Cg==","lang/it.json":"ewogICJAbG9jYWxlIjogIml0IiwKICAiQG5hbWUiOiAiSXRhbGlhbm8iLAogICJAbm90ZSI6ICJEcmFmdCB0cmFuc2xhdGlvbiwgbm90IHlldCByZXZpZXdlZCBieSBhIG5hdGl2ZSBzcGVha2VyIiwKICAibGFiZWwiOiAiQ2hpdHVib3ggQ0JERExQIGUgQ1RCICh2ZXJzaW9uaSBkYSAyIGEgNSkiLAogICJvcHQuYWEiOiAiTGl2ZWxsaSBkaSBzbXVzc2F0dXJhIGRlaSBib3JkaSIsCiAgIm9wdC5hYS4xIjogIjEgKG5lc3N1bm8pIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0IChsJ2VzZW1waW8gZGVsIGRvY3VtZW50bykiLAogICJvcHQucHJvamVjdGlvbiI6ICJGbGFnIGRpIHByb2llemlvbmUiLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJTcGVjdWxhcmUgKGlsIHBpw7kgY29tdW5lKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICJOb3JtYWxlIiwKICAib3B0LnJlc1R5cGUiOiAiQ2FtcG8gZGkgcmlzb2x1emlvbmUiLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRGVjaW1hbGUgKGNvbWUgZG9jdW1lbnRhdG8pIiwKICAib3B0LnJlc1R5cGUudTMyIjogIk51bWVybyBpbnRlcm8iLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiQ29zdGFudGUgZGkgY2lmcmF0dXJhIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICh1c2F0YSBkYWdsaSBzdHJ1bWVudGkgaW4gdXNvKSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyNCI6ICJEOEE4MzQyNCAoaWwgZG9jdW1lbnRvIGRpIGZvcm1hdG8pIiwKICAib3B0LnN0eWxlIjogIlN0cnV0dHVyYSBkZWwgZmlsZSIsCiAgIm9wdC5zdHlsZS5wbGFpbiI6ICJUYWJlbGxlIHNlbXBsaWNpIiwKICAib3B0LnN0eWxlLmVuY3J5cHRlZCI6ICJJbXBvc3RhemlvbmkgY2lmcmF0ZSIsCiAgIm9wdC52ZXJzaW9uIjogIlZlcnNpb25lIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICJTbXVzc2F0dXJhIGRlaSBib3JkaSIsCiAgIm9wdC5hbnRpYWxpYXMub24iOiAiQWNjZXNvIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiU3BlbnRvIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIk9mZnVzY2EgaSBsYXllciIsCiAgIm9wdC5sYXllckNpcGhlci5vbiI6ICJTw6wgKGlsIHBpw7kgY29tdW5lKSIsCiAgIm9wdC5sYXllckNpcGhlci5vZmYiOiAiTm8gKHNvbG8gdmVyc2lvbmUgMyBzZW1wbGljZSkiLAogICJvcHQuZW5jcnlwdGlvbiI6ICJDaWZyYSBpIGxheWVyIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIk5vIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAiU8OsIChjb21lIGRvY3VtZW50YXRvKSIKfQo=","lang/ja.json":"ewogICJAbG9jYWxlIjogImphIiwKICAiQG5hbWUiOiAi5pel5pys6KqeIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUOOBqENUQijjg5Djg7zjgrjjg6fjg7My44CcNSkiLAogICJvcHQuYWEiOiAi44Ko44OD44K444Gu5bmz5ruR5YyW44Os44OZ44OrIiwKICAib3B0LmFhLjEiOiAiMSjjgarjgZcpIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0KOS7leanmOabuOOBruS+iykiLAogICJvcHQucHJvamVjdGlvbiI6ICLmipXlvbHjg5Xjg6njgrAiLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICLjg5/jg6njg7wo5LiA6Iis55qEKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICLpgJrluLgiLAogICJvcHQucmVzVHlwZSI6ICLop6Plg4/luqbjg5XjgqPjg7zjg6vjg4kiLAogICJvcHQucmVzVHlwZS5mMzIiOiAi5bCP5pWwKOS7leanmOabuOOBqeOBiuOCiikiLAogICJvcHQucmVzVHlwZS51MzIiOiAi5pW05pWwIiwKICAib3B0LmNpcGhlckNvbnN0YW50IjogIuaal+WPt+WumuaVsCIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyMyI6ICJEOEE4MzQyMyjlrp/pmpvjga7jg4Tjg7zjg6vjgafkvb/nlKgpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0KOS7leanmOabuCkiLAogICJvcHQuc3R5bGUiOiAi44OV44Kh44Kk44Or44Gu44Os44Kk44Ki44Km44OIIiwKICAib3B0LnN0eWxlLnBsYWluIjogIumAmuW4uOOBruihqCIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAi5pqX5Y+35YyW44GV44KM44Gf6Kit5a6aIiwKICAib3B0LnZlcnNpb24iOiAi44OQ44O844K444On44OzIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICLjgqjjg4Pjgrjjga7lubPmu5HljJYiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIuOCquODsyIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIuOCquODlSIsCiAgIm9wdC5sYXllckNpcGhlciI6ICLjg6zjgqTjg6Tjg7zjgpLjgrnjgq/jg6njg7Pjg5bjg6siLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAi44Gv44GEKOS4gOiIrOeahCkiLAogICJvcHQubGF5ZXJDaXBoZXIub2ZmIjogIuOBhOOBhOOBiCjjg5Djg7zjgrjjg6fjg7Mz44Gu44G/KSIsCiAgIm9wdC5lbmNyeXB0aW9uIjogIuODrOOCpOODpOODvOOCkuaal+WPt+WMliIsCiAgIm9wdC5lbmNyeXB0aW9uLm9mZiI6ICLjgYTjgYTjgYgiLAogICJvcHQuZW5jcnlwdGlvbi5vbiI6ICLjga/jgYQo5LuV5qeY5pu444Gp44GK44KKKSIKfQo=","lang/ko.json":"ewogICJAbG9jYWxlIjogImtvIiwKICAiQG5hbWUiOiAi7ZWc6rWt7Ja0IiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCDrsI8gQ1RCICjrsoTsoIQgMn41KSIsCiAgIm9wdC5hYSI6ICLqsIDsnqXsnpDrpqwg66ek64GE65+96rKMIOyymOumrCDri6jqs4QiLAogICJvcHQuYWEuMSI6ICIxICjsl4bsnYwpIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0ICjrrLjshJwg7JiI7IucKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIu2IrOyYgSDtlIzrnpjqt7giLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICLrr7jrn6zrp4EgKOydvOuwmOyggSkiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAi7J2867CYIiwKICAib3B0LnJlc1R5cGUiOiAi7ZW07IOB64+EIO2VhOuTnCIsCiAgIm9wdC5yZXNUeXBlLmYzMiI6ICLshozsiJggKOusuOyEnCDquLDspIApIiwKICAib3B0LnJlc1R5cGUudTMyIjogIuygleyImCIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICLslZTtmLgg7IOB7IiYIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICjquLDsobQg64+E6rWs7JeQ7IScIOyCrOyaqSkiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjQgKO2YleyLnSDrrLjshJwpIiwKICAib3B0LnN0eWxlIjogIu2MjOydvCDqtazshLEiLAogICJvcHQuc3R5bGUucGxhaW4iOiAi7J2867CYIO2RnCIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAi7JWU7Zi47ZmU65CcIOyEpOyglSIsCiAgIm9wdC52ZXJzaW9uIjogIuuyhOyghCIsCiAgIm9wdC52ZXJzaW9uLjMiOiAiMyIsCiAgIm9wdC52ZXJzaW9uLjQiOiAiNCIsCiAgIm9wdC52ZXJzaW9uLjUiOiAiNSIsCiAgIm9wdC5hbnRpYWxpYXMiOiAi6rCA7J6l7J6Q66asIOunpOuBhOufveqyjCDsspjrpqwiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIuy8nOq4sCIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIuuBhOq4sCIsCiAgIm9wdC5sYXllckNpcGhlciI6ICLroIjsnbTslrQg7ISe6riwIiwKICAib3B0LmxheWVyQ2lwaGVyLm9uIjogIuyYiCAo7J2867CY7KCBKSIsCiAgIm9wdC5sYXllckNpcGhlci5vZmYiOiAi7JWE64uI7JqUICjrsoTsoIQgMyDsnbzrsJgg7ZiV7Iud66eMKSIsCiAgIm9wdC5lbmNyeXB0aW9uIjogIuugiOydtOyWtCDslZTtmLjtmZQiLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAi7JWE64uI7JqUIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAi7JiIICjrrLjshJwg6riw7KSAKSIKfQo=","lang/nl.json":"ewogICJAbG9jYWxlIjogIm5sIiwKICAiQG5hbWUiOiAiTmVkZXJsYW5kcyIsCiAgIkBub3RlIjogIkRyYWZ0IHRyYW5zbGF0aW9uLCBub3QgeWV0IHJldmlld2VkIGJ5IGEgbmF0aXZlIHNwZWFrZXIiLAogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgZW4gQ1RCICh2ZXJzaWVzIDIgdG90IDUpIiwKICAib3B0LmFhIjogIk5pdmVhdXMgcmFuZHZlcnphY2h0aW5nIiwKICAib3B0LmFhLjEiOiAiMSAoZ2VlbikiLAogICJvcHQuYWEuMiI6ICIyIiwKICAib3B0LmFhLjMiOiAiMyIsCiAgIm9wdC5hYS40IjogIjQgKGhldCB2b29yYmVlbGQgaW4gaGV0IGRvY3VtZW50KSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIlByb2plY3RpZXZsYWciLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJHZXNwaWVnZWxkIChoZXQgZ2VicnVpa2VsaWprZSkiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAiTm9ybWFhbCIsCiAgIm9wdC5yZXNUeXBlIjogIlJlc29sdXRpZXZlbGQiLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRGVjaW1hYWwgKHpvYWxzIGdlZG9jdW1lbnRlZXJkKSIsCiAgIm9wdC5yZXNUeXBlLnUzMiI6ICJHZWhlZWwgZ2V0YWwiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiQ2lqZmVyY29uc3RhbnRlIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzIChnZWJydWlrdCBkb29yIHdlcmtlbmRlIHRvb2xzKSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyNCI6ICJEOEE4MzQyNCAoaGV0IGZvcm1hYXRkb2N1bWVudCkiLAogICJvcHQuc3R5bGUiOiAiQmVzdGFuZHNpbmRlbGluZyIsCiAgIm9wdC5zdHlsZS5wbGFpbiI6ICJHZXdvbmUgdGFiZWxsZW4iLAogICJvcHQuc3R5bGUuZW5jcnlwdGVkIjogIlZlcnNsZXV0ZWxkZSBpbnN0ZWxsaW5nZW4iLAogICJvcHQudmVyc2lvbiI6ICJWZXJzaWUiLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIlJhbmR2ZXJ6YWNodGluZyIsCiAgIm9wdC5hbnRpYWxpYXMub24iOiAiQWFuIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiVWl0IiwKICAib3B0LmxheWVyQ2lwaGVyIjogIkxhZ2VuIHZlcndhcnJlbiIsCiAgIm9wdC5sYXllckNpcGhlci5vbiI6ICJKYSAoaGV0IGdlYnJ1aWtlbGlqa2UpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJOZWUgKGFsbGVlbiB2ZXJzaWUgMykiLAogICJvcHQuZW5jcnlwdGlvbiI6ICJMYWdlbiB2ZXJzbGV1dGVsZW4iLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAiTmVlIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAiSmEgKHpvYWxzIGdlZG9jdW1lbnRlZXJkKSIKfQo=","lang/pl.json":"ewogICJAbG9jYWxlIjogInBsIiwKICAiQG5hbWUiOiAiUG9sc2tpIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCBpIENUQiAod2Vyc2plIDLigJM1KSIsCiAgIm9wdC5hYSI6ICJQb3ppb215IHd5Z8WCYWR6YW5pYSBrcmF3xJlkemkiLAogICJvcHQuYWEuMSI6ICIxIChicmFrKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAocHJ6eWvFgmFkIHogZG9rdW1lbnR1KSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIkZsYWdhIHByb2pla2NqaSIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIkx1c3RyemFuYSAodHlwb3dhKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICJOb3JtYWxuYSIsCiAgIm9wdC5yZXNUeXBlIjogIlBvbGUgcm96ZHppZWxjem/Fm2NpIiwKICAib3B0LnJlc1R5cGUuZjMyIjogIkR6aWVzacSZdG5hICh6Z29kbmllIHogZG9rdW1lbnRhY2rEhSkiLAogICJvcHQucmVzVHlwZS51MzIiOiAiTGljemJhIGNhxYJrb3dpdGEiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiU3RhxYJhIHN6eWZydSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyMyI6ICJEOEE4MzQyMyAodcW8eXdhbmEgcHJ6ZXogZHppYcWCYWrEhWNlIG5hcnrEmWR6aWEpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0IChkb2t1bWVudCBmb3JtYXR1KSIsCiAgIm9wdC5zdHlsZSI6ICJVa8WCYWQgcGxpa3UiLAogICJvcHQuc3R5bGUucGxhaW4iOiAiWnd5a8WCZSB0YWJlbGUiLAogICJvcHQuc3R5bGUuZW5jcnlwdGVkIjogIlphc3p5ZnJvd2FuZSB1c3Rhd2llbmlhIiwKICAib3B0LnZlcnNpb24iOiAiV2Vyc2phIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICJXeWfFgmFkemFuaWUga3Jhd8SZZHppIiwKICAib3B0LmFudGlhbGlhcy5vbiI6ICJXxYLEhWN6b25lIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiV3nFgsSFY3pvbmUiLAogICJvcHQubGF5ZXJDaXBoZXIiOiAiWmFjaWVtbmlqIHdhcnN0d3kiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAiVGFrICh0eXBvd2UpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJOaWUgKHR5bGtvIHp3eWvFgmEgd2Vyc2phIDMpIiwKICAib3B0LmVuY3J5cHRpb24iOiAiU3p5ZnJvd2FuaWUgd2Fyc3R3IiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIk5pZSIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIlRhayAoemdvZG5pZSB6IGRva3VtZW50YWNqxIUpIgp9Cg==","lang/pt-BR.json":"ewogICJAbG9jYWxlIjogInB0LUJSIiwKICAiQG5hbWUiOiAiUG9ydHVndcOqcyAoQnJhc2lsKSIsCiAgIkBub3RlIjogIkRyYWZ0IHRyYW5zbGF0aW9uLCBub3QgeWV0IHJldmlld2VkIGJ5IGEgbmF0aXZlIHNwZWFrZXIiLAogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgZSBDVEIgKHZlcnPDtWVzIDIgYSA1KSIsCiAgIm9wdC5hYSI6ICJOw612ZWlzIGRlIHN1YXZpemHDp8OjbyBkZSBib3JkYXMiLAogICJvcHQuYWEuMSI6ICIxIChuZW5odW0pIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0IChvIGV4ZW1wbG8gZG8gZG9jdW1lbnRvKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIlNpbmFsaXphZG9yIGRlIHByb2plw6fDo28iLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJFc3BlbGhhZGEgKGEgbWFpcyBjb211bSkiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAiTm9ybWFsIiwKICAib3B0LnJlc1R5cGUiOiAiQ2FtcG8gZGUgcmVzb2x1w6fDo28iLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRGVjaW1hbCAoY29uZm9ybWUgZG9jdW1lbnRhZG8pIiwKICAib3B0LnJlc1R5cGUudTMyIjogIk7Dum1lcm8gaW50ZWlybyIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICJDb25zdGFudGUgZGUgY2lmcmEiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjMiOiAiRDhBODM0MjMgKHVzYWRhIHBlbGFzIGZlcnJhbWVudGFzIGVtIGZ1bmNpb25hbWVudG8pIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0IChvIGRvY3VtZW50byBkZSBmb3JtYXRvKSIsCiAgIm9wdC5zdHlsZSI6ICJFc3RydXR1cmEgZG8gYXJxdWl2byIsCiAgIm9wdC5zdHlsZS5wbGFpbiI6ICJUYWJlbGFzIHNpbXBsZXMiLAogICJvcHQuc3R5bGUuZW5jcnlwdGVkIjogIkNvbmZpZ3VyYcOnw7VlcyBjcmlwdG9ncmFmYWRhcyIsCiAgIm9wdC52ZXJzaW9uIjogIlZlcnPDo28iLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIlN1YXZpemHDp8OjbyBkZSBib3JkYXMiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIkxpZ2FkYSIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIkRlc2xpZ2FkYSIsCiAgIm9wdC5sYXllckNpcGhlciI6ICJFbWJhcmFsaGFyIGFzIGNhbWFkYXMiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAiU2ltIChhIG1haXMgY29tdW0pIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJOw6NvIChzb21lbnRlIHZlcnPDo28gMyBzaW1wbGVzKSIsCiAgIm9wdC5lbmNyeXB0aW9uIjogIkNyaXB0b2dyYWZhciBhcyBjYW1hZGFzIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIk7Do28iLAogICJvcHQuZW5jcnlwdGlvbi5vbiI6ICJTaW0gKGNvbmZvcm1lIGRvY3VtZW50YWRvKSIKfQo=","lang/pt-PT.json":"ewogICJAbG9jYWxlIjogInB0LVBUIiwKICAiQG5hbWUiOiAiUG9ydHVndcOqcyAoUG9ydHVnYWwpIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCBlIENUQiAodmVyc8O1ZXMgMiBhIDUpIiwKICAib3B0LmFhIjogIk7DrXZlaXMgZGUgc3Vhdml6YcOnw6NvIGRlIGFyZXN0YXMiLAogICJvcHQuYWEuMSI6ICIxIChuZW5odW0pIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0IChvIGV4ZW1wbG8gZG8gZG9jdW1lbnRvKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIk1hcmNhZG9yIGRlIHByb2plw6fDo28iLAogICJvcHQucHJvamVjdGlvbi5taXJyb3JlZCI6ICJFc3BlbGhhZGEgKGEgaGFiaXR1YWwpIiwKICAib3B0LnByb2plY3Rpb24ubm9ybWFsIjogIk5vcm1hbCIsCiAgIm9wdC5yZXNUeXBlIjogIkNhbXBvIGRlIHJlc29sdcOnw6NvIiwKICAib3B0LnJlc1R5cGUuZjMyIjogIkRlY2ltYWwgKGNvbmZvcm1lIGRvY3VtZW50YWRvKSIsCiAgIm9wdC5yZXNUeXBlLnUzMiI6ICJOw7ptZXJvIGludGVpcm8iLAogICJvcHQuY2lwaGVyQ29uc3RhbnQiOiAiQ29uc3RhbnRlIGRlIGNpZnJhIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICh1c2FkYSBwZWxhcyBmZXJyYW1lbnRhcyBkZSB0cmFiYWxobykiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjQgKG8gZG9jdW1lbnRvIGRlIGZvcm1hdG8pIiwKICAib3B0LnN0eWxlIjogIkRpc3Bvc2nDp8OjbyBkbyBmaWNoZWlybyIsCiAgIm9wdC5zdHlsZS5wbGFpbiI6ICJUYWJlbGFzIHNpbXBsZXMiLAogICJvcHQuc3R5bGUuZW5jcnlwdGVkIjogIkRlZmluacOnw7VlcyBjaWZyYWRhcyIsCiAgIm9wdC52ZXJzaW9uIjogIlZlcnPDo28iLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIlN1YXZpemHDp8OjbyBkZSBhcmVzdGFzIiwKICAib3B0LmFudGlhbGlhcy5vbiI6ICJMaWdhZGEiLAogICJvcHQuYW50aWFsaWFzLm9mZiI6ICJEZXNsaWdhZGEiLAogICJvcHQubGF5ZXJDaXBoZXIiOiAiRW1iYXJhbGhhciBhcyBjYW1hZGFzIiwKICAib3B0LmxheWVyQ2lwaGVyLm9uIjogIlNpbSAobyBoYWJpdHVhbCkiLAogICJvcHQubGF5ZXJDaXBoZXIub2ZmIjogIk7Do28gKGFwZW5hcyB2ZXJzw6NvIDMgc2ltcGxlcykiLAogICJvcHQuZW5jcnlwdGlvbiI6ICJDaWZyYXIgYXMgY2FtYWRhcyIsCiAgIm9wdC5lbmNyeXB0aW9uLm9mZiI6ICJOw6NvIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAiU2ltIChjb25mb3JtZSBkb2N1bWVudGFkbykiCn0K","lang/ru.json":"ewogICJAbG9jYWxlIjogInJ1IiwKICAiQG5hbWUiOiAi0KDRg9GB0YHQutC40LkiLAogICJAbm90ZSI6ICJEcmFmdCB0cmFuc2xhdGlvbiwgbm90IHlldCByZXZpZXdlZCBieSBhIG5hdGl2ZSBzcGVha2VyIiwKICAibGFiZWwiOiAiQ2hpdHVib3ggQ0JERExQINC4IENUQiAo0LLQtdGA0YHQuNC4IDLigJM1KSIsCiAgIm9wdC5hYSI6ICLQo9GA0L7QstC90Lgg0YHQs9C70LDQttC40LLQsNC90LjRjyDQutGA0LDQtdCyIiwKICAib3B0LmFhLjEiOiAiMSAo0L3QtdGCKSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAo0LrQsNC6INCyINC/0YDQuNC80LXRgNC1INC00L7QutGD0LzQtdC90YLQsCkiLAogICJvcHQucHJvamVjdGlvbiI6ICLQpNC70LDQsyDQv9GA0L7QtdC60YbQuNC4IiwKICAib3B0LnByb2plY3Rpb24ubWlycm9yZWQiOiAi0JfQtdGA0LrQsNC70YzQvdGL0LkgKNC+0LHRi9GH0L3QvikiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAi0J7QsdGL0YfQvdGL0LkiLAogICJvcHQucmVzVHlwZSI6ICLQn9C+0LvQtSDRgNCw0LfRgNC10YjQtdC90LjRjyIsCiAgIm9wdC5yZXNUeXBlLmYzMiI6ICLQlNC10YHRj9GC0LjRh9C90L7QtSAo0LrQsNC6INCyINC00L7QutGD0LzQtdC90YLQsNGG0LjQuCkiLAogICJvcHQucmVzVHlwZS51MzIiOiAi0KbQtdC70L7QtSDRh9C40YHQu9C+IiwKICAib3B0LmNpcGhlckNvbnN0YW50IjogItCo0LjRhNGA0L7QstCw0LvRjNC90LDRjyDQutC+0L3RgdGC0LDQvdGC0LAiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjMiOiAiRDhBODM0MjMgKNC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRgNCw0LHQvtGH0LjQvNC4INC40L3RgdGC0YDRg9C80LXQvdGC0LDQvNC4KSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyNCI6ICJEOEE4MzQyNCAo0LrQsNC6INCyINC00L7QutGD0LzQtdC90YLQtSDRhNC+0YDQvNCw0YLQsCkiLAogICJvcHQuc3R5bGUiOiAi0KHRgtGA0YPQutGC0YPRgNCwINGE0LDQudC70LAiLAogICJvcHQuc3R5bGUucGxhaW4iOiAi0J7QsdGL0YfQvdGL0LUg0YLQsNCx0LvQuNGG0YsiLAogICJvcHQuc3R5bGUuZW5jcnlwdGVkIjogItCX0LDRiNC40YTRgNC+0LLQsNC90L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuCIsCiAgIm9wdC52ZXJzaW9uIjogItCS0LXRgNGB0LjRjyIsCiAgIm9wdC52ZXJzaW9uLjMiOiAiMyIsCiAgIm9wdC52ZXJzaW9uLjQiOiAiNCIsCiAgIm9wdC52ZXJzaW9uLjUiOiAiNSIsCiAgIm9wdC5hbnRpYWxpYXMiOiAi0KHQs9C70LDQttC40LLQsNC90LjQtSDQutGA0LDQtdCyIiwKICAib3B0LmFudGlhbGlhcy5vbiI6ICLQktC60LsiLAogICJvcHQuYW50aWFsaWFzLm9mZiI6ICLQktGL0LrQuyIsCiAgIm9wdC5sYXllckNpcGhlciI6ICLQn9C10YDQtdC80LXRiNCw0YLRjCDRgdC70L7QuCIsCiAgIm9wdC5sYXllckNpcGhlci5vbiI6ICLQlNCwICjQvtCx0YvRh9C90L4pIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICLQndC10YIgKNGC0L7Qu9GM0LrQviDQv9GA0L7RgdGC0LDRjyDQstC10YDRgdC40Y8gMykiLAogICJvcHQuZW5jcnlwdGlvbiI6ICLQqNC40YTRgNC+0LLQsNGC0Ywg0YHQu9C+0LgiLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAi0J3QtdGCIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAi0JTQsCAo0LrQsNC6INCyINC00L7QutGD0LzQtdC90YLQsNGG0LjQuCkiCn0K","lang/sv.json":"ewogICJAbG9jYWxlIjogInN2IiwKICAiQG5hbWUiOiAiU3ZlbnNrYSIsCiAgIkBub3RlIjogIkRyYWZ0IHRyYW5zbGF0aW9uLCBub3QgeWV0IHJldmlld2VkIGJ5IGEgbmF0aXZlIHNwZWFrZXIiLAogICJsYWJlbCI6ICJDaGl0dWJveCBDQkRETFAgb2NoIENUQiAodmVyc2lvbiAyIHRpbGwgNSkiLAogICJvcHQuYWEiOiAiTml2w6VlciBmw7ZyIGthbnR1dGrDpG1uaW5nIiwKICAib3B0LmFhLjEiOiAiMSAoaW5nZW4pIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0IChkb2t1bWVudGV0cyBleGVtcGVsKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIlByb2pla3Rpb25zZmxhZ2dhIiwKICAib3B0LnByb2plY3Rpb24ubWlycm9yZWQiOiAiU3BlZ2VsdsOkbmQgKHZhbmxpZ2FzdCkiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAiTm9ybWFsIiwKICAib3B0LnJlc1R5cGUiOiAiVXBwbMO2c25pbmdzZsOkbHQiLAogICJvcHQucmVzVHlwZS5mMzIiOiAiRGVjaW1hbCAoZW5saWd0IGRva3VtZW50YXRpb25lbikiLAogICJvcHQucmVzVHlwZS51MzIiOiAiSGVsdGFsIiwKICAib3B0LmNpcGhlckNvbnN0YW50IjogIkNoaWZmcmVyaW5nc2tvbnN0YW50IiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzIChhbnbDpG5kcyBhdiBmdW5nZXJhbmRlIHZlcmt0eWcpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDI0IjogIkQ4QTgzNDI0IChmb3JtYXRkb2t1bWVudGV0KSIsCiAgIm9wdC5zdHlsZSI6ICJGaWx1cHBieWdnbmFkIiwKICAib3B0LnN0eWxlLnBsYWluIjogIlZhbmxpZ2EgdGFiZWxsZXIiLAogICJvcHQuc3R5bGUuZW5jcnlwdGVkIjogIktyeXB0ZXJhZGUgaW5zdMOkbGxuaW5nYXIiLAogICJvcHQudmVyc2lvbiI6ICJWZXJzaW9uIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICJLYW50dXRqw6RtbmluZyIsCiAgIm9wdC5hbnRpYWxpYXMub24iOiAiUMOlIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAiQXYiLAogICJvcHQubGF5ZXJDaXBoZXIiOiAiU2tyYW1ibGEgbGFncmVuIiwKICAib3B0LmxheWVyQ2lwaGVyLm9uIjogIkphICh2YW5saWdhc3QpIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICJOZWogKGVuZGFzdCB2ZXJzaW9uIDMpIiwKICAib3B0LmVuY3J5cHRpb24iOiAiS3J5cHRlcmEgbGFncmVuIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIk5laiIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIkphIChlbmxpZ3QgZG9rdW1lbnRhdGlvbmVuKSIKfQo=","lang/th.json":"ewogICJAbG9jYWxlIjogInRoIiwKICAiQG5hbWUiOiAi4LmE4LiX4LiiIiwKICAiQG5vdGUiOiAiRHJhZnQgdHJhbnNsYXRpb24sIG5vdCB5ZXQgcmV2aWV3ZWQgYnkgYSBuYXRpdmUgc3BlYWtlciIsCiAgImxhYmVsIjogIkNoaXR1Ym94IENCRERMUCDguYHguKXguLAgQ1RCICjguYDguKfguK3guKPguYzguIrguLHguJkgMiDguJbguLbguIcgNSkiLAogICJvcHQuYWEiOiAi4Lij4Liw4LiU4Lix4Lia4LiB4Liy4Lij4LiX4Liz4LmD4Lir4LmJ4LiC4Lit4Lia4LmA4Lij4Li14Lii4LiaIiwKICAib3B0LmFhLjEiOiAiMSAo4LmE4Lih4LmI4Lih4Li1KSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNCAo4LiV4Liy4Lih4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiH4LmD4LiZ4LmA4Lit4LiB4Liq4Liy4LijKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIuC4mOC4h+C4geC4suC4o+C4ieC4suC4oiIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIuC4quC4sOC4l+C5ieC4reC4mSAo4LiX4Lix4LmI4Lin4LmE4LibKSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICLguJvguIHguJXguLQiLAogICJvcHQucmVzVHlwZSI6ICLguIrguYjguK3guIfguITguKfguLLguKHguKXguLDguYDguK3guLXguKLguJQiLAogICJvcHQucmVzVHlwZS5mMzIiOiAi4LiX4Lio4LiZ4Li04Lii4LihICjguJXguLLguKHguYDguK3guIHguKrguLLguKMpIiwKICAib3B0LnJlc1R5cGUudTMyIjogIuC4iOC4s+C4meC4p+C4meC5gOC4leC5h+C4oSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICLguITguYjguLLguITguIfguJfguLXguYjguIHguLLguKPguYDguILguYnguLLguKPguKvguLHguKoiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjMiOiAiRDhBODM0MjMgKOC4l+C4teC5iOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4oeC4t+C4reC4i+C4tuC5iOC4h+C5g+C4iuC5ieC4h+C4suC4meC5hOC4lOC5ieC4iOC4o+C4tOC4h+C5g+C4iuC5iSkiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjQgKOC4leC4suC4oeC5gOC4reC4geC4quC4suC4o+C4o+C4ueC4m+C5geC4muC4muC5hOC4n+C4peC5jCkiLAogICJvcHQuc3R5bGUiOiAi4LmC4LiE4Lij4LiH4Liq4Lij4LmJ4Liy4LiH4LmE4Lif4Lil4LmMIiwKICAib3B0LnN0eWxlLnBsYWluIjogIuC4leC4suC4o+C4suC4h+C4mOC4o+C4o+C4oeC4lOC4siIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAi4LiB4Liy4Lij4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LiX4Li14LmI4LmA4LiC4LmJ4Liy4Lij4Lir4Lix4LiqIiwKICAib3B0LnZlcnNpb24iOiAi4LmA4Lin4Lit4Lij4LmM4LiK4Lix4LiZIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICLguIHguLLguKPguJfguLPguYPguKvguYnguILguK3guJrguYDguKPguLXguKLguJoiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIuC5gOC4m+C4tOC4lCIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIuC4m+C4tOC4lCIsCiAgIm9wdC5sYXllckNpcGhlciI6ICLguKrguLHguJrguYDguJvguKXguLXguYjguKLguJnguYDguKXguYDguKLguK3guKPguYwiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAi4LmD4LiK4LmIICjguJfguLHguYjguKfguYTguJspIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICLguYTguKHguYjguYPguIrguYggKOC5g+C4iuC5ieC5hOC4lOC5ieC5gOC4ieC4nuC4suC4sOC5gOC4p+C4reC4o+C5jOC4iuC4seC4mSAzIOC5geC4muC4muC4mOC4o+C4o+C4oeC4lOC4sikiLAogICJvcHQuZW5jcnlwdGlvbiI6ICLguYDguILguYnguLLguKPguKvguLHguKrguYDguKXguYDguKLguK3guKPguYwiLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAi4LmE4Lih4LmIIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAi4LmD4LiK4LmIICjguJXguLLguKHguYDguK3guIHguKrguLLguKMpIgp9Cg==","lang/tr.json":"ewogICJAbG9jYWxlIjogInRyIiwKICAiQG5hbWUiOiAiVMO8cmvDp2UiLAogICJAbm90ZSI6ICJEcmFmdCB0cmFuc2xhdGlvbiwgbm90IHlldCByZXZpZXdlZCBieSBhIG5hdGl2ZSBzcGVha2VyIiwKICAibGFiZWwiOiAiQ2hpdHVib3ggQ0JERExQIHZlIENUQiAoc8O8csO8bSAyIGlsYSA1KSIsCiAgIm9wdC5hYSI6ICJLZW5hciB5dW11xZ9hdG1hIHNldml5ZWxlcmkiLAogICJvcHQuYWEuMSI6ICIxICh5b2spIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI0IChiZWxnZWRla2kgw7ZybmVrKSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIlByb2pla3NpeW9uIGJheXJhxJ/EsSIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIkF5bmFsYW5txLHFnyAob2xhxJ9hbikiLAogICJvcHQucHJvamVjdGlvbi5ub3JtYWwiOiAiTm9ybWFsIiwKICAib3B0LnJlc1R5cGUiOiAiw4fDtnrDvG7DvHJsw7xrIGFsYW7EsSIsCiAgIm9wdC5yZXNUeXBlLmYzMiI6ICJPbmRhbMSxayAoYmVsZ2VkZSBiZWxpcnRpbGRpxJ9pIGdpYmkpIiwKICAib3B0LnJlc1R5cGUudTMyIjogIlRhbSBzYXnEsSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICLFnmlmcmUgc2FiaXRpIiwKICAib3B0LmNpcGhlckNvbnN0YW50LmQ4YTgzNDIzIjogIkQ4QTgzNDIzICjDp2FsxLHFn2FuIGFyYcOnbGFyIHRhcmFmxLFuZGFuIGt1bGxhbsSxbGFuKSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyNCI6ICJEOEE4MzQyNCAoYmnDp2ltIGJlbGdlc2kpIiwKICAib3B0LnN0eWxlIjogIkRvc3lhIGTDvHplbmkiLAogICJvcHQuc3R5bGUucGxhaW4iOiAiRMO8eiB0YWJsb2xhciIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAixZ5pZnJlbGkgYXlhcmxhciIsCiAgIm9wdC52ZXJzaW9uIjogIlPDvHLDvG0iLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIktlbmFyIHl1bXXFn2F0bWEiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIkHDp8SxayIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIkthcGFsxLEiLAogICJvcHQubGF5ZXJDaXBoZXIiOiAiS2F0bWFubGFyxLEga2FyxLHFn3TEsXIiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAiRXZldCAob2xhxJ9hbikiLAogICJvcHQubGF5ZXJDaXBoZXIub2ZmIjogIkhhecSxciAoeWFsbsSxemNhIGTDvHogc8O8csO8bSAzKSIsCiAgIm9wdC5lbmNyeXB0aW9uIjogIkthdG1hbmxhcsSxIMWfaWZyZWxlIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIkhhecSxciIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIkV2ZXQgKGJlbGdlZGUgYmVsaXJ0aWxkacSfaSBnaWJpKSIKfQo=","lang/zh-Hans.json":"ewogICJAbG9jYWxlIjogInpoLUhhbnMiLAogICJAbmFtZSI6ICLnroDkvZPkuK3mlociLAogICJAbm90ZSI6ICJEcmFmdCB0cmFuc2xhdGlvbiwgbm90IHlldCByZXZpZXdlZCBieSBhIG5hdGl2ZSBzcGVha2VyIiwKICAibGFiZWwiOiAiQ2hpdHVib3ggQ0JERExQIOWSjCBDVELvvIjniYjmnKwy6IezNe+8iSIsCiAgIm9wdC5hYSI6ICLovrnnvJjlubPmu5HnuqfliKsiLAogICJvcHQuYWEuMSI6ICIx77yI5peg77yJIiwKICAib3B0LmFhLjIiOiAiMiIsCiAgIm9wdC5hYS4zIjogIjMiLAogICJvcHQuYWEuNCI6ICI077yI5paH5qGj56S65L6L77yJIiwKICAib3B0LnByb2plY3Rpb24iOiAi5oqV5b2x5qCH5b+XIiwKICAib3B0LnByb2plY3Rpb24ubWlycm9yZWQiOiAi6ZWc5YOP77yI5bi455So77yJIiwKICAib3B0LnByb2plY3Rpb24ubm9ybWFsIjogIuato+W4uCIsCiAgIm9wdC5yZXNUeXBlIjogIuWIhui+qOeOh+Wtl+autSIsCiAgIm9wdC5yZXNUeXBlLmYzMiI6ICLlsI/mlbDvvIjmjInmlofmoaPvvIkiLAogICJvcHQucmVzVHlwZS51MzIiOiAi5pW05pWwIiwKICAib3B0LmNpcGhlckNvbnN0YW50IjogIuWKoOWvhuW4uOmHjyIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyMyI6ICJEOEE4MzQyM++8iOWunumZheW3peWFt+aJgOeUqO+8iSIsCiAgIm9wdC5jaXBoZXJDb25zdGFudC5kOGE4MzQyNCI6ICJEOEE4MzQyNO+8iOagvOW8j+aWh+aho++8iSIsCiAgIm9wdC5zdHlsZSI6ICLmlofku7bluIPlsYAiLAogICJvcHQuc3R5bGUucGxhaW4iOiAi5pmu6YCa6KGo5qC8IiwKICAib3B0LnN0eWxlLmVuY3J5cHRlZCI6ICLliqDlr4borr7nva4iLAogICJvcHQudmVyc2lvbiI6ICLniYjmnKwiLAogICJvcHQudmVyc2lvbi4zIjogIjMiLAogICJvcHQudmVyc2lvbi40IjogIjQiLAogICJvcHQudmVyc2lvbi41IjogIjUiLAogICJvcHQuYW50aWFsaWFzIjogIui+uee8mOW5s+a7kSIsCiAgIm9wdC5hbnRpYWxpYXMub24iOiAi5byAIiwKICAib3B0LmFudGlhbGlhcy5vZmYiOiAi5YWzIiwKICAib3B0LmxheWVyQ2lwaGVyIjogIuaJk+S5seWbvuWxgiIsCiAgIm9wdC5sYXllckNpcGhlci5vbiI6ICLmmK/vvIjluLjnlKjvvIkiLAogICJvcHQubGF5ZXJDaXBoZXIub2ZmIjogIuWQpu+8iOS7heeJiOacrDPvvIkiLAogICJvcHQuZW5jcnlwdGlvbiI6ICLliqDlr4blm77lsYIiLAogICJvcHQuZW5jcnlwdGlvbi5vZmYiOiAi5ZCmIiwKICAib3B0LmVuY3J5cHRpb24ub24iOiAi5piv77yI5oyJ5paH5qGj77yJIgp9Cg==","lang/zh-Hant.json":"ewogICJAbG9jYWxlIjogInpoLUhhbnQiLAogICJAbmFtZSI6ICLnuYHpq5TkuK3mlociLAogICJAbm90ZSI6ICJEcmFmdCB0cmFuc2xhdGlvbiwgbm90IHlldCByZXZpZXdlZCBieSBhIG5hdGl2ZSBzcGVha2VyIiwKICAibGFiZWwiOiAiQ2hpdHVib3ggQ0JERExQ6IiHQ1RC77yI54mI5pysMuiHszXvvIkiLAogICJvcHQuYWEiOiAi6YKK57ej5bmz5ruR562J57SaIiwKICAib3B0LmFhLjEiOiAiMe+8iOeEoe+8iSIsCiAgIm9wdC5hYS4yIjogIjIiLAogICJvcHQuYWEuMyI6ICIzIiwKICAib3B0LmFhLjQiOiAiNO+8iOaWh+S7tuevhOS+i++8iSIsCiAgIm9wdC5wcm9qZWN0aW9uIjogIuaKleW9seaXl+aomSIsCiAgIm9wdC5wcm9qZWN0aW9uLm1pcnJvcmVkIjogIumPoeWDj++8iOW4uOeUqO+8iSIsCiAgIm9wdC5wcm9qZWN0aW9uLm5vcm1hbCI6ICLkuIDoiKwiLAogICJvcHQucmVzVHlwZSI6ICLop6PmnpDluqbmrITkvY0iLAogICJvcHQucmVzVHlwZS5mMzIiOiAi5bCP5pW477yI5L6d5paH5Lu277yJIiwKICAib3B0LnJlc1R5cGUudTMyIjogIuaVtOaVuCIsCiAgIm9wdC5jaXBoZXJDb25zdGFudCI6ICLliqDlr4bluLjmlbgiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjMiOiAiRDhBODM0MjPvvIjlt6XlhbfluLjnlKjvvIkiLAogICJvcHQuY2lwaGVyQ29uc3RhbnQuZDhhODM0MjQiOiAiRDhBODM0MjTvvIjmoLzlvI/mlofku7bvvIkiLAogICJvcHQuc3R5bGUiOiAi5qqU5qGI6YWN572uIiwKICAib3B0LnN0eWxlLnBsYWluIjogIue0lOihqOagvCIsCiAgIm9wdC5zdHlsZS5lbmNyeXB0ZWQiOiAi5Yqg5a+G6Kit5a6aIiwKICAib3B0LnZlcnNpb24iOiAi54mI5pysIiwKICAib3B0LnZlcnNpb24uMyI6ICIzIiwKICAib3B0LnZlcnNpb24uNCI6ICI0IiwKICAib3B0LnZlcnNpb24uNSI6ICI1IiwKICAib3B0LmFudGlhbGlhcyI6ICLpgornt6PlubPmu5EiLAogICJvcHQuYW50aWFsaWFzLm9uIjogIumWi+WVnyIsCiAgIm9wdC5hbnRpYWxpYXMub2ZmIjogIumXnOmWiSIsCiAgIm9wdC5sYXllckNpcGhlciI6ICLmiZPkuoLlnJblsaQiLAogICJvcHQubGF5ZXJDaXBoZXIub24iOiAi5piv77yI5bi455So77yJIiwKICAib3B0LmxheWVyQ2lwaGVyLm9mZiI6ICLlkKbvvIjlg4XpmZDniYjmnKwz57SU5qC85byP77yJIiwKICAib3B0LmVuY3J5cHRpb24iOiAi5Yqg5a+G5ZyW5bGkIiwKICAib3B0LmVuY3J5cHRpb24ub2ZmIjogIuWQpiIsCiAgIm9wdC5lbmNyeXB0aW9uLm9uIjogIuaYr++8iOS+neaWh+S7tu+8iSIKfQo=","main.js":"LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgKi8KLyoqCiAqIG1haW4uanMg4oCUIHRoZSBDaGl0dWJveCBmYW1pbHkgb2YgcmVzaW4gZmlsZXMsIENCRERMUCBhbmQgQ1RCIHZlcnNpb25zIDIgdG8gNSAocm9hZG1hcCBSU04uNiwgUlNOLjEwOyBkb2NzLzAuOS1SRVNJTi1TVEFHRS5tZCkuIEl0IGFkZHMgYm90aCB3cml0ZXJzIHRvIHdpbmRvdy5jY1Jlc2luRm9ybWF0cy4gQ0JERExQIGFuZCBDVEIgdjIgYXJlIHdyaXR0ZW4gZnJvbSBvbmUgcHVibGlzaGVkCiAqIGZvcm1hdCBkb2N1bWVudDsgQ1RCIHYzIHRvIHY1IChycy1jdGIzLmpzKSBmcm9tIGEgc3BlY2lmaWNhdGlvbiAoZG9jcy9yZXNpbi1mb3JtYXRzL2N0Yi12My12NS1TUEVDLm1kKSBieSBhIGJ1aWxkZXIgd2hvIHNhdyBub3RoaW5nIGVsc2UuIHJzLWNiZGRscC5qcyBhbmQgcnMtY3RiLmpzIGFyZSBsaWIvcHJpbnRyZXNpbidzIGNvcGllcwogKiAobm9kZSB0b29scy9wcmludHJlc2luL3N5bmMubWpzKS4KICovCmltcG9ydCB7IENCRERMUCwgd3JpdGVDYmRkbHAgfSBmcm9tICcuL3JzLWNiZGRscC5qcyc7CmltcG9ydCB7IENUQiwgd3JpdGVDdGIgfSBmcm9tICcuL3JzLWN0Yi5qcyc7CmltcG9ydCB7IENUQjMsIHdyaXRlQ3RiMyB9IGZyb20gJy4vcnMtY3RiMy5qcyc7CgpleHBvcnQgZnVuY3Rpb24gYWN0aXZhdGUoYXBpKSB7CiAgY29uc3QgdCA9IChrLCB2KSA9PiBhcGkudChrLCB2KTsKICBjb25zdCBkZWZzID0gW3sgLi4uQ0JERExQLCB3cml0ZTogd3JpdGVDYmRkbHAsIHQgfSwgeyAuLi5DVEIsIHdyaXRlOiB3cml0ZUN0YiwgdCB9LCB7IC4uLkNUQjMsIHdyaXRlOiB3cml0ZUN0YjMsIHQgfV07CiAgZm9yIChjb25zdCBkIG9mIGRlZnMpICh3aW5kb3cuY2NSZXNpbkZvcm1hdHMgfHw9IFtdKS5wdXNoKGQpOwogIGRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjYy1wcmludC1zbGljZXJzJykpOwogIGFwaS5vbkRlYWN0aXZhdGUoKCkgPT4gewogICAgZm9yIChjb25zdCBkIG9mIGRlZnMpIHsgY29uc3QgYXQgPSB3aW5kb3cuY2NSZXNpbkZvcm1hdHMuaW5kZXhPZihkKTsgaWYgKGF0ID49IDApIHdpbmRvdy5jY1Jlc2luRm9ybWF0cy5zcGxpY2UoYXQsIDEpOyB9CiAgICBkaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2MtcHJpbnQtc2xpY2VycycpKTsKICB9KTsKfQo=","rs-cbddlp.js":"LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgKi8KLyoqCiAqIHJzLWNiZGRscC5qcyDigJQgdGhlIENoaXR1Ym94IC5jYmRkbHAgLyAucGhvdG9uIHJlc2luIGZpbGUgd3JpdGVyIChyb2FkbWFwIFJTTi4qKSwgYW5kIHRoZSBzaGFyZWQgY29udGFpbmVyIHRoYXQgcnMtY3RiLmpzIGJ1aWxkcyBvbi4gQSBTbGljZWQgcGxhdGUgaW4sIHRoZQogKiBieXRlcyBvZiBhIC5jYmRkbHAgb3V0LiBObyBET00sIG5vIGltcG9ydHMgYmV5b25kIGxpYi9wcmludHJlc2luLyouCiAqCiAqIENMRUFOIFJPT00uIFdyaXR0ZW4gZnJvbSBmb3JtYXQgRE9DVU1FTlRBVElPTiBvbmx5IChwcm9zZSArIHRhYmxlcyksIG5ldmVyIGZyb20gc291cmNlIGNvZGUuIE5vIEdQTCAvIEFHUEwgLyBMR1BMIGltcGxlbWVudGF0aW9uIHdhcyBvcGVuZWQsIGZldGNoZWQgb3IKICogcGFyYXBocmFzZWQ7IG5vdGhpbmcgaGVyZSBjb21lcyBmcm9tIG1lbW9yeSBvZiBhbnkgaW1wbGVtZW50YXRpb24uCiAqIFNPVVJDRVM6CiAqICAgMS4gaHR0cHM6Ly9naXRodWIuY29tL2NiaWZmbGUvY2F0aWJvL2Jsb2IvbWFzdGVyL2RvYy9jYmRkbHAtY3RiLmFkb2MgIOKAlCAiQ1RCL0NCRERMUCBmaWxlIGZvcm1hdHMiLCBhIHByb3NlL3RhYmxlIGRvY3VtZW50IGluIGEgQlNELTItQ2xhdXNlIHJlcG9zaXRvcnkKICogICAgICAob25seSB0aGUgLmFkb2MgZG9jdW1lbnQgd2FzIHJlYWQsIG5vIHNvdXJjZSBmaWxlIG9mIHRoYXQgcmVwb3NpdG9yeSkuIEl0IGRvY3VtZW50ZWQ6IGxpdHRsZS1lbmRpYW4gcnVsZSwgdGhlIDB4NzAtYnl0ZSBmaWxlIGhlYWRlciB0YWJsZSwgdGhlIEV4dENvbmZpZwogKiAgICAgIGFuZCBFeHRDb25maWcyIHRhYmxlcywgZmllbGQgbWVhbmluZ3MvdW5pdHMsIEltYWdlSGVhZGVyLCB0aGUgcHJldmlldyBSTEUxNSBlbmNvZGluZywgdGhlIDM2LWJ5dGUgTGF5ZXJIZWFkZXIsIHRoZSBjYmRkbHAgUkxFMSBsYXllciBlbmNvZGluZywgdGhlCiAqICAgICAgbGV2ZWwtc2V0IChwbGFuYXIpIGFudGlhbGlhc2luZyBzY2hlbWUsIGFuZCAoZm9yIHJzLWN0Yi5qcykgUkxFNyBhbmQgdGhlICI4NiIgY2lwaGVyLgogKiAgIE5vdGhpbmcgZWxzZSB3YXMgdXNlZC4gVGhlIGRvY3VtZW50IHNheXMgaXQgd2FzIHRlc3RlZCBvbiBhIENyZWFsaXR5IExELTAwMlIgYW5kIGJ5IHJvdW5kLXRyaXBwaW5nIGZpbGVzIGZvciB0aGUgb2xkZXIgRWxlZ29vIE1hcnMgKGNiZGRscCkuCiAqCiAqIEhPTkVTVFk6IG5vdGhpbmcgd3JpdHRlbiBoZXJlIGhhcyBiZWVuIGxvYWRlZCBvbiBhIHByaW50ZXIuIEl0IGlzIHJlYWQgYmFjayBieSBvdXIgb3duIHJlYWRlciBvbmx5ICh0b29scy9wcmludHJlc2luL2NiZGRscC1yZWFkLm1qcywgd3JpdHRlbiBmcm9tIHRoZQogKiBzYW1lIGRvY3VtZW50KSwgc28gaXQgcHJvdmVzIHRoZSBmaWxlIG1hdGNoZXMgb3VyIHJlYWRpbmcgb2YgdGhlIGRvY3VtZW50LCBub3QgdGhhdCBhbnkgbWFjaGluZSBhY2NlcHRzIGl0LiBXZSBkbyBub3QgY2xhaW0gYW55IHByaW50ZXIgYWNjZXB0cyBpdC4KICoKICogICBDQkRETFAgPSB7IGlkLCBuYW1lLCBleHQsIG1pbWUsIG9wdGlvbnMgfQogKiAgIHdyaXRlQ2JkZGxwKHNsaWNlZCwgbWV0YSkg4oaSIFByb21pc2U8VWludDhBcnJheT4gICAgICAgIHNsaWNlZCAvIG1ldGEgYXMgaW4gcnMtZ29vLmpzIChzZWUgcnMtcmxlLmpzKTsgdGltZXMgcywgZGlzdGFuY2VzIG1tLCBzcGVlZHMgbW0vbWluOiBhbGwgdGhlCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgdGhlIGRvY3VtZW50IHVzZXMsIHNvIG5vdGhpbmcgY29udmVydHMgYnV0IHZvbHVtZSAodGhlIGRvY3VtZW50J3MgcmVzaW5fdm9sdW1lX21sIGlzIG1sIHRvbykKICogICBvcHRpb25zIChtZXRhLm9wdGlvbnMuPGlkPjsgd3JvbmcgdmFsdWUgdGhyb3dzICJjYmRkbHA6IG9wdGlvbiDigKYiOyBtaXNzaW5nIOKGkiBkZWZhdWx0KToKICogICAgIGFhICAgICAgICAgICcxJyB8ICcyJyB8ICczJyB8ICc0JyAgIG51bWJlciBvZiBsZXZlbCBzZXRzIChwbGFuYXIgYW50aWFsaWFzaW5nKTsgZGVmYXVsdCAnNCcuICcxJyA9IGEgcGxhaW4gMS1iaXQgcGljdHVyZSAocGl4ZWwgb24gd2hlbiA+IDEyNykKICogICAgIHByb2plY3Rpb24gICdtaXJyb3JlZCcgfCAnbm9ybWFsJyAgIGhlYWRlciBgcHJvamVjdGlvbmAgZmllbGQ7IGRlZmF1bHQgJ21pcnJvcmVkJyAodGhlIGRvY3VtZW50OiAiTENEIHByaW50ZXJzIGFyZSBtaXJyb3JlZCBmb3IgdGhpcyBwdXJwb3NlIikKICogICAgIHJlc1R5cGUgICAgICdmMzInIHwgJ3UzMicgICAgICAgICAgIGhvdyByZXNvbHV0aW9uLngvLnkgYXJlIHN0b3JlZDsgZGVmYXVsdCAnZjMyJyAoc2VlIFNQRUMtR0FQIGJlbG93KQogKgogKiBTUEVDLUdBUHMgLyBVTlZFUklGSUVEIChlYWNoIGFsc28gbWFya2VkIHdoZXJlIGl0IGhhcHBlbnMpOgogKiAgIC0gU1BFQy1HQVA6IHRoZSBkb2N1bWVudCB0eXBlcyBgcmVzb2x1dGlvbi57eCx5fWAgYXMgZjMyIGFsdGhvdWdoIGV2ZXJ5IG90aGVyIGNvdW50IGlzIGFuIGludGVnZXI7IGl0IG1heSBiZSBhIHR5cG8uIFRoZSBkb2N1bWVudCdzIHRleHQgaXMgZm9sbG93ZWQKICogICAgIChkZWZhdWx0ICdmMzInKTsgdGhlIG9wdGlvbiBleGlzdHMgc28gYSBmaXJzdCByZWFsLXByaW50ZXIgdGVzdCBjYW4gZmxpcCBpdC4KICogICAtIFNQRUMtR0FQOiBgcHJvamVjdGlvbmAgInJlY29yZHMgd2hldGhlciB0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBhc3N1bWluZyIgbWlycm9yZWQvbm9ybWFsIHByb2plY3Rpb247IHRoZSBkb2N1bWVudCBkb2VzIG5vdCBzYXkgd2hldGhlciB0aGUgcGl4ZWwgZGF0YQogKiAgICAgbXVzdCBpdHNlbGYgYmUgZmxpcHBlZCBmb3Igb25lIG9mIHRoZW0uIFRoZSB3cml0ZXIgc2V0cyB0aGUgZmxhZyBvbmx5IGFuZCBuZXZlciB0b3VjaGVzIHRoZSBwaXhlbHMuCiAqICAgLSBTUEVDLUdBUDogc2VjdGlvbiBvcmRlciBpbiB0aGUgZmlsZSBpcyBub3QgZml4ZWQgYnkgdGhlIGRvY3VtZW50OyBvcmRlciB1c2VkOiBoZWFkZXIsIEV4dENvbmZpZywgRXh0Q29uZmlnMiwgbWFjaGluZS10eXBlIHN0cmluZywgSW1hZ2VIZWFkZXJzLAogKiAgICAgcHJldmlldyBkYXRhLCBsYXllciB0YWJsZSwgbGF5ZXIgZGF0YS4KICogICAtIFNQRUMtR0FQOiBgdmVyc2lvbmAgaXMgImFsd2F5cyAyIiAob25seSBldmVyIHNlZW4gdmFsdWUpOyB3cml0dGVuIDIuIGB1bmtub3duIDB4MjAwYCBpbiBFeHRDb25maWcyIGlzIHdyaXR0ZW4gYXMgdGhlIHUzMiAweDIwMC4gYG15c3RlcmlvdXNfaWRgCiAqICAgICB3cml0dGVuIDAgKHRoZSBkb2N1bWVudCBzYXlzIHplcm9pbmcgaGFzIG5vIG9ic2VydmVkIGVmZmVjdCkuIEFsbCBwYWRkaW5nIC8gcmVzZXJ2ZWQgd29yZHMgYXJlIHdyaXR0ZW4gMC4KICogICAtIFNQRUMtR0FQOiB0aGUgUkxFMSBydW4gbGltaXQ6IHRoZSBwcm9wcmlldGFyeSBsaW1pdCBpcyAweDdkICgxMjUpICJyZWFzb24gbm90IGNsZWFyIjsgMTI1IGlzIHVzZWQuIFByZXZpZXcgcnVuIGxpbWl0IDB4ZmZlIGlzIHVzZWQuCiAqICAgLSBTUEVDLUdBUDogZG9lcyBhIGxheWVyIGluIHRoZSBsZXZlbC1zZXQgMS4uTi0xIHVzZSB0aGUgc2FtZSB6L2V4cG9zdXJlIHZhbHVlcyBhcyBpbiBzZXQgMD8gV3JpdHRlbiBpZGVudGljYWwgKHRoZSBkb2N1bWVudCBzYXlzIG5vdGhpbmcgZWxzZSkuCiAqICAgLSBTUEVDLUdBUDogdGhlIHRocmVzaG9sZCBwZXIgbGV2ZWwgc2V0IGlzICJvbmUgd2F5IG9mIGRvaW5nIGl0IiBpbiB0aGUgZG9jdW1lbnQgKE49NDogPjE5MiwgPjEyOCwgPjY0LCA+MCk7IGdlbmVyYWxpc2VkIGFzIGNlaWwoMjU1wrcoTi0xLWspL04pLgogKiAgICAgTj0xIHVzZXMgPjEyNyAodGhlIGRvY3VtZW50IGdpdmVzIG5vIHZhbHVlIGZvciBhIG5vbi1hbnRpYWxpYXNlZCBzbGljZSkuCiAqICAgLSBTUEVDLUdBUDogYHNvZnR3YXJlX3ZlcnNpb25gIOKAlCB0aGUgZG9jdW1lbnQgc3VnZ2VzdHMgaGFyZGNvZGluZyAweDAxMDYwMzAwOyBkb25lLiBXaGV0aGVyIGFueSBwcmludGVyIGNoZWNrcyBpdCBpcyB1bmtub3duLgogKiAgIC0gVU5WRVJJRklFRDogbGF5ZXIgYHpgIGlzIHdyaXR0ZW4gYXMgdGhlIFRPUCBvZiB0aGUgbGF5ZXIsIChpKzEpwrdsYXllckhlaWdodDsgdGhlIGRvY3VtZW50IHNheXMgb25seSAiYnVpbGQgcGxhdGZvcm0gWiBwb3NpdGlvbiBmb3IgdGhpcyBsYXllciIuCiAqICAgICBgb3ZlcmFsbF9oZWlnaHRfbW1gID0gY291bnTCt2xheWVySGVpZ2h0LiBgcHJpbnRlcl9vdXRfbW0uemAgPSBwcmludGVyLm1tWzJdLCBlbHNlIHRoZSBtb2RlbCBoZWlnaHQuCiAqICAgLSBVTlZFUklGSUVEOiB0aGUgcGVyLWxheWVyIGV4cG9zdXJlIG9mIHRoZSBmaXJzdCBgYm90dG9tTGF5ZXJzYCBsYXllcnMgaXMgdGhlIGJvdHRvbSBleHBvc3VyZTsgbGlnaHRfb2ZmIHBlciBsYXllciA9IHJlc2luLmxpZ2h0T2ZmLgogKiAgIC0gVU5WRVJJRklFRDogcmVzaW5fbWFzc19nID0gbWwgw5cgZGVuc2l0eSAoMS4xIHdoZW4gbWlzc2luZyk7IHJlc2luX2Nvc3QgPSBrZyDDlyBwcmljZS1wZXIta2cuCiAqICAgLSBOb3RoaW5nIGluIHRoZSBkb2N1bWVudCBkZXNjcmliZXMgYSBjaGVja3N1bSBmb3IgdGhpcyBmb3JtYXQsIHNvIG5vbmUgZXhpc3RzIHRvIHdyaXRlLgogKi8KZXhwb3J0IGNvbnN0IE1BWF9QWCA9IDMyNzY3OyAgICAgICAvLyBoZWxkIHdlbGwgaW5zaWRlIGJvdGggdGhlIHUzMiBhbmQgdGhlIGV4YWN0bHktcmVwcmVzZW50YWJsZSBmMzIgcmFuZ2UKCmV4cG9ydCBjb25zdCBDQkRETFAgPSB7CiAgaWQ6ICdjYmRkbHAnLCBuYW1lOiAnQ2hpdHVib3ggQ0JERExQICguY2JkZGxwKScsIGV4dDogJ2NiZGRscCcsIG1pbWU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLAogIG9wdGlvbnM6IFsKICAgIHsgaWQ6ICdhYScsIHZhbHVlczogWycxJywgJzInLCAnMycsICc0J10sIGRlZmF1bHQ6ICc0JyB9LAogICAgeyBpZDogJ3Byb2plY3Rpb24nLCB2YWx1ZXM6IFsnbWlycm9yZWQnLCAnbm9ybWFsJ10sIGRlZmF1bHQ6ICdtaXJyb3JlZCcgfSwKICAgIHsgaWQ6ICdyZXNUeXBlJywgdmFsdWVzOiBbJ2YzMicsICd1MzInXSwgZGVmYXVsdDogJ2YzMicgfSwKICBdLAp9OwoKY29uc3QgbnVtID0gKHYsIGQgPSAwKSA9PiAoTnVtYmVyLmlzRmluaXRlKCt2KSA/ICt2IDogZCk7CmNvbnN0IEhFQURFUl9TSVpFID0gMHg3MCwgRVhUX1NJWkUgPSAweDQwLCBFWFQyX1NJWkUgPSAweDUwLCBJTUdIRFJfU0laRSA9IDB4MjAsIExBWUVSSERSX1NJWkUgPSAzNjsKY29uc3QgTEFSR0UgPSBbNDAwLCAzMDBdLCBTTUFMTCA9IFsyMDAsIDEyNV07ICAgICAgICAgICAgIC8vIHByZXZpZXcgc2l6ZXMgImluIGFsbCBmaWxlcyBvYnNlcnZlZCBpbiB0aGUgd2lsZCIKY29uc3QgU09GVFdBUkVfVkVSU0lPTiA9IDB4MDEwNjAzMDA7CgovKiogVmFsaWRhdGVzIG1ldGEub3B0aW9ucyBhZ2FpbnN0IGEgZm9ybWF0J3Mgb3B0aW9uIGxpc3Q7IHJldHVybnMgeyBpZDogdmFsdWUgfSB3aXRoIGRlZmF1bHRzLiBUaHJvd3MgYSBjbGVhciBFcnJvciBuYW1pbmcgdGhlIGZvcm1hdC4gKi8KZXhwb3J0IGZ1bmN0aW9uIHBpY2tPcHRpb25zKGZtdCwgZ2l2ZW4pIHsKICBjb25zdCBvdXQgPSB7fTsKICBmb3IgKGNvbnN0IG8gb2YgZm10Lm9wdGlvbnMpIHsKICAgIGNvbnN0IHYgPSBnaXZlbiAmJiBnaXZlbltvLmlkXSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKGdpdmVuW28uaWRdKSA6IG8uZGVmYXVsdDsKICAgIGlmICghby52YWx1ZXMuaW5jbHVkZXModikpIHRocm93IG5ldyBFcnJvcihgJHtmbXQuaWR9OiBvcHRpb24gJHtvLmlkfSBjYW5ub3QgYmUgJyR7dn0nICh1c2UgJHtvLnZhbHVlcy5qb2luKCcsICcpfSlgKTsKICAgIG91dFtvLmlkXSA9IHY7CiAgfQogIHJldHVybiBvdXQ7Cn0KCi8qKiBTZXF1ZW50aWFsIGxpdHRsZS1lbmRpYW4gd3JpdGVyIGludG8gYSBncm93aW5nIGFycmF5IG9mIGtub3duIGZpbmFsIHNpemUuICovCmV4cG9ydCBjbGFzcyBPdXQgewogIGNvbnN0cnVjdG9yKG4pIHsgdGhpcy5iID0gbmV3IFVpbnQ4QXJyYXkobik7IHRoaXMudiA9IG5ldyBEYXRhVmlldyh0aGlzLmIuYnVmZmVyKTsgdGhpcy5vID0gMDsgfQogIHU4KHgpIHsgdGhpcy5iW3RoaXMubysrXSA9IHggJiAweGZmOyB9CiAgdTE2KHgpIHsgdGhpcy52LnNldFVpbnQxNih0aGlzLm8sIHgsIHRydWUpOyB0aGlzLm8gKz0gMjsgfQogIHUzMih4KSB7IHRoaXMudi5zZXRVaW50MzIodGhpcy5vLCB4ID4+PiAwLCB0cnVlKTsgdGhpcy5vICs9IDQ7IH0KICBmMzIoeCkgeyB0aGlzLnYuc2V0RmxvYXQzMih0aGlzLm8sIHgsIHRydWUpOyB0aGlzLm8gKz0gNDsgfQogIHplcm8obikgeyB0aGlzLm8gKz0gbjsgfQogIGJ5dGVzKGEpIHsgdGhpcy5iLnNldChhLCB0aGlzLm8pOyB0aGlzLm8gKz0gYS5sZW5ndGg7IH0KfQoKLyoqIE9uZSBwcmV2aWV3IHBpY3R1cmUgYXMgMTYtYml0IHdvcmRzOiByZWQgNSB8IGdyZWVuIDUgfCBydW4gZmxhZyB8IGJsdWUgNSwgZml0dGVkIGludG8gc2l6ZSB3IMOXIGgsIGFyZWEtYXZlcmFnZWQsIHJlc2luLWdyZWVuIG9uIGRhcmsuICovCmZ1bmN0aW9uIHByZXZpZXdXb3JkcyhzbGljZWQsIHB3LCBwaCkgewogIGNvbnN0IHsgdywgaCwgY291bnQgfSA9IHNsaWNlZDsKICBjb25zdCBhY2MgPSBuZXcgVWludDhBcnJheSh3ICogaCk7CiAgY29uc3Qgc3RlcCA9IE1hdGgubWF4KDEsIE1hdGguY2VpbChjb3VudCAvIDI0KSk7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSBzdGVwKSB7IGNvbnN0IGcgPSBzbGljZWQubGF5ZXIoaSk7IGZvciAobGV0IGsgPSAwOyBrIDwgYWNjLmxlbmd0aDsgaysrKSBpZiAoZ1trXSA+IGFjY1trXSkgYWNjW2tdID0gZ1trXTsgfQogIGNvbnN0IHMgPSBNYXRoLm1pbihwdyAvIHcsIHBoIC8gaCksIGl3ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZCh3ICogcykpLCBpaCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQoaCAqIHMpKTsKICBjb25zdCB4MCA9IChwdyAtIGl3KSA+PiAxLCB5MCA9IChwaCAtIGloKSA+PiAxOwogIGNvbnN0IGJnID0gWzE2LCAxOCwgMjJdLCBmZyA9IFs5NiwgMjMwLCAxNTBdOwogIGNvbnN0IG91dCA9IG5ldyBVaW50MTZBcnJheShwdyAqIHBoKTsKICBmb3IgKGxldCB5ID0gMDsgeSA8IHBoOyB5KyspIGZvciAobGV0IHggPSAwOyB4IDwgcHc7IHgrKykgewogICAgbGV0IHQgPSAwOwogICAgaWYgKHggPj0geDAgJiYgeCA8IHgwICsgaXcgJiYgeSA+PSB5MCAmJiB5IDwgeTAgKyBpaCkgewogICAgICBjb25zdCBzeDAgPSBNYXRoLmZsb29yKCh4IC0geDApICogdyAvIGl3KSwgc3gxID0gTWF0aC5tYXgoc3gwICsgMSwgTWF0aC5mbG9vcigoeCAtIHgwICsgMSkgKiB3IC8gaXcpKTsKICAgICAgY29uc3Qgc3kwID0gTWF0aC5mbG9vcigoeSAtIHkwKSAqIGggLyBpaCksIHN5MSA9IE1hdGgubWF4KHN5MCArIDEsIE1hdGguZmxvb3IoKHkgLSB5MCArIDEpICogaCAvIGloKSk7CiAgICAgIGxldCBzdW0gPSAwLCBuID0gMDsKICAgICAgZm9yIChsZXQgeXkgPSBzeTA7IHl5IDwgc3kxICYmIHl5IDwgaDsgeXkrKykgZm9yIChsZXQgeHggPSBzeDA7IHh4IDwgc3gxICYmIHh4IDwgdzsgeHgrKykgeyBzdW0gKz0gYWNjW3l5ICogdyArIHh4XTsgbisrOyB9CiAgICAgIHQgPSBuID8gc3VtIC8gbiAvIDI1NSA6IDA7CiAgICB9CiAgICBjb25zdCBjID0gWzAsIDEsIDJdLm1hcCgoaykgPT4gTWF0aC5yb3VuZChiZ1trXSArIChmZ1trXSAtIGJnW2tdKSAqIHQpKTsKICAgIG91dFt5ICogcHcgKyB4XSA9ICgoY1swXSA+PiAzKSA8PCAxMSkgfCAoKGNbMV0gPj4gMykgPDwgNikgfCAoY1syXSA+PiAzKTsgICAgICAgIC8vIGJpdCA1ICh0aGUgcnVuIGZsYWcpIGxlZnQgY2xlYXIKICB9CiAgcmV0dXJuIG91dDsKfQoKLyoqIFJMRTE1IChkb2N1bWVudCk6IGEgcGl4ZWwgd2l0aCBiaXQgNSBzZXQgaXMgZm9sbG93ZWQgYnkgYSB3b3JkIDB4M25ubiwgbm5uID0gY29waWVzIGFmdGVyIHRoZSBmaXJzdDsgcnVucyBtYXkgY3Jvc3Mgcm93cy4gUnVuIGxpbWl0IDB4ZmZlLiAqLwpleHBvcnQgZnVuY3Rpb24gZW5jb2RlUmxlMTUod29yZHMpIHsKICBjb25zdCBvdXQgPSBbXTsKICBsZXQgaSA9IDA7CiAgd2hpbGUgKGkgPCB3b3Jkcy5sZW5ndGgpIHsKICAgIGNvbnN0IHAgPSB3b3Jkc1tpXTsKICAgIGxldCBqID0gaSArIDE7CiAgICB3aGlsZSAoaiA8IHdvcmRzLmxlbmd0aCAmJiB3b3Jkc1tqXSA9PT0gcCAmJiBqIC0gaSAtIDEgPCAweGZmZSkgaisrOwogICAgY29uc3QgZXh0cmEgPSBqIC0gaSAtIDE7CiAgICBpZiAoZXh0cmEgPiAwKSB7IG91dC5wdXNoKHAgfCAweDIwLCAweDMwMDAgfCBleHRyYSk7IH0gZWxzZSBvdXQucHVzaChwKTsKICAgIGkgPSBqOwogIH0KICBjb25zdCBiID0gbmV3IFVpbnQ4QXJyYXkob3V0Lmxlbmd0aCAqIDIpLCB2ID0gbmV3IERhdGFWaWV3KGIuYnVmZmVyKTsKICBvdXQuZm9yRWFjaCgoeCwgaykgPT4gdi5zZXRVaW50MTYoayAqIDIsIHgsIHRydWUpKTsKICByZXR1cm4gYjsKfQoKLyoqIFJMRTEgKGRvY3VtZW50KTogb25lIGJ5dGUgYSBydW4sIGJpdCA3ID0gcGl4ZWwgdmFsdWUsIGJpdHMgNjowID0gcnVuIGxlbmd0aCAoMS4uMTI1IHVzZWQpOyBydW5zIHdyYXAgYWNyb3NzIHJvd3MuICovCmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVSbGUxKGJpdHMpIHsKICBjb25zdCBvdXQgPSBbXTsKICBsZXQgaSA9IDA7CiAgd2hpbGUgKGkgPCBiaXRzLmxlbmd0aCkgewogICAgY29uc3QgdiA9IGJpdHNbaV07CiAgICBsZXQgaiA9IGkgKyAxOwogICAgd2hpbGUgKGogPCBiaXRzLmxlbmd0aCAmJiBiaXRzW2pdID09PSB2KSBqKys7CiAgICBmb3IgKGxldCBydW4gPSBqIC0gaTsgcnVuID4gMDspIHsgY29uc3QgbiA9IE1hdGgubWluKHJ1biwgMTI1KTsgcnVuIC09IG47IG91dC5wdXNoKCh2ID8gMHg4MCA6IDApIHwgbik7IH0KICAgIGkgPSBqOwogIH0KICByZXR1cm4gVWludDhBcnJheS5mcm9tKG91dCk7Cn0KCi8qKgogKiBMYXlzIG91dCBhbmQgd3JpdGVzIHRoZSBjb250YWluZXIgc2hhcmVkIGJ5IC5jYmRkbHAgYW5kIC5jdGIgKHRoZSBoZWFkZXIsIEV4dENvbmZpZywgRXh0Q29uZmlnMiwgcHJldmlld3MsIGxheWVyIHRhYmxlIGFyZSB0aGUgc2FtZSBpbiBib3RoIHBlciB0aGUgZG9jdW1lbnQpLgogKiAgIGM6IHsgbWFnaWMsIGVuY3J5cHRpb25Nb2RlLCBrZXksIGxldmVsU2V0cywgYWFMZXZlbCwgcHJvamVjdGlvbiAoJ21pcnJvcmVkJ3wnbm9ybWFsJyksIHJlc1R5cGUgKCdmMzInfCd1MzInKSwgYmxvYnM6IFVpbnQ4QXJyYXlbY291bnQgw5cgbGV2ZWxTZXRzXSAoc2V0LW1ham9yKSB9CiAqLwpleHBvcnQgZnVuY3Rpb24gYXNzZW1ibGVDaGl0dShzbGljZWQsIG1ldGEsIGMpIHsKICBjb25zdCB7IHcsIGgsIGNvdW50IH0gPSBzbGljZWQ7CiAgY29uc3QgcHIgPSBtZXRhLnByaW50ZXIgfHwge30sIHJzID0gbWV0YS5yZXNpbiB8fCB7fTsKICBjb25zdCBsYXllckggPSBudW0obWV0YS5sYXllckhlaWdodCwgc2xpY2VkLmxheWVySGVpZ2h0KTsKICBjb25zdCBib3R0b21OID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oY291bnQsIE1hdGgucm91bmQobnVtKHJzLmJvdHRvbUxheWVycykpKSk7CiAgY29uc3QgZXhwbyA9IG51bShycy5leHBvc3VyZSksIGJFeHBvID0gbnVtKHJzLmJvdHRvbUV4cG9zdXJlLCBleHBvKSwgb2ZmID0gbnVtKHJzLmxpZ2h0T2ZmKTsKICBjb25zdCBsaWZ0ID0gbnVtKHJzLmxpZnRIZWlnaHQpLCBsaWZ0ViA9IG51bShycy5saWZ0U3BlZWQpLCByZXRWID0gbnVtKHJzLnJldHJhY3RTcGVlZCk7CiAgY29uc3QgcHdtID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMjU1LCBNYXRoLnJvdW5kKG51bShycy5wd20sIDI1NSkpKSk7CiAgY29uc3QgbW0gPSBzbGljZWQubW0gfHwgcHIubW0gfHwgWzAsIDBdOwogIGNvbnN0IHBsYXRaID0gbnVtKHByLm1tICYmIHByLm1tWzJdLCBjb3VudCAqIGxheWVySCk7CiAgY29uc3QgZ3JhbXMgPSBudW0obWV0YS52b2x1bWVNbCkgKiBudW0ocnMuZGVuc2l0eSwgMS4xKTsKICBjb25zdCBjb3N0ID0gZ3JhbXMgLyAxMDAwICogbnVtKHJzLnByaWNlKTsKICBjb25zdCBtYWNoaW5lID0gU3RyaW5nKHByLnR5cGUgfHwgcHIubmFtZSB8fCBwci5pZCB8fCAnQ2FkQ3JhZnQnKS5yZXBsYWNlKC9bXlx4MjAtXHg3ZV0vZywgJz8nKS5zbGljZSgwLCA2NCk7ICAgLy8gNy1iaXQgQVNDSUksIG5vdCBudWwtdGVybWluYXRlZAoKICBjb25zdCBsYXJnZSA9IGVuY29kZVJsZTE1KHByZXZpZXdXb3JkcyhzbGljZWQsIExBUkdFWzBdLCBMQVJHRVsxXSkpOwogIGNvbnN0IHNtYWxsID0gZW5jb2RlUmxlMTUocHJldmlld1dvcmRzKHNsaWNlZCwgU01BTExbMF0sIFNNQUxMWzFdKSk7CiAgY29uc3QgdGFibGVOID0gY291bnQgKiBjLmxldmVsU2V0czsKCiAgY29uc3QgZXh0QXQgPSBIRUFERVJfU0laRSwgZXh0MkF0ID0gZXh0QXQgKyBFWFRfU0laRSwgbWFjaGluZUF0ID0gZXh0MkF0ICsgRVhUMl9TSVpFOwogIGNvbnN0IGxhcmdlSGRyQXQgPSBtYWNoaW5lQXQgKyBtYWNoaW5lLmxlbmd0aCwgc21hbGxIZHJBdCA9IGxhcmdlSGRyQXQgKyBJTUdIRFJfU0laRTsKICBjb25zdCBsYXJnZUF0ID0gc21hbGxIZHJBdCArIElNR0hEUl9TSVpFLCBzbWFsbEF0ID0gbGFyZ2VBdCArIGxhcmdlLmxlbmd0aDsKICBjb25zdCB0YWJsZUF0ID0gc21hbGxBdCArIHNtYWxsLmxlbmd0aCwgZGF0YUF0ID0gdGFibGVBdCArIHRhYmxlTiAqIExBWUVSSERSX1NJWkU7CiAgY29uc3QgZGF0YUxlbiA9IGMuYmxvYnMucmVkdWNlKChzLCBiKSA9PiBzICsgYi5sZW5ndGgsIDApOwogIGNvbnN0IG8gPSBuZXcgT3V0KGRhdGFBdCArIGRhdGFMZW4pOwoKICAvLyAtLS0tIGZpbGUgaGVhZGVyICgweDcwKSAtLS0tCiAgby51MzIoYy5tYWdpYyk7IG8udTMyKDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU1BFQy1HQVA6IHZlcnNpb24gYWx3YXlzIDIKICBvLmYzMihudW0ocHIubW0gJiYgcHIubW1bMF0sIG51bShtbVswXSkpKTsgby5mMzIobnVtKHByLm1tICYmIHByLm1tWzFdLCBudW0obW1bMV0pKSk7ICAgLy8gcHJpbnRlcl9vdXRfbW0ueCwgLnkKICBvLmYzMihwbGF0Wik7IG8uemVybyg4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmludGVyX291dF9tbS56LCB0aGVuIHR3byB6ZXJvIHdvcmRzCiAgby5mMzIoY291bnQgKiBsYXllckgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3ZlcmFsbF9oZWlnaHRfbW0KICBvLmYzMihsYXllckgpOyBvLmYzMihleHBvKTsgby5mMzIoYkV4cG8pOyBvLmYzMihvZmYpOwogIG8udTMyKGJvdHRvbU4pOwogIGlmIChjLnJlc1R5cGUgPT09ICd1MzInKSB7IG8udTMyKHcpOyBvLnUzMihoKTsgfSBlbHNlIHsgby5mMzIodyk7IG8uZjMyKGgpOyB9ICAgLy8gU1BFQy1HQVA6IGRvY3VtZW50IHNheXMgZjMyCiAgby51MzIobGFyZ2VIZHJBdCk7CiAgby51MzIodGFibGVBdCk7IG8udTMyKGNvdW50KTsgby51MzIoc21hbGxIZHJBdCk7IG8udTMyKE1hdGgucm91bmQobnVtKG1ldGEuc2Vjb25kcykpKTsKICBvLnUzMihjLnByb2plY3Rpb24gPT09ICdtaXJyb3JlZCcgPyAxIDogMCk7CiAgby51MzIoZXh0QXQpOyBvLnUzMihFWFRfU0laRSk7IG8udTMyKGMubGV2ZWxTZXRzKTsKICBvLnUxNihwd20pOyBvLnUxNihwd20pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwd21fbGV2ZWwsIGJvdF9wd21fbGV2ZWwgKDB4ZmYgPSBmdWxseSBvbjsgdGhlIHByb2ZpbGUgaGFzIG5vIHBvd2VyIOKGkiBmdWxsKQogIG8udTMyKGMua2V5KTsgby51MzIoZXh0MkF0KTsgby51MzIoRVhUMl9TSVpFKTsKICAvLyAtLS0tIEV4dENvbmZpZyAoMHg0MCkgLS0tLQogIG8uZjMyKGxpZnQpOyBvLmYzMihsaWZ0Vik7IG8uZjMyKGxpZnQpOyBvLmYzMihsaWZ0Vik7ICAgICAgICAgICAgIC8vIGJvdF9saWZ0X2Rpc3QsIGJvdF9saWZ0X3NwZWVkLCBsaWZ0X2Rpc3QsIGxpZnRfc3BlZWQgKHRoZSBwcm9maWxlIGhhcyBvbmUgbGlmdCBmb3IgYWxsIGxheWVycykKICBvLmYzMihyZXRWKTsgby5mMzIobnVtKG1ldGEudm9sdW1lTWwpKTsgby5mMzIoZ3JhbXMpOyBvLmYzMihjb3N0KTsKICBvLmYzMihvZmYpOyBvLmYzMihvZmYpOyBvLnUzMihib3R0b21OKTsgby56ZXJvKDQgKyAxNik7ICAgICAgICAgICAvLyBib3RfbGlnaHRfb2ZmLCBsaWdodF9vZmYsIGJvdF9sYXllcl9jb3VudCwgcGFkZGluZwogIC8vIC0tLS0gRXh0Q29uZmlnMiAoMHg1MCkgLS0tLQogIG8uemVybygyOCk7IG8udTMyKG1hY2hpbmVBdCk7CiAgby51MzIobWFjaGluZS5sZW5ndGgpOyBvLnUzMihjLmVuY3J5cHRpb25Nb2RlKTsgby51MzIoMCk7IG8udTMyKGMuYWFMZXZlbCk7CiAgby51MzIoU09GVFdBUkVfVkVSU0lPTik7IG8udTMyKDB4MjAwKTsgby56ZXJvKDggKyAxNik7CiAgLy8gLS0tLSBtYWNoaW5lIHR5cGUgc3RyaW5nLCBJbWFnZUhlYWRlcnMsIHByZXZpZXdzIC0tLS0KICBmb3IgKGxldCBpID0gMDsgaSA8IG1hY2hpbmUubGVuZ3RoOyBpKyspIG8udTgobWFjaGluZS5jaGFyQ29kZUF0KGkpKTsKICBvLnUzMihMQVJHRVswXSk7IG8udTMyKExBUkdFWzFdKTsgby51MzIobGFyZ2VBdCk7IG8udTMyKGxhcmdlLmxlbmd0aCk7IG8uemVybygxNik7CiAgby51MzIoU01BTExbMF0pOyBvLnUzMihTTUFMTFsxXSk7IG8udTMyKHNtYWxsQXQpOyBvLnUzMihzbWFsbC5sZW5ndGgpOyBvLnplcm8oMTYpOwogIG8uYnl0ZXMobGFyZ2UpOyBvLmJ5dGVzKHNtYWxsKTsKICAvLyAtLS0tIGxheWVyIHRhYmxlLCBsYXllciBkYXRhIC0tLS0KICBsZXQgYXQgPSBkYXRhQXQ7CiAgZm9yIChsZXQgdCA9IDA7IHQgPCB0YWJsZU47IHQrKykgewogICAgY29uc3QgaSA9IHQgJSBjb3VudDsKICAgIG8uZjMyKE1hdGguZnJvdW5kKChpICsgMSkgKiBsYXllckgpKTsgby5mMzIoaSA8IGJvdHRvbU4gPyBiRXhwbyA6IGV4cG8pOyBvLmYzMihvZmYpOwogICAgby51MzIoYXQpOyBvLnUzMihjLmJsb2JzW3RdLmxlbmd0aCk7IG8uemVybygxNik7CiAgICBhdCArPSBjLmJsb2JzW3RdLmxlbmd0aDsKICB9CiAgZm9yIChjb25zdCBiIG9mIGMuYmxvYnMpIG8uYnl0ZXMoYik7CiAgaWYgKG8ubyAhPT0gby5iLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdjYmRkbHA6IGludGVybmFsIHNpemUgbWlzbWF0Y2gnKTsKICByZXR1cm4gby5iOwp9CgpleHBvcnQgZnVuY3Rpb24gY2hlY2tTbGljZWQoc2xpY2VkLCB0YWcpIHsKICBjb25zdCB7IHcsIGgsIGNvdW50IH0gPSBzbGljZWQ7CiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHcpIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKGgpIHx8IHcgPCAxIHx8IGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoYCR7dGFnfTogdGhlIGxheWVyIHNpemUgbXVzdCBiZSB3aG9sZSBwaXhlbHNgKTsKICBpZiAodyA+IE1BWF9QWCB8fCBoID4gTUFYX1BYKSB0aHJvdyBuZXcgRXJyb3IoYCR7dGFnfTogJHt3fSDDlyAke2h9IHB4IGlzIHRvbyBsYXJnZTsgdGhlIGZvcm1hdCBob2xkcyBhdCBtb3N0ICR7TUFYX1BYfSBweCBvbiBlYWNoIHNpZGVgKTsKICBpZiAoIU51bWJlci5pc0ludGVnZXIoY291bnQpIHx8IGNvdW50IDwgMSkgdGhyb3cgbmV3IEVycm9yKGAke3RhZ306IHRoZXJlIGFyZSBubyBsYXllcnMgdG8gd3JpdGVgKTsKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQ2JkZGxwKHNsaWNlZCwgbWV0YSA9IHt9KSB7CiAgY2hlY2tTbGljZWQoc2xpY2VkLCAnY2JkZGxwJyk7CiAgY29uc3Qgb3B0ID0gcGlja09wdGlvbnMoQ0JERExQLCBtZXRhLm9wdGlvbnMpOwogIGNvbnN0IHsgdywgaCwgY291bnQgfSA9IHNsaWNlZDsKICBjb25zdCBOID0gK29wdC5hYTsKICBjb25zdCB0aHIgPSAoaykgPT4gKE4gPT09IDEgPyAxMjcgOiBNYXRoLmNlaWwoMjU1ICogKE4gLSAxIC0gaykgLyBOKSk7ICAgICAgLy8gcGl4ZWwgaXMgb24gd2hlbiB2YWx1ZSA+IHRocihrKQogIGNvbnN0IGJsb2JzID0gW107CiAgZm9yIChsZXQgayA9IDA7IGsgPCBOOyBrKyspIHsKICAgIGNvbnN0IHQgPSB0aHIoayk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgY29uc3QgZyA9IHNsaWNlZC5sYXllcihpKTsKICAgICAgaWYgKCFnIHx8IGcubGVuZ3RoICE9PSB3ICogaCkgdGhyb3cgbmV3IEVycm9yKGBjYmRkbHA6IGxheWVyICR7aX0gaXMgbm90ICR7d30gw5cgJHtofWApOwogICAgICBjb25zdCBiaXRzID0gbmV3IFVpbnQ4QXJyYXkodyAqIGgpOwogICAgICBmb3IgKGxldCBwID0gMDsgcCA8IGJpdHMubGVuZ3RoOyBwKyspIGJpdHNbcF0gPSBnW3BdID4gdCA/IDEgOiAwOwogICAgICBibG9icy5wdXNoKGVuY29kZVJsZTEoYml0cykpOwogICAgICBpZiAobWV0YS5vblByb2dyZXNzICYmIChibG9icy5sZW5ndGggJiAzMSkgPT09IDMxKSB7IG1ldGEub25Qcm9ncmVzcyhibG9icy5sZW5ndGggLyAoTiAqIGNvdW50KSk7IGF3YWl0IFByb21pc2UucmVzb2x2ZSgpOyB9CiAgICB9CiAgfQogIHJldHVybiBhc3NlbWJsZUNoaXR1KHNsaWNlZCwgbWV0YSwgewogICAgbWFnaWM6IDB4MTJmZDAwMTksIGVuY3J5cHRpb25Nb2RlOiAwLCBrZXk6IDAsIGxldmVsU2V0czogTiwgYWFMZXZlbDogTiwgICAgICAvLyBkb2N1bWVudDogYW50aWFsaWFzX2xldmVsICJ3aWxsIG1hdGNoIHRoZSBsZXZlbF9zZXRfY291bnQiIGZvciBjYmRkbHAKICAgIHByb2plY3Rpb246IG9wdC5wcm9qZWN0aW9uLCByZXNUeXBlOiBvcHQucmVzVHlwZSwgYmxvYnMsCiAgfSk7Cn0K","rs-ctb.js":"LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgKi8KLyoqCiAqIHJzLWN0Yi5qcyDigJQgdGhlIENoaXR1Ym94IC5jdGIgd3JpdGVyLCBPTkxZIHRoZSBsYXlvdXQgdGhlIG9uZSBwdWJsaXNoZWQgZG9jdW1lbnQgZGVzY3JpYmVzICh0aGUgb2xkZXIgInZlcnNpb24gMiIgZmlsZSB3aXRoIG1hZ2ljIDB4MTJmZDAwODYpLiBObyBET00uCiAqIFRoZSBjb250YWluZXIgKGhlYWRlciwgRXh0Q29uZmlnLCBFeHRDb25maWcyLCBwcmV2aWV3cywgbGF5ZXIgdGFibGUpIGlzIHNoYXJlZCB3aXRoIHJzLWNiZGRscC5qcyAoYXNzZW1ibGVDaGl0dSk7IHRoaXMgZmlsZSBhZGRzIHRoZSBsYXllciBlbmNvZGluZy4KICoKICogQ0xFQU4gUk9PTS4gV3JpdHRlbiBmcm9tIGZvcm1hdCBET0NVTUVOVEFUSU9OIG9ubHksIG5ldmVyIGZyb20gc291cmNlIGNvZGU7IG5vIEdQTCAvIEFHUEwgLyBMR1BMIGltcGxlbWVudGF0aW9uIHdhcyBvcGVuZWQgb3IgcGFyYXBocmFzZWQuCiAqIFNPVVJDRVM6CiAqICAgMS4gaHR0cHM6Ly9naXRodWIuY29tL2NiaWZmbGUvY2F0aWJvL2Jsb2IvbWFzdGVyL2RvYy9jYmRkbHAtY3RiLmFkb2Mg4oCUIHByb3NlL3RhYmxlIGRvY3VtZW50IGluIGEgQlNELTItQ2xhdXNlIHJlcG9zaXRvcnkgKG9ubHkgdGhlIC5hZG9jIHdhcyByZWFkKS4KICogICAgICBJdCBkb2N1bWVudGVkOiB0aGUgY3RiIG1hZ2ljIDB4MTJmZDAwODYsIHRoZSBzaGFyZWQgaGVhZGVyIHRhYmxlcywgNy1iaXQgcGl4ZWxzLCB0aGUgUkxFNyBydW4gZW5jb2RpbmcgKHZhbHVlIGluIGJpdHMgNjowLCBydW4gZmxhZyBiaXQgNywgYSAx4oCTNCBieXRlCiAqICAgICAgYmlnLWVuZGlhbiBydW4gbGVuZ3RoIG1hcmtlZCBieSB0aGUgdG9wIGJpdHMgb2YgaXRzIGZpcnN0IGJ5dGUpLCAiZW5jcnlwdGlvbiBpcyBkaXNhYmxlZCBpZiBlbmNyeXB0aW9uX2tleSBpcyAwIiwgYW5kIHRoZSAiODYiIGNpcGhlciBnaXZlbiBpbiB0aGUKICogICAgICBkb2N1bWVudCBhcyB0d28gZm9ybXVsYXMgaW4gcHJvc2UgKGtleXN0cmVhbSBYWzBdLCBYW24rMV0sIGFuZCBDW25dID0gUFtuXSB4b3IgWFtuXSwga2V5IGFuZCBsYXllciBpbmRleCBhcyBJVikuCiAqCiAqIFdIQVQgSVMgTk9UIEJVSUxULCBBTkQgV0hZOiB0aGUgZG9jdW1lbnQgZGVzY3JpYmVzIE9ORSBjdGIgbGF5b3V0IChoZWFkZXIgInZlcnNpb24iIGFsd2F5cyAyKS4gTGF0ZXIgQ1RCIHZlcnNpb25zICgzLCA0LCA1IGFuZCB0aGUgcHJpbnRlcnMgdGhhdCBuZWVkCiAqIHRoZW0sIHBlciBvdGhlciBzaXRlcycgcmVtYXJrcykgYXJlIG5vdCBkZXNjcmliZWQgYnkgYW55IHByb3NlIGRvY3VtZW50IGZvdW5kOyB0aGUgb25seSBkZXNjcmlwdGlvbnMgYXJlIHNvdXJjZSBjb2RlLCB3aGljaCBpcyBvZmYgbGltaXRzLiBTbyBub3RoaW5nIGZvcgogKiB0aGVtIGlzIHdyaXR0ZW4gYW5kIG5vIGZpZWxkIGlzIGludmVudGVkLiBTUEVDLUdBUDogd2hldGhlciBhIGdpdmVuIHByaW50ZXIgKGluY2x1ZGluZyB0aG9zZSBuYW1lZCBiZWxvdykgYWNjZXB0cyB2ZXJzaW9uIDIgLyB1bmVuY3J5cHRlZCBmaWxlcyBpcyBub3QKICogc3RhdGVkIGJ5IHRoZSBkb2N1bWVudCBiZXlvbmQgInRlc3RlZCBpbiBwcmFjdGljZSB3aXRoIHRoZSBDcmVhbGl0eSBMRC0wMDJSIi4KICoKICogSE9ORVNUWTogbm90aGluZyB3cml0dGVuIGhlcmUgaGFzIGJlZW4gbG9hZGVkIG9uIGEgcHJpbnRlci4gSXQgaXMgcmVhZCBiYWNrIGJ5IG91ciBvd24gcmVhZGVyIG9ubHkgKHRvb2xzL3ByaW50cmVzaW4vY3RiLXJlYWQubWpzLCBmcm9tIHRoZSBzYW1lIGRvY3VtZW50KS4KICogV2UgZG8gbm90IGNsYWltIGFueSBwcmludGVyIGFjY2VwdHMgaXQuCiAqCiAqICAgQ1RCID0geyBpZCwgbmFtZSwgZXh0LCBtaW1lLCBvcHRpb25zIH0KICogICB3cml0ZUN0YihzbGljZWQsIG1ldGEpIOKGkiBQcm9taXNlPFVpbnQ4QXJyYXk+ICAgICAgc2xpY2VkIC8gbWV0YSBhcyBpbiBycy1nb28uanM7IHVuaXRzIGFzIHJzLWNiZGRscC5qcwogKiAgIG9wdGlvbnMgKG1ldGEub3B0aW9ucy48aWQ+OyB3cm9uZyB2YWx1ZSB0aHJvd3MgImN0Yjogb3B0aW9uIOKApiI7IG1pc3Npbmcg4oaSIGRlZmF1bHQpOgogKiAgICAgY2lwaGVyQ29uc3RhbnQgJ2Q4YTgzNDIzJyB8ICdkOGE4MzQyNCcgICBkZWZhdWx0ICdkOGE4MzQyMyc6IHRoZSBjaXBoZXIncyBhZGRpdGl2ZSBjb25zdGFudCAodGhlIGRvY3VtZW50IHNheXMg4oCmMjQsIHR3byB3b3JraW5nIGltcGxlbWVudGF0aW9ucyB1c2Ug4oCmMjM7IG9ubHkgbWF0dGVycyB3aXRoIGVuY3J5cHRpb24gb24pCiAqICAgICBlbmNyeXB0aW9uICAnb2ZmJyB8ICdvbicgICAgICAgICAgICBkZWZhdWx0ICdvZmYnOiBlbmNyeXB0aW9uX2tleSAwLCB3aGljaCB0aGUgZG9jdW1lbnQgc2F5cyB0aGUgcHJvcHJpZXRhcnkgc29mdHdhcmUgYWNjZXB0cyBhcyAibm8gZW5jcnlwdGlvbiIuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb24nIGFwcGxpZXMgdGhlIGRvY3VtZW50J3MgIjg2IiBjaXBoZXIgd2l0aCBhIG5vbi16ZXJvIGtleSB3cml0dGVuIGluIHRoZSBoZWFkZXIuIEl0IGlzIG9iZnVzY2F0aW9uIHBlciB0aGUKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50OyBvZmZlcmVkIG9ubHkgYmVjYXVzZSBhIGRvY3VtZW50IGRlc2NyaWJlcyBpdCBmdWxseS4KICogICAgIHByb2plY3Rpb24gICdtaXJyb3JlZCcgfCAnbm9ybWFsJyAgIGRlZmF1bHQgJ21pcnJvcmVkJwogKiAgICAgcmVzVHlwZSAgICAgJ2YzMicgfCAndTMyJyAgICAgICAgICAgZGVmYXVsdCAnZjMyJyAodGhlIGRvY3VtZW50IHR5cGVzIHRoZSByZXNvbHV0aW9uIGFzIGYzMjsgbWF5IGJlIGEgdHlwbyDigJQgc2VlIHJzLWNiZGRscC5qcyBTUEVDLUdBUCkKICoKICogU1BFQy1HQVBzIC8gVU5WRVJJRklFRCBiZXlvbmQgdGhvc2UgaW4gcnMtY2JkZGxwLmpzOgogKiAgIC0gU1BFQy1HQVA6IHRoZSBkb2N1bWVudCBkb2VzIG5vdCBnaXZlIHRoZSBieXRlIG9yZGVyIGluc2lkZSBhIDMyLWJpdCBjaXBoZXIgd29yZDsgbGl0dGxlLWVuZGlhbiAodGhlIGZpbGUncyBnZW5lcmFsIHJ1bGUpIGlzIHVzZWQuCiAqICAgLSBTUEVDLUdBUDogaG93IGEgbGF5ZXIncyBkYXRhX2xlbiByZWxhdGVzIHRvIGNpcGhlciBwYWRkaW5nOiB0aGUgZG9jdW1lbnQgc2F5cyBwYWQsIHByb2Nlc3MsIHRydW5jYXRlLCBzbyBkYXRhX2xlbiBpcyB0aGUgdW5wYWRkZWQgbGVuZ3RoLgogKiAgIC0gU1BFQy1HQVA6IHRoZSBncmV5IDAuLjI1NSDihpIgMC4uMTI3IG1hcHBpbmcgaXMgbm90IGdpdmVuOyByb3VuZCh2wrcxMjcvMjU1KS4gQSBwaXhlbCB0aGF0IGlzIG5vbnplcm8gYnV0IHJvdW5kcyB0byAwIGlzIGtlcHQgYXQgMS4KICogICAtIFNQRUMtR0FQOiBhIHJ1biBvZiBsZW5ndGggMSBpcyB3cml0dGVuIGFzIGEgc2luZ2xlIHBpeGVsIChmbGFnIGNsZWFyKS4gV2hldGhlciBhIHJ1biBvZiAyKyBtdXN0IHVzZSB0aGUgcnVuIGZvcm0gaXMgaW1wbGllZCwgbm90IHN0YXRlZC4KICogICAtIFNQRUMtR0FQOiBgZW5jcnlwdGlvbl9tb2RlYCB3cml0dGVuIDB4RiAoZG9jdW1lbnQ6ICIweEYgZm9yIGN0YiBmaWxlcyIpIGluIGJvdGggbW9kZXM7IGBhbnRpYWxpYXNfbGV2ZWxgIGlzICJlc3NlbnRpYWxseSBhcmJpdHJhcnkiIGZvciBjdGI6IDEuCiAqICAgLSBVTlZFUklGSUVEOiB0aGUgZW5jcnlwdGlvbiBrZXkgY2hvc2VuIGZvciAnb24nIGlzIGEgaGFzaCBvZiBuYW1lL2NvdW50L3NlY29uZHMgKG5ldmVyIDApOyB0aGUgZG9jdW1lbnQgc2F5cyBvbmx5IHRoYXQgcHJvcHJpZXRhcnkgZmlsZXMgdXNlIGEgcmFuZG9tIG9uZS4KICogICAtIE5vdGhpbmcgaW4gdGhlIGRvY3VtZW50IGRlc2NyaWJlcyBhIGNoZWNrc3VtIGZvciB0aGlzIGZvcm1hdCwgc28gbm9uZSBleGlzdHMgdG8gd3JpdGUuCiAqCiAqIFBSSU5URVJTIChxdW90ZWQgZnJvbSB0aGUgZG9jdW1lbnQpOiAiVGhpcyBpbmZvcm1hdGlvbiBoYXMgYmVlbiB0ZXN0ZWQgaW4gcHJhY3RpY2Ugd2l0aCB0aGUgQ3JlYWxpdHkgTEQtMDAyUiwgYW5kIGJ5IHJvdW5kLXRyaXBwaW5nIGZpbGVzIGludGVuZGVkIGZvciB0aGUKICogb2xkZXIgRWxlZ29vIE1hcnMgKGBjYmRkbHBgKS4iIFRoYXQgaXMgYWxsIHRoZSBkb2N1bWVudCBzYXlzOyBpdCBuYW1lcyBubyBwcmludGVyIGZvciBhIGN0YiB3cml0dGVuIGJ5IGFueW9uZSBidXQgdGhlIHByb3ByaWV0YXJ5IHNsaWNlciBvdGhlciB0aGFuIHRoZSBMRC0wMDJSLgogKi8KaW1wb3J0IHsgYXNzZW1ibGVDaGl0dSwgY2hlY2tTbGljZWQsIHBpY2tPcHRpb25zIH0gZnJvbSAnLi9ycy1jYmRkbHAuanMnOwoKZXhwb3J0IHsgTUFYX1BYIH0gZnJvbSAnLi9ycy1jYmRkbHAuanMnOwoKZXhwb3J0IGNvbnN0IENUQiA9IHsKICBpZDogJ2N0YicsIG5hbWU6ICdDaGl0dWJveCBDVEIgKC5jdGIpJywgZXh0OiAnY3RiJywgbWltZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsCiAgb3B0aW9uczogWwogICAgeyBpZDogJ2VuY3J5cHRpb24nLCB2YWx1ZXM6IFsnb2ZmJywgJ29uJ10sIGRlZmF1bHQ6ICdvZmYnIH0sCiAgICB7IGlkOiAnY2lwaGVyQ29uc3RhbnQnLCB2YWx1ZXM6IFsnZDhhODM0MjMnLCAnZDhhODM0MjQnXSwgZGVmYXVsdDogJ2Q4YTgzNDIzJyB9LAogICAgeyBpZDogJ3Byb2plY3Rpb24nLCB2YWx1ZXM6IFsnbWlycm9yZWQnLCAnbm9ybWFsJ10sIGRlZmF1bHQ6ICdtaXJyb3JlZCcgfSwKICAgIHsgaWQ6ICdyZXNUeXBlJywgdmFsdWVzOiBbJ2YzMicsICd1MzInXSwgZGVmYXVsdDogJ2YzMicgfSwKICBdLAp9OwoKLyoqIFJMRTcgKGRvY3VtZW50KTogYnl0ZSAwID0gW3J1biBmbGFnOjFdW3ZhbHVlOjddOyBhIHJ1biBpcyBmb2xsb3dlZCBieSBpdHMgbGVuZ3RoIGluIDHigJM0IGJ5dGVzLCBiaWcgZW5kaWFuLCB0aGUgd2lkdGggbWFya2VkIGJ5IHRoZSB0b3AgYml0cyBvZiB0aGUgZmlyc3QuICovCmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVSbGU3KHB4NykgewogIGNvbnN0IG91dCA9IFtdOwogIGxldCBpID0gMDsKICB3aGlsZSAoaSA8IHB4Ny5sZW5ndGgpIHsKICAgIGNvbnN0IHYgPSBweDdbaV07CiAgICBsZXQgaiA9IGkgKyAxOwogICAgd2hpbGUgKGogPCBweDcubGVuZ3RoICYmIHB4N1tqXSA9PT0gdikgaisrOwogICAgY29uc3QgcnVuID0gaiAtIGk7CiAgICBpZiAocnVuID09PSAxKSBvdXQucHVzaCh2KTsKICAgIGVsc2UgewogICAgICBvdXQucHVzaCgweDgwIHwgdik7CiAgICAgIGlmIChydW4gPCAweDgwKSBvdXQucHVzaChydW4pOwogICAgICBlbHNlIGlmIChydW4gPCAweDQwMDApIG91dC5wdXNoKDB4ODAgfCAocnVuID4+PiA4KSwgcnVuICYgMHhmZik7CiAgICAgIGVsc2UgaWYgKHJ1biA8IDB4MjAwMDAwKSBvdXQucHVzaCgweGMwIHwgKHJ1biA+Pj4gMTYpLCAocnVuID4+PiA4KSAmIDB4ZmYsIHJ1biAmIDB4ZmYpOwogICAgICBlbHNlIGlmIChydW4gPCAweDEwMDAwMDAwKSBvdXQucHVzaCgweGUwIHwgKHJ1biA+Pj4gMjQpLCAocnVuID4+PiAxNikgJiAweGZmLCAocnVuID4+PiA4KSAmIDB4ZmYsIHJ1biAmIDB4ZmYpOwogICAgICBlbHNlIHRocm93IG5ldyBFcnJvcignY3RiOiBhIHJ1biBsb25nZXIgdGhhbiAyOCBiaXRzJyk7CiAgICB9CiAgICBpID0gajsKICB9CiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShvdXQpOwp9CgovKioKICogVGhlIGRvY3VtZW50J3MgIjg2IiBjaXBoZXIuIGMgPSBrZXnCtzB4MkQ4M0NEQUMgKyAweEQ4QTgzNDI0OyBYWzBdID0gKGl2wrcweDFFMTUzMENEICsgMHhFQzNENDdDRCnCt2M7IFhbbisxXSA9IFhbbl0gKyBjIChhbGwgbW9kIDJeMzIpOwogKiBvdXRwdXQgd29yZCA9IGlucHV0IHdvcmQgeG9yIFhbbl0uIERhdGEgaXMgcGFkZGVkIHRvIHdob2xlIHdvcmRzIGFuZCB0cnVuY2F0ZWQgYmFjazsgZW5jcnlwdGluZyB0d2ljZSBnaXZlcyB0aGUgcGxhaW50ZXh0LgogKi8KLy8gU1BFQy1HQVA6IHRoZSBmb3JtYXQgZG9jdW1lbnQgZ2l2ZXMgdGhlIGFkZGl0aXZlIGNvbnN0YW50IGFzIDB4RDhBODM0MjQsIGJ1dCB0d28gaW5kZXBlbmRlbnQgd29ya2luZyBpbXBsZW1lbnRhdGlvbnMgKGZvdW5kIGJ5IHRoZSBDVEIgMyB0byA1IHNwZWMgd29yaywKLy8gZG9jcy9yZXNpbi1mb3JtYXRzL2N0Yi12My12NS1TUEVDLm1kIHNlY3Rpb24gMikgdXNlIDB4RDhBODM0MjMuIEEgdGVzdGVyIGZsaXBzIHRoaXMgb3B0aW9uOyDigKYyMyBpcyB0aGUgZGVmYXVsdC4KZXhwb3J0IGNvbnN0IENJUEhFUl9BREQgPSB7IGQ4YTgzNDIzOiAweEQ4QTgzNDIzLCBkOGE4MzQyNDogMHhEOEE4MzQyNCB9OwpleHBvcnQgZnVuY3Rpb24gY2lwaGVyODYoZGF0YSwga2V5LCBpdiwgYWRkID0gQ0lQSEVSX0FERC5kOGE4MzQyMykgewogIGNvbnN0IGMgPSAoTWF0aC5pbXVsKGtleSA+Pj4gMCwgMHgyRDgzQ0RBQykgKyBhZGQpID4+PiAwOwogIGxldCB4ID0gTWF0aC5pbXVsKChNYXRoLmltdWwoaXYgPj4+IDAsIDB4MUUxNTMwQ0QpICsgMHhFQzNENDdDRCkgPj4+IDAsIGMpID4+PiAwOwogIGNvbnN0IG4gPSBkYXRhLmxlbmd0aCwgd29yZHMgPSAobiArIDMpID4+IDI7CiAgY29uc3QgYnVmID0gbmV3IFVpbnQ4QXJyYXkod29yZHMgKiA0KTsgYnVmLnNldChkYXRhKTsKICBjb25zdCB2ID0gbmV3IERhdGFWaWV3KGJ1Zi5idWZmZXIpOwogIGZvciAobGV0IGsgPSAwOyBrIDwgd29yZHM7IGsrKykgeyB2LnNldFVpbnQzMihrICogNCwgKHYuZ2V0VWludDMyKGsgKiA0LCB0cnVlKSBeIHgpID4+PiAwLCB0cnVlKTsgeCA9ICh4ICsgYykgPj4+IDA7IH0KICByZXR1cm4gYnVmLnNsaWNlKDAsIG4pOwp9CgpmdW5jdGlvbiBwaWNrS2V5KHNsaWNlZCwgbWV0YSkgewogIGxldCBoID0gMHg4MTFjOWRjNTsKICBmb3IgKGNvbnN0IGNoIG9mIGAke21ldGEubmFtZSB8fCAnJ318JHtzbGljZWQuY291bnR9fCR7bWV0YS5zZWNvbmRzIHx8IDB9YCkgeyBoIF49IGNoLmNoYXJDb2RlQXQoMCk7IGggPSBNYXRoLmltdWwoaCwgMHgwMTAwMDE5MykgPj4+IDA7IH0KICByZXR1cm4gKGggfHwgMHg1ZWVkMTIzNCkgPj4+IDA7Cn0KCmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUN0YihzbGljZWQsIG1ldGEgPSB7fSkgewogIGNoZWNrU2xpY2VkKHNsaWNlZCwgJ2N0YicpOwogIGNvbnN0IG9wdCA9IHBpY2tPcHRpb25zKENUQiwgbWV0YS5vcHRpb25zKTsKICBjb25zdCB7IHcsIGgsIGNvdW50IH0gPSBzbGljZWQ7CiAgY29uc3Qga2V5ID0gb3B0LmVuY3J5cHRpb24gPT09ICdvbicgPyBwaWNrS2V5KHNsaWNlZCwgbWV0YSkgOiAwOwogIGNvbnN0IGJsb2JzID0gW107CiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICBjb25zdCBnID0gc2xpY2VkLmxheWVyKGkpOwogICAgaWYgKCFnIHx8IGcubGVuZ3RoICE9PSB3ICogaCkgdGhyb3cgbmV3IEVycm9yKGBjdGI6IGxheWVyICR7aX0gaXMgbm90ICR7d30gw5cgJHtofWApOwogICAgY29uc3QgcHggPSBuZXcgVWludDhBcnJheSh3ICogaCk7CiAgICBmb3IgKGxldCBwID0gMDsgcCA8IHB4Lmxlbmd0aDsgcCsrKSB7IGNvbnN0IHYgPSBnW3BdOyBweFtwXSA9IHYgPT09IDAgPyAwIDogTWF0aC5tYXgoMSwgTWF0aC5yb3VuZCh2ICogMTI3IC8gMjU1KSk7IH0KICAgIGxldCBiID0gZW5jb2RlUmxlNyhweCk7CiAgICBpZiAoa2V5KSBiID0gY2lwaGVyODYoYiwga2V5LCBpLCBDSVBIRVJfQUREW29wdC5jaXBoZXJDb25zdGFudF0pOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElWID0gdGhlIGxheWVyJ3MgaW5kZXggaW4gdGhlIGxheWVyIHRhYmxlIChib3R0b20gbGF5ZXIgMCkKICAgIGJsb2JzLnB1c2goYik7CiAgICBpZiAobWV0YS5vblByb2dyZXNzICYmIChpICYgMzEpID09PSAzMSkgeyBtZXRhLm9uUHJvZ3Jlc3MoKGkgKyAxKSAvIGNvdW50KTsgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7IH0KICB9CiAgcmV0dXJuIGFzc2VtYmxlQ2hpdHUoc2xpY2VkLCBtZXRhLCB7CiAgICBtYWdpYzogMHgxMmZkMDA4NiwgZW5jcnlwdGlvbk1vZGU6IDB4Ziwga2V5LCBsZXZlbFNldHM6IDEsIGFhTGV2ZWw6IDEsCiAgICBwcm9qZWN0aW9uOiBvcHQucHJvamVjdGlvbiwgcmVzVHlwZTogb3B0LnJlc1R5cGUsIGJsb2JzLAogIH0pOwp9Cg==","rs-ctb3.js":"LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgKi8KLyoqCiAqIHJzLWN0YjMuanMg4oCUIHRoZSBDaGl0dWJveCAuY3RiIHdyaXRlciBmb3IgdmVyc2lvbnMgMywgNCBhbmQgNSwgaW4gYm90aCBjb250YWluZXIgc3R5bGVzIHRoZSBzcGVjIGRlc2NyaWJlcy4gTm8gRE9NLiBOZWVkcyBXZWJDcnlwdG8KICogKGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZTogYnJvd3NlcnMsIE5vZGUgMjQpIG9ubHkgZm9yIHN0eWxlICdlbmNyeXB0ZWQnLgogKgogKiBDTEVBTiBST09NLCBTVEFHRSBUV08uIFdyaXR0ZW4gZnJvbSBPTkUgd3JpdHRlbiBzb3VyY2U6IGRvY3MvcmVzaW4tZm9ybWF0cy9jdGItdjMtdjUtU1BFQy5tZCAoYW5kIGZyb20gb3VyIG93biBsaWIvcHJpbnRyZXNpbi9ycy1jYmRkbHAuanMsIHJzLWN0Yi5qcywKICogcnMtZ29vLmpzIGZvciBob3VzZSBzdHlsZSBhbmQgc2hhcmVkIGhlbHBlcnMpLiBObyB0aGlyZC1wYXJ0eSBpbXBsZW1lbnRhdGlvbiB3YXMgb3BlbmVkLCBmZXRjaGVkIG9yIHJlY2FsbGVkOyBldmVyeSBnYXAgaW4gdGhlIHNwZWMgaXMgbWFya2VkCiAqIGAvLyBTUEVDLUdBUDpgIGJlbG93IGFuZCB0YWtlbiB0aGUgc2FmZXN0IHJlYWRpbmcgdGhhdCBmb2xsb3dzIHRoZSBzcGVjJ3MgdGV4dC4KICoKICogSE9ORVNUWTogbm90aGluZyB3cml0dGVuIGhlcmUgaGFzIGJlZW4gbG9hZGVkIG9uIGEgcHJpbnRlci4gSXQgaXMgcmVhZCBiYWNrIGJ5IG91ciBvd24gcmVhZGVyIG9ubHkgKHRvb2xzL3ByaW50cmVzaW4vY3RiMy1yZWFkLm1qcywgd3JpdHRlbiBmcm9tIHRoZQogKiBzYW1lIHNwZWMpLCBzbyBpdCBwcm92ZXMgdGhlIGZpbGUgbWF0Y2hlcyBvdXIgcmVhZGluZyBvZiB0aGUgc3BlYywgbm90IHRoYXQgYW55IG1hY2hpbmUgYWNjZXB0cyBpdC4gV2UgZG8gbm90IGNsYWltIGFueSBwcmludGVyIGFjY2VwdHMgaXQuCiAqCiAqICAgQ1RCMyA9IHsgaWQ6ICdjdGIzJywgbmFtZSwgZXh0LCBtaW1lLCBvcHRpb25zIH0KICogICB3cml0ZUN0YjMoc2xpY2VkLCBtZXRhKSDihpIgUHJvbWlzZTxVaW50OEFycmF5PiAgICAgc2xpY2VkIC8gbWV0YSBhcyBpbiBycy1nb28uanMgKHNlZSBycy1ybGUuanMpOyBtZXRhLm9wdGlvbnMuPGlkPjsgYSB3cm9uZyB2YWx1ZSB0aHJvd3MgImN0YjM6IOKApiIKICogICBvcHRpb25zIChVSSBsYWJlbHM6IGxhbmcga2V5cyBvcHQuPGlkPiBhbmQgb3B0LjxpZD4uPHZhbHVlPik6CiAqICAgICBzdHlsZSAgICAgICAgJ3BsYWluJyB8ICdlbmNyeXB0ZWQnICAgZGVmYXVsdCAnZW5jcnlwdGVkJy4gcGxhaW4gPSBzcGVjIFNUWUxFIFAgKG1hZ2ljIDB4MTJGRDAwODYgZm9yIHYzLCAweDEyRkQwMTA2IGZvciB2NC92NSk7IGVuY3J5cHRlZCA9IFNUWUxFIEUKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFnaWMgMHgxMkZEMDEwNywgc2V0dGluZ3MgQUVTLTI1Ni1DQkMsIHNpZ25hdHVyZSkuIFRoZSBzcGVjIG5hbWVzIFN0eWxlIEUgdjUgYXMgdGhlIG1haW4gY2FzZS4KICogICAgIHZlcnNpb24gICAgICAnMycgfCAnNCcgfCAnNScgICAgICAgICBkZWZhdWx0ICc1Jy4gcGxhaW4gYWxsb3dzIDMsIDQsIDU7IGVuY3J5cHRlZCBhbGxvd3MgNCwgNSAodjMgKyBlbmNyeXB0ZWQgdGhyb3dzKS4KICogICAgIGFudGlhbGlhcyAgICAnb24nIHwgJ29mZicgICAgICAgICAgICBkZWZhdWx0ICdvbic6IGZsYWcgMHgwRiArIGxldmVsIDg7ICdvZmYnOiBmbGFnIDB4MDcgKyBsZXZlbCAxLiBQaXhlbHMgYXJlIDctYml0IGdyZXkgZWl0aGVyIHdheTsgdGhlIHNwZWMgZG9lcwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBrbm93IHdoZXRoZXIgYSBwcmludGVyIHJlYWRzIHRoZSBmbGFnLCBzbyBhIGhhcmR3YXJlIHRlc3QgY2FuIGZsaXAgaXQuCiAqICAgICBwcm9qZWN0aW9uICAgJ21pcnJvcmVkJyB8ICdub3JtYWwnICAgZGVmYXVsdCAnbWlycm9yZWQnICh0aGUgc3BlYzogYm90aCBzb3VyY2VzIGRlZmF1bHQgdG8gMSkKICogICAgIGxheWVyQ2lwaGVyICAnb24nIHwgJ29mZicgICAgICAgICAgICBkZWZhdWx0ICdvbicgKHNlZWQgMHg2NykuICdvZmYnIChzZWVkIDAgPSBubyBrZXlzdHJlYW0pIGlzIGFsbG93ZWQgT05MWSBmb3IgcGxhaW4gdjM7IHRoZSBzcGVjIHJlcXVpcmVzIGEKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub256ZXJvIHNlZWQgZm9yIHY0LCB2NSBhbmQgc3R5bGUgRSwgc28gJ29mZicgd2l0aCB0aG9zZSB0aHJvd3MuCiAqICAgQ2lwaGVyIGNvbnN0YW50OiAweEQ4QTgzNDIzIChzcGVjIDIuMi4xOyB0aGUgb2xkIOKApjI0IG9mIHJzLWN0Yi5qcyBpcyBOT1QgdXNlZCBoZXJlKS4gTm90IGFuIG9wdGlvbjogdGhlIHNwZWMgZ2l2ZXMgb25lIHZhbHVlIGZvciB2MyB0byB2NS4KICoKICogVW5pdHM6IG91ciBtZXRhIGlzIHNlY29uZHMsIG1tLCBtbS9taW4gKHJzLWdvby5qcykuIFRoZSBzcGVjJ3MgZmlsZSB1bml0cyBhcmUgdGhlIHNhbWUgKG1tLCBtbS9taW4sIHM7IHByaW50IHRpbWUgdTMyIHM7IHZvbHVtZSBtbDsgdGltZXN0YW1wID0gVW5peAogKiBtaW51dGVzKSwgc28gbm90aGluZyBjb252ZXJ0cyBleGNlcHQgdGhlIHRpbWVzdGFtcCAobXMg4oaSIG1pbnV0ZXMpIGFuZCB0aGUgdm9sdW1lIChhbHJlYWR5IG1sKS4KICoKICogU1BFQy1HQVBzIChlYWNoIG1hcmtlZCB3aGVyZSBpdCBoYXBwZW5zKToKICogICAxLiBEaXNjbGFpbWVyIHRleHQ6IHRoZSBzcGVjIHNheXMgdGhlIHZlbmRvcidzIHRleHQgaXMgbGljZW5jZS1iZWFyaW5nIGFuZCBub3Qgc3VwcGxpZWQ7IHdlIHdyaXRlIG91ciBvd24gMzIwIGJ5dGVzLiBBIHByaW50ZXIgbWlnaHQgY2hlY2sgaXQuCiAqICAgMi4gU2luZ2xlLXN0YWdlIGxpZnQ6IHRoZSBwcm9maWxlIGhhcyBvbmUgbGlmdCBwZXIgbGF5ZXIgc2V0LCBzbyBldmVyeSAic3RhZ2UgMiIgZmllbGQgaXMgMCBhbmQgdGhlIHRvdGFscyBlcXVhbCB0aGUgb25lIHZhbHVlIChzcGVjIDQuMyBzYXlzIHplcm8KICogICAgICBpcyB2YWxpZCkuIFdoZXRoZXIgYSBwcmludGVyIG5lZWRzIHRoZSB2ZW5kb3IncyB0d28tc3RhZ2UgZGVmYXVsdHMgaXMgdW5rbm93bi4KICogICAzLiBSZXN0IHRpbWVzIChiZWZvcmUgbGlmdCwgYWZ0ZXIgbGlmdCwgYWZ0ZXIgcmV0cmFjdCkgYW5kIHRyYW5zaXRpb24gbGF5ZXIgY291bnQ6IHRoZSBwcm9maWxlIGhhcyBub25lIOKGkiB3cml0dGVuIDAuCiAqICAgNC4gVW5rbm93biBmaWVsZHM6IHdyaXR0ZW4gd2l0aCB3aGF0IHRoZSBzcGVjIHNheXMgYm90aCBzb3VyY2VzIHdyaXRlICgwLCAxLCA0MiwgdGhlIGNvbnN0YW50cyA0LjAsIDUsIDQsIHRoZSB0d28gZW5kIG1hcmtlcnMpOyB0aGUgdW5rbm93biBmbG9hdAogKiAgICAgIGF0IHY0LWJsb2NrIG9mZnNldCA0MCBhbmQgdTMyIGF0IDQ0IGFyZSB3cml0dGVuIDAgKCJwcm9iYWJseSBhY2NlcHRhYmxlICh1bnRlc3RlZCkiKS4KICogICA1LiBMYXllciB6IGlzIHdyaXR0ZW4gYXMgdGhlIFRPUCBvZiBsYXllciBpLCAoaSsxKcK3bGF5ZXJIZWlnaHQgKHRoZSBzcGVjIG9ubHkgc2F5cyAicGxhdGZvcm0gcG9zaXRpb24sIGluY3JlYXNpbmciKTsgc2FtZSBhcyBycy1jYmRkbHAuanMuCiAqICAgNi4gU3R5bGUgRTogc2lnbmF0dXJlIHNlZWQgdmFsdWUgMHhDQUZFQkFCRSAoc3BlYzogImFueSB2YWx1ZSIpOyBzaWduYXR1cmUsIDgtYnl0ZSBtYXJrZXIgKHY1KSBhbmQgNC1ieXRlIG1hcmtlciBwbGFjZWQgYWZ0ZXIgdGhlIGxheWVycyAodGhlCiAqICAgICAgc3BlYydzIHByZWZlcnJlZCBvcmRlcjsgdGhlIG90aGVyIG9yZGVyIGlzIHVudmVyaWZpZWQgb24gaGFyZHdhcmUpLiBTdHlsZSBFIHByZXZpZXcgcmVjb3JkIGlzIDE2IGJ5dGVzIChzcGVjIDIuNCk7IHJlYWRlcnMgZm9sbG93IHRoZSBvZmZzZXQuCiAqICAgNy4gQUVTLWNvdmVyZWQgcGFydCBvZiBhIGxheWVyOiBvZmZzZXQgMCwgbGVuZ3RoIDAgKHRoZSBzcGVjJ3Mgd3JpdGVyIGJlaGF2aW91cik7IGEgcHJpbnRlciBtaWdodCBkZW1hbmQgaXQgKHNwZWMgMTEuNykuCiAqICAgOC4gUHJpbnQtcGFyYW1ldGVyIGJsb2NrIHNpemUgNjAgYW5kIHNsaWNlciBibG9jayBzaXplIDc2IChzcGVjKSBkaWZmZXIgZnJvbSB0aGUgdjIgd3JpdGVyJ3MgNjQgYW5kIDgwOyBhIHByaW50ZXIgbWlnaHQgY29tcGFyZSAoc3BlYyAxMS4xMCkuCiAqICAgOS4gUHJldmlldyBvZmZzZXRzIGluIHRoZSBoZWFkZXIgLyBzZXR0aW5ncyBwb2ludCBhdCB0aGUgcHJldmlldyBSRUNPUkQgKHJlY29yZCBjYXJyaWVzIHRoZSBkYXRhIG9mZnNldCk7IHRoZSBzcGVjIGRvZXMgbm90IHNheSB3aGljaC4gUHJldmlldwogKiAgICAgIHBpY3R1cmUgKHJlc2luLWdyZWVuIG9uIGRhcmssIG1heCBvdmVyIHNhbXBsZWQgbGF5ZXJzKSBpcyBvdXIgb3duOyBzaXplcyA0MDDDlzMwMCBhbmQgMjAww5cxMjUgYXMgaW4gYWxsIGZpbGVzIHRoZSBzcGVjIGNpdGVzLgogKiAgMTAuIFJlc2luIGJsb2NrICh2NSk6IGNvbG91ciAoZ3JleSwgYWxwaGEgMCksIHR5cGUgIk5vcm1hbCIsIG5hbWUgZnJvbSB0aGUgcHJvZmlsZSAoZWxzZSAiU3RhbmRhcmQiKSwgZGVuc2l0eSBmcm9tIHRoZSBwcm9maWxlIChlbHNlIDEuMSk7IHRoZSBzcGVjCiAqICAgICAgbGVhdmVzIHRoZW0gZnJlZS4gQWxwaGEgMCBpcyAiMCBpbiBvbmUgc291cmNlJ3MgZGVmYXVsdHMiLgogKiAgMTEuIExheWVyIHBpeGVsIG1hcHBpbmcgZyA+PiAxIChzcGVjIDIuMSk7IGEgZmFpbnQgcGl4ZWwgMSBiZWNvbWVzIDAgKHNwZWMgYmVoYXZpb3VyLCBub3Qgb3VyIHJvdW5kLXRvLTEgb2YgcnMtY3RiLmpzKS4KICogIDEyLiBUaW1lc3RhbXA6IGZsb29yKFVuaXggc2Vjb25kcyAvIDYwKSAoc3BlYyk7IG1ldGEudGltZSAoRGF0ZSkgd2hlbiBnaXZlbiwgZWxzZSBub3cuIFRoZSAiZXBvY2giIG9mIHRoZSBvdGhlciBzb3VyY2UgaXMgbm90IGtub3duLgogKiAgMTMuIEJvdHRvbS1sYXllciBtb3Rpb246IGEgbGF5ZXIgYmVsb3cgdGhlIGJvdHRvbSBjb3VudCB1c2VzIG1ldGEucmVzaW4uYm90dG9tTGlmdEhlaWdodCAvIGJvdHRvbUxpZnRTcGVlZCB3aGVuIGdpdmVuLCBlbHNlIHRoZSBub3JtYWwgbGlmdC4KICogIDE0LiBXcml0ZXItc2lkZSBBRVM6IHRoZSBzcGVjIHNheXMgV2ViQ3J5cHRvIGNhbm5vdCBkbyBuby1wYWRkaW5nIENCQzsgZm9yIHdob2xlIGJsb2NrcyB3ZSBlbmNyeXB0IGFuZCBkcm9wIHRoZSBmaW5hbCAxNi1ieXRlIHBhZGRpbmcgYmxvY2ssIHdoaWNoCiAqICAgICAgaXMgdGhlIHNhbWUgY2lwaGVydGV4dCBhcyBuby1wYWRkaW5nIENCQyAoY2hhaW5pbmcgZG9lcyBub3QgbG9vayBhaGVhZCkuIERlY3J5cHRpb24gKHJlYWRlciBvbmx5KSBuZWVkcyBhIHBhZGRpbmcgYmxvY2sgYXBwZW5kZWQg4oCUIHNlZSBjdGIzLXJlYWQuCiAqICAxNS4gTWFjaGluZSBuYW1lOiBBU0NJSSwgbm8gdGVybWluYXRvciwgbGVuZ3RoID0gYnl0ZSBjb3VudCAoc3BlYydzIHJlY29tbWVuZGF0aW9uKS4KICogIDE2LiBQYWdlczogYWx3YXlzIDAgKGZpbGVzIHVuZGVyIDQgR2lCKTsgYSBsYXJnZXIgZmlsZSB0aHJvd3MuCiAqLwppbXBvcnQgeyBPdXQsIGNoZWNrU2xpY2VkLCBwaWNrT3B0aW9ucyB9IGZyb20gJy4vcnMtY2JkZGxwLmpzJzsKCmV4cG9ydCB7IE1BWF9QWCB9IGZyb20gJy4vcnMtY2JkZGxwLmpzJzsKCmV4cG9ydCBjb25zdCBDVEIzID0gewogIGlkOiAnY3RiMycsIG5hbWU6ICdDaGl0dWJveCBDVEIgdjMgdG8gdjUgKC5jdGIpJywgZXh0OiAnY3RiJywgbWltZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsCiAgb3B0aW9uczogWwogICAgeyBpZDogJ3N0eWxlJywgdmFsdWVzOiBbJ3BsYWluJywgJ2VuY3J5cHRlZCddLCBkZWZhdWx0OiAnZW5jcnlwdGVkJyB9LAogICAgeyBpZDogJ3ZlcnNpb24nLCB2YWx1ZXM6IFsnMycsICc0JywgJzUnXSwgZGVmYXVsdDogJzUnIH0sCiAgICB7IGlkOiAnYW50aWFsaWFzJywgdmFsdWVzOiBbJ29uJywgJ29mZiddLCBkZWZhdWx0OiAnb24nIH0sCiAgICB7IGlkOiAncHJvamVjdGlvbicsIHZhbHVlczogWydtaXJyb3JlZCcsICdub3JtYWwnXSwgZGVmYXVsdDogJ21pcnJvcmVkJyB9LAogICAgeyBpZDogJ2xheWVyQ2lwaGVyJywgdmFsdWVzOiBbJ29uJywgJ29mZiddLCBkZWZhdWx0OiAnb24nIH0sCiAgXSwKfTsKCi8vIC0tLS0gY29uc3RhbnRzIGZyb20gdGhlIHNwZWMgLS0tLQpleHBvcnQgY29uc3QgU0VFRCA9IDB4Njc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlYyAyLjIuMjogZml4ZWQgcmVwcm9kdWNpYmxlIHNlZWQKZXhwb3J0IGNvbnN0IENJUEhFUl9BREQgPSAweEQ4QTgzNDIzOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWMgMi4yLjEKZXhwb3J0IGNvbnN0IEFFU19LRVlfSEVYID0gJ0QwNUI4RTMzNzFERTNEMUFFNTRGMjJERERGNUJGRDk0QUI1RDY0M0E5RDdFQkZBRjQyMDNGMzEwRDg1MjJBRUEnOyAgIC8vIHNwZWMgNi44CmV4cG9ydCBjb25zdCBBRVNfSVZfSEVYID0gJzBGMDEwQTA1MDUwQjA2MDcwODA2MEEwQzBDMEQwOTBGJzsKY29uc3QgU0lHX1NFRUQgPSAweENBRkVCQUJFOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNQRUMtR0FQIDYKY29uc3QgTUFSS0VSX0EgPSAweDQyMjA1MkZBLCBNQVJLRVJfQiA9IDB4NkQ0MjMyQjM7ICAgICAgICAgICAgIC8vIHNwZWMgNi45CmNvbnN0IEhFQURFUl9QID0gMHg3MCwgUEFSQU1fU0laRSA9IDYwLCBTTElDRVJfU0laRSA9IDc2LCBWNF9TSVpFID0gNDY0LCBFWFRfU0laRSA9IDg0LCBFTlRSWV9TSVpFID0gMzY7CmNvbnN0IEhFQURFUl9FID0gNDgsIFNFVFRJTkdTX0UgPSAyODgsIFJFQ19FID0gODgsIEVOVFJZX0UgPSAxNiwgRElTQ0xBSU1FUl9MRU4gPSAzMjAsIFJFU0lOX0ZJWEVEID0gNDA7CmNvbnN0IExBUkdFID0gWzQwMCwgMzAwXSwgU01BTEwgPSBbMjAwLCAxMjVdOwpjb25zdCBudW0gPSAodiwgZCA9IDApID0+IChOdW1iZXIuaXNGaW5pdGUoK3YpID8gK3YgOiBkKTsKY29uc3QgaGV4ID0gKHMpID0+IFVpbnQ4QXJyYXkuZnJvbShzLm1hdGNoKC8uLi9nKSwgKHgpID0+IHBhcnNlSW50KHgsIDE2KSk7CgovKiogT3VyIG93biBuZXV0cmFsIDMyMCBieXRlcyAoU1BFQy1HQVAgMSk6IHRleHQsIHRoZW4gc3BhY2VzLiAqLwpleHBvcnQgZnVuY3Rpb24gZGlzY2xhaW1lckJ5dGVzKCkgewogIGNvbnN0IGIgPSBuZXcgVWludDhBcnJheShESVNDTEFJTUVSX0xFTikuZmlsbCgweDIwKTsKICBiLnNldChuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoIldyaXR0ZW4gYnkgQ2FkQ3JhZnQncyBvcGVuIHJlc2luIHNsaWNlci4iKSk7CiAgcmV0dXJuIGI7Cn0KCi8qKiBSTEU3IG9mIDgtYml0IGdyZXkgKHNwZWMgMi4xKTogY29kZSA9IGcgPj4gMTsgcnVuIGJ5dGUgaGFzIGJpdCA3OyBydW4gbGVuZ3RoIGJpZy1lbmRpYW4gMS4uNCBieXRlczsgcnVucyBvdmVyIDJeMjggLSAxIGFyZSBzcGxpdC4gKi8KZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVJsZTcoZ3JleSkgewogIGNvbnN0IG91dCA9IFtdOwogIGNvbnN0IG4gPSBncmV5Lmxlbmd0aDsKICBsZXQgaSA9IDA7CiAgd2hpbGUgKGkgPCBuKSB7CiAgICBjb25zdCBjID0gZ3JleVtpXSA+PiAxOwogICAgbGV0IGogPSBpICsgMTsKICAgIHdoaWxlIChqIDwgbiAmJiAoZ3JleVtqXSA+PiAxKSA9PT0gYykgaisrOwogICAgZm9yIChsZXQgcnVuID0gaiAtIGk7IHJ1biA+IDA7KSB7CiAgICAgIGNvbnN0IHIgPSBNYXRoLm1pbihydW4sIDB4MGZmZmZmZmYpOyBydW4gLT0gcjsKICAgICAgaWYgKHIgPT09IDEpIHsgb3V0LnB1c2goYyk7IGNvbnRpbnVlOyB9CiAgICAgIG91dC5wdXNoKDB4ODAgfCBjKTsKICAgICAgaWYgKHIgPCAweDgwKSBvdXQucHVzaChyKTsKICAgICAgZWxzZSBpZiAociA8IDB4NDAwMCkgb3V0LnB1c2goMHg4MCB8IChyID4+PiA4KSwgciAmIDB4ZmYpOwogICAgICBlbHNlIGlmIChyIDwgMHgyMDAwMDApIG91dC5wdXNoKDB4YzAgfCAociA+Pj4gMTYpLCAociA+Pj4gOCkgJiAweGZmLCByICYgMHhmZik7CiAgICAgIGVsc2Ugb3V0LnB1c2goMHhlMCB8IChyID4+PiAyNCksIChyID4+PiAxNikgJiAweGZmLCAociA+Pj4gOCkgJiAweGZmLCByICYgMHhmZik7CiAgICB9CiAgICBpID0gajsKICB9CiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShvdXQpOwp9CgovKiogTGF5ZXIga2V5c3RyZWFtIChzcGVjIDIuMik6IFhPUiB3aXRoIEtfbiA9IEswICsgbsK3aW5pdCwgbGl0dGxlLWVuZGlhbiBieXRlczsgaXRzIG93biBpbnZlcnNlLiBzZWVkIDAgPSB1bmNoYW5nZWQgY29weS4gKi8KZXhwb3J0IGZ1bmN0aW9uIGtleXN0cmVhbVhvcihkYXRhLCBzZWVkLCBsYXllcikgewogIGNvbnN0IG91dCA9IG5ldyBVaW50OEFycmF5KGRhdGEubGVuZ3RoKTsKICBpZiAoIXNlZWQpIHsgb3V0LnNldChkYXRhKTsgcmV0dXJuIG91dDsgfQogIGNvbnN0IGluaXQgPSAoTWF0aC5pbXVsKHNlZWQgPj4+IDAsIDB4MkQ4M0NEQUMpICsgQ0lQSEVSX0FERCkgPj4+IDA7CiAgY29uc3QgazAgPSBNYXRoLmltdWwoKE1hdGguaW11bChsYXllciA+Pj4gMCwgMHgxRTE1MzBDRCkgKyAweEVDM0Q0N0NEKSA+Pj4gMCwgaW5pdCkgPj4+IDA7CiAgbGV0IGtuID0gazA7CiAgZm9yIChsZXQgaiA9IDA7IGogPCBkYXRhLmxlbmd0aDsgaisrKSB7CiAgICBpZiAoKGogJiAzKSA9PT0gMCAmJiBqKSBrbiA9IChrbiArIGluaXQpID4+PiAwOwogICAgb3V0W2pdID0gZGF0YVtqXSBeICgoa24gPj4+ICgoaiAmIDMpICogOCkpICYgMHhmZik7CiAgfQogIHJldHVybiBvdXQ7Cn0KCi8qKiBBRVMtMjU2LUNCQyB3aXRob3V0IHBhZGRpbmcgZm9yIHdob2xlIGJsb2NrcywgZml4ZWQga2V5L0lWIChzcGVjIDYuOCksIHRocm91Z2ggV2ViQ3J5cHRvIChTUEVDLUdBUCAxNCkuICovCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZXNFbmNyeXB0QmxvY2tzKGRhdGEpIHsKICBpZiAoZGF0YS5sZW5ndGggJSAxNikgdGhyb3cgbmV3IEVycm9yKCdjdGIzOiBBRVMgaW5wdXQgbXVzdCBiZSB3aG9sZSAxNi1ieXRlIGJsb2NrcycpOwogIGNvbnN0IHMgPSBnbG9iYWxUaGlzLmNyeXB0byAmJiBnbG9iYWxUaGlzLmNyeXB0by5zdWJ0bGU7CiAgaWYgKCFzKSB0aHJvdyBuZXcgRXJyb3IoJ2N0YjM6IHRoZSBlbmNyeXB0ZWQgc3R5bGUgbmVlZHMgV2ViQ3J5cHRvIChnbG9iYWxUaGlzLmNyeXB0by5zdWJ0bGUpJyk7CiAgY29uc3Qga2V5ID0gYXdhaXQgcy5pbXBvcnRLZXkoJ3JhdycsIGhleChBRVNfS0VZX0hFWCksICdBRVMtQ0JDJywgZmFsc2UsIFsnZW5jcnlwdCddKTsKICBjb25zdCBjdCA9IG5ldyBVaW50OEFycmF5KGF3YWl0IHMuZW5jcnlwdCh7IG5hbWU6ICdBRVMtQ0JDJywgaXY6IGhleChBRVNfSVZfSEVYKSB9LCBrZXksIGRhdGEpKTsKICByZXR1cm4gY3Quc2xpY2UoMCwgZGF0YS5sZW5ndGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRyb3AgdGhlIHBhZGRpbmcgYmxvY2sgV2ViQ3J5cHRvIGFwcGVuZHMKfQoKLyoqIFNwZWMgNi43OiBBRVMoU0hBLTI1Nig4LWJ5dGUgbGl0dGxlLWVuZGlhbiBzZWVkKSkuICovCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduYXR1cmVGb3Ioc2VlZExvLCBzZWVkSGkgPSAwKSB7CiAgY29uc3QgYiA9IG5ldyBVaW50OEFycmF5KDgpLCB2ID0gbmV3IERhdGFWaWV3KGIuYnVmZmVyKTsKICB2LnNldFVpbnQzMigwLCBzZWVkTG8gPj4+IDAsIHRydWUpOyB2LnNldFVpbnQzMig0LCBzZWVkSGkgPj4+IDAsIHRydWUpOwogIGNvbnN0IGQgPSBuZXcgVWludDhBcnJheShhd2FpdCBnbG9iYWxUaGlzLmNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgYikpOwogIHJldHVybiBhZXNFbmNyeXB0QmxvY2tzKGQpOwp9CgovLyAtLS0tIFJHQjE1LVJMRSBwcmV2aWV3IChzcGVjIDIuMyk6IG91ciBvd24gcGljdHVyZSwgcmVzaW4tZ3JlZW4gb24gZGFyayAtLS0tCmZ1bmN0aW9uIHByZXZpZXdQaXhlbHMoc2xpY2VkLCBwdywgcGgpIHsKICBjb25zdCB7IHcsIGgsIGNvdW50IH0gPSBzbGljZWQ7CiAgY29uc3QgYWNjID0gbmV3IFVpbnQ4QXJyYXkodyAqIGgpOwogIGNvbnN0IHN0ZXAgPSBNYXRoLm1heCgxLCBNYXRoLmNlaWwoY291bnQgLyAyNCkpOwogIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gc3RlcCkgeyBjb25zdCBnID0gc2xpY2VkLmxheWVyKGkpOyBmb3IgKGxldCBrID0gMDsgayA8IGFjYy5sZW5ndGg7IGsrKykgaWYgKGdba10gPiBhY2Nba10pIGFjY1trXSA9IGdba107IH0KICBjb25zdCBzID0gTWF0aC5taW4ocHcgLyB3LCBwaCAvIGgpLCBpdyA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQodyAqIHMpKSwgaWggPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKGggKiBzKSk7CiAgY29uc3QgeDAgPSAocHcgLSBpdykgPj4gMSwgeTAgPSAocGggLSBpaCkgPj4gMTsKICBjb25zdCBiZyA9IFsxNiwgMTgsIDIyXSwgZmcgPSBbOTYsIDIzMCwgMTUwXTsKICBjb25zdCBvdXQgPSBuZXcgVWludDE2QXJyYXkocHcgKiBwaCk7CiAgZm9yIChsZXQgeSA9IDA7IHkgPCBwaDsgeSsrKSBmb3IgKGxldCB4ID0gMDsgeCA8IHB3OyB4KyspIHsKICAgIGxldCB0ID0gMDsKICAgIGlmICh4ID49IHgwICYmIHggPCB4MCArIGl3ICYmIHkgPj0geTAgJiYgeSA8IHkwICsgaWgpIHsKICAgICAgY29uc3Qgc3ggPSBNYXRoLm1pbih3IC0gMSwgTWF0aC5mbG9vcigoeCAtIHgwKSAqIHcgLyBpdykpLCBzeSA9IE1hdGgubWluKGggLSAxLCBNYXRoLmZsb29yKCh5IC0geTApICogaCAvIGloKSk7CiAgICAgIHQgPSBhY2Nbc3kgKiB3ICsgc3hdIC8gMjU1OwogICAgfQogICAgY29uc3QgYyA9IFswLCAxLCAyXS5tYXAoKGspID0+IE1hdGgucm91bmQoYmdba10gKyAoZmdba10gLSBiZ1trXSkgKiB0KSk7CiAgICBvdXRbeSAqIHB3ICsgeF0gPSAoKGNbMF0gPj4gMykgPDwgMTEpIHwgKChjWzFdID4+IDMpIDw8IDYpIHwgKGNbMl0gPj4gMyk7ICAgICAgIC8vIGJpdCA1IChyZXBlYXQgZmxhZykgY2xlYXIKICB9CiAgcmV0dXJuIG91dDsKfQovKiogUnVucyBvZiAzIG9yIG1vcmUgaWRlbnRpY2FsIHdvcmRzIHVzZSB0aGUgZmxhZyB3b3JkICsgMHgzMDAwfGV4dHJhOyBzaG9ydGVyIHJ1bnMgYXJlIGxpdGVyYWwgKHNwZWMgMi4zKS4gKi8KZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVJnYjE1UmxlKHdvcmRzKSB7CiAgY29uc3Qgb3V0ID0gW107CiAgbGV0IGkgPSAwOwogIHdoaWxlIChpIDwgd29yZHMubGVuZ3RoKSB7CiAgICBjb25zdCBwID0gd29yZHNbaV07CiAgICBsZXQgaiA9IGkgKyAxOwogICAgd2hpbGUgKGogPCB3b3Jkcy5sZW5ndGggJiYgd29yZHNbal0gPT09IHAgJiYgaiAtIGkgPCAweGZmZikgaisrOwogICAgY29uc3QgbiA9IGogLSBpOwogICAgaWYgKG4gPj0gMykgeyBvdXQucHVzaChwIHwgMHgyMCwgMHgzMDAwIHwgKG4gLSAxKSk7IGkgPSBqOyB9IGVsc2UgeyBvdXQucHVzaChwKTsgaSsrOyB9CiAgfQogIGNvbnN0IGIgPSBuZXcgVWludDhBcnJheShvdXQubGVuZ3RoICogMiksIHYgPSBuZXcgRGF0YVZpZXcoYi5idWZmZXIpOwogIG91dC5mb3JFYWNoKCh4LCBrKSA9PiB2LnNldFVpbnQxNihrICogMiwgeCwgdHJ1ZSkpOwogIHJldHVybiBiOwp9Cgpjb25zdCBhc2NpaSA9IChzLCBtYXgpID0+IFN0cmluZyhzKS5yZXBsYWNlKC9bXlx4MjAtXHg3ZV0vZywgJz8nKS5zbGljZSgwLCBtYXgpOwoKZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ3RiM09wdGlvbnMob3B0KSB7CiAgY29uc3QgdmVyID0gK29wdC52ZXJzaW9uOwogIGlmIChvcHQuc3R5bGUgPT09ICdlbmNyeXB0ZWQnICYmIHZlciA9PT0gMykgdGhyb3cgbmV3IEVycm9yKCJjdGIzOiBzdHlsZSAnZW5jcnlwdGVkJyBuZWVkcyB2ZXJzaW9uIDQgb3IgNSAodmVyc2lvbiAzIGV4aXN0cyBvbmx5IGFzIHN0eWxlICdwbGFpbicpIik7CiAgaWYgKG9wdC5sYXllckNpcGhlciA9PT0gJ29mZicgJiYgIShvcHQuc3R5bGUgPT09ICdwbGFpbicgJiYgdmVyID09PSAzKSkgdGhyb3cgbmV3IEVycm9yKCJjdGIzOiBsYXllckNpcGhlciAnb2ZmJyBpcyBvbmx5IGFsbG93ZWQgZm9yIHN0eWxlICdwbGFpbicgdmVyc2lvbiAzICh0aGUgc3BlYyBuZWVkcyBhIG5vbnplcm8gc2VlZCBvdGhlcndpc2UpIik7CiAgcmV0dXJuIHZlcjsKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQ3RiMyhzbGljZWQsIG1ldGEgPSB7fSkgewogIGNoZWNrU2xpY2VkKHNsaWNlZCwgJ2N0YjMnKTsKICBjb25zdCBvcHQgPSBwaWNrT3B0aW9ucyhDVEIzLCBtZXRhLm9wdGlvbnMpOwogIGNvbnN0IHZlciA9IGNoZWNrQ3RiM09wdGlvbnMob3B0KTsKICBjb25zdCBlbmNyeXB0ZWQgPSBvcHQuc3R5bGUgPT09ICdlbmNyeXB0ZWQnOwogIGNvbnN0IHsgdywgaCwgY291bnQgfSA9IHNsaWNlZDsKICBjb25zdCBwciA9IG1ldGEucHJpbnRlciB8fCB7fSwgcnMgPSBtZXRhLnJlc2luIHx8IHt9OwoKICAvLyAtLS0tIG51bWJlcnMsIGluIHRoZSBmaWxlJ3MgdW5pdHMgKD0gb3Vyczsgc2VlIGhlYWRlcikgLS0tLQogIGNvbnN0IGxheWVySCA9IG51bShtZXRhLmxheWVySGVpZ2h0LCBzbGljZWQubGF5ZXJIZWlnaHQpOwogIGNvbnN0IGJvdHRvbU4gPSBNYXRoLm1heCgwLCBNYXRoLm1pbihjb3VudCwgTWF0aC5yb3VuZChudW0ocnMuYm90dG9tTGF5ZXJzKSkpKTsKICBjb25zdCBleHBvID0gbnVtKHJzLmV4cG9zdXJlKSwgYkV4cG8gPSBudW0ocnMuYm90dG9tRXhwb3N1cmUsIGV4cG8pLCBvZmYgPSBudW0ocnMubGlnaHRPZmYpOyAgICAgICAgICAvLyBzCiAgY29uc3QgbGlmdCA9IG51bShycy5saWZ0SGVpZ2h0KSwgbGlmdFYgPSBudW0ocnMubGlmdFNwZWVkKSwgcmV0ViA9IG51bShycy5yZXRyYWN0U3BlZWQpOyAgICAgICAgICAgICAgLy8gbW0sIG1tL21pbgogIGNvbnN0IGJMaWZ0ID0gbnVtKHJzLmJvdHRvbUxpZnRIZWlnaHQsIGxpZnQpLCBiTGlmdFYgPSBudW0ocnMuYm90dG9tTGlmdFNwZWVkLCBsaWZ0Vik7ICAgICAgICAgICAgICAgICAvLyBTUEVDLUdBUCAxMwogIGNvbnN0IGJSZXRWID0gbnVtKHJzLmJvdHRvbVJldHJhY3RTcGVlZCwgcmV0Vik7CiAgY29uc3QgUzIgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNQRUMtR0FQIDI6IGV2ZXJ5IHN0YWdlLTIgdmFsdWUKICBjb25zdCBSRVNUID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU1BFQy1HQVAgMzogcmVzdCB0aW1lcyAvIHRyYW5zaXRpb24gY291bnQKICBjb25zdCBwd20gPSBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQobnVtKHJzLnB3bSwgMjU1KSkpKTsKICBjb25zdCBtbSA9IHNsaWNlZC5tbSB8fCBwci5tbSB8fCBbMCwgMF07CiAgY29uc3QgcGxhdFggPSBudW0ocHIubW0gJiYgcHIubW1bMF0sIG51bShtbVswXSkpLCBwbGF0WSA9IG51bShwci5tbSAmJiBwci5tbVsxXSwgbnVtKG1tWzFdKSk7CiAgY29uc3QgcGxhdFogPSBudW0ocHIubW0gJiYgcHIubW1bMl0sIGNvdW50ICogbGF5ZXJIKTsKICBjb25zdCB2b2x1bWUgPSBudW0obWV0YS52b2x1bWVNbCksIGdyYW1zID0gdm9sdW1lICogbnVtKHJzLmRlbnNpdHksIDEuMSksIGNvc3QgPSBncmFtcyAvIDEwMDAgKiBudW0ocnMucHJpY2UpOwogIGNvbnN0IHNlY29uZHMgPSBNYXRoLnJvdW5kKG51bShtZXRhLnNlY29uZHMpKTsKICBjb25zdCB3aGVuID0gbWV0YS50aW1lIGluc3RhbmNlb2YgRGF0ZSA/IG1ldGEudGltZS5nZXRUaW1lKCkgOiBEYXRlLm5vdygpOwogIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHdoZW4gLyA2MDAwMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTUEVDLUdBUCAxMgogIGNvbnN0IG1hY2hpbmUgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoYXNjaWkocHIudHlwZSB8fCBwci5uYW1lIHx8IHByLmlkIHx8ICdDYWRDcmFmdCcsIDY0KSk7ICAgICAgLy8gU1BFQy1HQVAgMTUKICBjb25zdCBhYUZsYWcgPSBvcHQuYW50aWFsaWFzID09PSAnb24nID8gMHgwZiA6IDB4MDcsIGFhTGV2ZWwgPSBvcHQuYW50aWFsaWFzID09PSAnb24nID8gOCA6IDE7CiAgY29uc3QgcHJvaiA9IG9wdC5wcm9qZWN0aW9uID09PSAnbWlycm9yZWQnID8gMSA6IDA7CiAgY29uc3Qgc2VlZCA9IG9wdC5sYXllckNpcGhlciA9PT0gJ29uJyA/IFNFRUQgOiAwOwogIGNvbnN0IHBlckxheWVyRmxhZyA9IGVuY3J5cHRlZCA/IDB4NDAgOiB2ZXIgKiAweDEwOwogIGNvbnN0IHN3VmVyc2lvbiA9IHZlciA9PT0gMyA/IDB4MDEwNjAzMDAgOiB2ZXIgPT09IDQgPyAweDAxMDkwMDAwIDogMHgwMjAwMDAwMDsKICBjb25zdCB2NHBsdXMgPSB2ZXIgPj0gNDsKICBjb25zdCBkaXNjbGFpbWVyID0gZGlzY2xhaW1lckJ5dGVzKCk7CiAgY29uc3QgcmVzaW5UeXBlID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKCdOb3JtYWwnKSwgcmVzaW5OYW1lID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGFzY2lpKHJzLm5hbWUgfHwgJ1N0YW5kYXJkJywgNjQpKTsKCiAgLy8gLS0tLSBsYXllcnM6IFJMRTcsIHRoZW4ga2V5c3RyZWFtIChpbmRleCA9IGxheWVyIG51bWJlcikgLS0tLQogIGNvbnN0IGJsb2JzID0gW107CiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICBjb25zdCBnID0gc2xpY2VkLmxheWVyKGkpOwogICAgaWYgKCFnIHx8IGcubGVuZ3RoICE9PSB3ICogaCkgdGhyb3cgbmV3IEVycm9yKGBjdGIzOiBsYXllciAke2l9IGlzIG5vdCAke3d9IMOXICR7aH1gKTsKICAgIGJsb2JzLnB1c2goa2V5c3RyZWFtWG9yKGVuY29kZVJsZTcoZyksIHNlZWQsIGkpKTsKICAgIGlmIChtZXRhLm9uUHJvZ3Jlc3MgJiYgKGkgJiAzMSkgPT09IDMxKSB7IG1ldGEub25Qcm9ncmVzcygoaSArIDEpIC8gY291bnQpOyBhd2FpdCBQcm9taXNlLnJlc29sdmUoKTsgfQogIH0KICBjb25zdCBsYXJnZSA9IGVuY29kZVJnYjE1UmxlKHByZXZpZXdQaXhlbHMoc2xpY2VkLCBMQVJHRVswXSwgTEFSR0VbMV0pKTsKICBjb25zdCBzbWFsbCA9IGVuY29kZVJnYjE1UmxlKHByZXZpZXdQaXhlbHMoc2xpY2VkLCBTTUFMTFswXSwgU01BTExbMV0pKTsKICBjb25zdCBsYXkgPSAoaSkgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBlci1sYXllciB2YWx1ZXMKICAgIGNvbnN0IGIgPSBpIDwgYm90dG9tTjsKICAgIHJldHVybiB7IHo6IE1hdGguZnJvdW5kKChpICsgMSkgKiBsYXllckgpLCBleHA6IGIgPyBiRXhwbyA6IGV4cG8sIG9mZiwKICAgICAgbGlmdDogYiA/IGJMaWZ0IDogbGlmdCwgbGlmdFY6IGIgPyBiTGlmdFYgOiBsaWZ0ViwgcmV0VjogYiA/IGJSZXRWIDogcmV0ViB9OwogIH07CiAgY29uc3QgcmVzaW5GaXhlZExlbiA9IHZlciA9PT0gNSA/IFJFU0lOX0ZJWEVEICsgbWFjaGluZS5sZW5ndGggKyByZXNpblR5cGUubGVuZ3RoICsgcmVzaW5OYW1lLmxlbmd0aCA6IDA7CiAgY29uc3QgcHV0UmVzaW4gPSAobywgYXQpID0+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWMgNi42LCBzaGFyZWQgYnkgYm90aCBzdHlsZXMKICAgIGNvbnN0IG1BdCA9IGF0ICsgUkVTSU5fRklYRUQsIHRBdCA9IG1BdCArIG1hY2hpbmUubGVuZ3RoLCBuQXQgPSB0QXQgKyByZXNpblR5cGUubGVuZ3RoOwogICAgby51MzIoMCk7IG8udTgoMHg4MCk7IG8udTgoMHg4MCk7IG8udTgoMHg4MCk7IG8udTgoMCk7ICAgICAgICAgICAgICAvLyBwYWRkaW5nOyBibHVlLCBncmVlbiwgcmVkLCBhbHBoYSAoU1BFQy1HQVAgMTApCiAgICBvLnUzMihtQXQpOyBvLnUzMihyZXNpblR5cGUubGVuZ3RoKTsgby51MzIodEF0KTsgby51MzIocmVzaW5OYW1lLmxlbmd0aCk7IG8udTMyKG5BdCk7IG8udTMyKG1hY2hpbmUubGVuZ3RoKTsKICAgIG8uZjMyKG51bShycy5kZW5zaXR5LCAxLjEpKTsgby51MzIoMCk7CiAgICBvLmJ5dGVzKG1hY2hpbmUpOyBvLmJ5dGVzKHJlc2luVHlwZSk7IG8uYnl0ZXMocmVzaW5OYW1lKTsKICB9OwoKICBpZiAoIWVuY3J5cHRlZCkgewogICAgLy8gPT09PT09PT09PT09PT09PT0gU1RZTEUgUCA9PT09PT09PT09PT09PT09PQogICAgY29uc3QgbGFyZ2VSZWMgPSBIRUFERVJfUCwgc21hbGxSZWMgPSBsYXJnZVJlYyArIDMyICsgbGFyZ2UubGVuZ3RoOwogICAgY29uc3QgcGFyYW1BdCA9IHNtYWxsUmVjICsgMzIgKyBzbWFsbC5sZW5ndGg7CiAgICBjb25zdCBzbGljZXJBdCA9IHBhcmFtQXQgKyBQQVJBTV9TSVpFOwogICAgY29uc3QgYWZ0ZXJTbGljZXIgPSBzbGljZXJBdCArIFNMSUNFUl9TSVpFICsgbWFjaGluZS5sZW5ndGg7CiAgICBjb25zdCBkaXNjbEF0ID0gYWZ0ZXJTbGljZXIsIHY0QXQgPSB2NHBsdXMgPyBkaXNjbEF0ICsgRElTQ0xBSU1FUl9MRU4gOiAwOwogICAgY29uc3QgcmVzaW5BdCA9IHZlciA9PT0gNSA/IHY0QXQgKyBWNF9TSVpFIDogMDsKICAgIGNvbnN0IHRhYmxlQXQgPSAodmVyID09PSA1ID8gcmVzaW5BdCArIHJlc2luRml4ZWRMZW4gOiB2NHBsdXMgPyB2NEF0ICsgVjRfU0laRSA6IGFmdGVyU2xpY2VyKTsKICAgIGNvbnN0IGRhdGFBdCA9IHRhYmxlQXQgKyBjb3VudCAqIEVOVFJZX1NJWkU7CiAgICBjb25zdCBwb3MgPSBbXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSTEUgYnl0ZSBwb3NpdGlvbiBvZiBlYWNoIGxheWVyCiAgICBsZXQgYXQgPSBkYXRhQXQ7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsgcG9zLnB1c2goYXQgKyBFWFRfU0laRSk7IGF0ICs9IEVYVF9TSVpFICsgYmxvYnNbaV0ubGVuZ3RoOyB9CiAgICBpZiAoYXQgPj0gMHgxMDAwMDAwMDApIHRocm93IG5ldyBFcnJvcignY3RiMzogdGhlIGZpbGUgd291bGQgcGFzcyA0IEdpQiAocGFnZXMgYXJlIG5vdCB3cml0dGVuKScpOyAgIC8vIFNQRUMtR0FQIDE2CiAgICBjb25zdCBvID0gbmV3IE91dChhdCk7CiAgICAvLyBoZWFkZXIgKDB4NzApLCBzcGVjIDMKICAgIG8udTMyKHZlciA9PT0gMyA/IDB4MTJmZDAwODYgOiAweDEyZmQwMTA2KTsgby51MzIodmVyKTsKICAgIG8uZjMyKHBsYXRYKTsgby5mMzIocGxhdFkpOyBvLmYzMihwbGF0Wik7IG8uemVybyg4KTsKICAgIG8uZjMyKGNvdW50ICogbGF5ZXJIKTsgby5mMzIobGF5ZXJIKTsgby5mMzIoZXhwbyk7IG8uZjMyKGJFeHBvKTsgby5mMzIob2ZmKTsKICAgIG8udTMyKGJvdHRvbU4pOyBvLnUzMih3KTsgby51MzIoaCk7CiAgICBvLnUzMihsYXJnZVJlYyk7IG8udTMyKHRhYmxlQXQpOyBvLnUzMihjb3VudCk7IG8udTMyKHNtYWxsUmVjKTsgby51MzIoc2Vjb25kcyk7CiAgICBvLnUzMihwcm9qKTsgby51MzIocGFyYW1BdCk7IG8udTMyKFBBUkFNX1NJWkUpOyBvLnUzMigxKTsKICAgIG8udTE2KHB3bSk7IG8udTE2KHB3bSk7IG8udTMyKHNlZWQpOyBvLnUzMihzbGljZXJBdCk7IG8udTMyKFNMSUNFUl9TSVpFKTsKICAgIC8vIHByZXZpZXdzOiAzMi1ieXRlIHJlY29yZCArIGRhdGEgKHNwZWMgMi40KQogICAgby51MzIoTEFSR0VbMF0pOyBvLnUzMihMQVJHRVsxXSk7IG8udTMyKGxhcmdlUmVjICsgMzIpOyBvLnUzMihsYXJnZS5sZW5ndGgpOyBvLnplcm8oMTYpOyBvLmJ5dGVzKGxhcmdlKTsKICAgIG8udTMyKFNNQUxMWzBdKTsgby51MzIoU01BTExbMV0pOyBvLnUzMihzbWFsbFJlYyArIDMyKTsgby51MzIoc21hbGwubGVuZ3RoKTsgby56ZXJvKDE2KTsgby5ieXRlcyhzbWFsbCk7CiAgICAvLyBwcmludC1wYXJhbWV0ZXIgYmxvY2sgKDYwKSwgc3BlYyA0LjE7IHY0KyBsaWZ0ID0gc3RhZ2UgMSArIHN0YWdlIDIKICAgIG8uZjMyKGJMaWZ0ICsgUzIpOyBvLmYzMihiTGlmdFYpOyBvLmYzMihsaWZ0ICsgUzIpOyBvLmYzMihsaWZ0Vik7IG8uZjMyKHJldFYpOwogICAgby5mMzIodm9sdW1lKTsgby5mMzIoZ3JhbXMpOyBvLmYzMihjb3N0KTsgby5mMzIob2ZmKTsgby5mMzIob2ZmKTsgby51MzIoYm90dG9tTik7IG8uemVybygxNik7CiAgICAvLyBzbGljZXIgYmxvY2sgKDc2KSArIG1hY2hpbmUgbmFtZSwgc3BlYyA0LjIKICAgIG8uZjMyKFMyKTsgby5mMzIoUzIpOyBvLmYzMihTMik7IG8uZjMyKFMyKTsgby5mMzIoUzIpOyBvLmYzMihTMik7IG8uZjMyKFJFU1QpOwogICAgby51MzIoc2xpY2VyQXQgKyBTTElDRVJfU0laRSk7IG8udTMyKG1hY2hpbmUubGVuZ3RoKTsKICAgIG8udTgoYWFGbGFnKTsgby56ZXJvKDIpOyBvLnU4KHBlckxheWVyRmxhZyk7IG8udTMyKG1pbnV0ZXMpOyBvLnUzMihhYUxldmVsKTsgby51MzIoc3dWZXJzaW9uKTsKICAgIG8uZjMyKFJFU1QpOyBvLmYzMihSRVNUKTsgby51MzIoUkVTVCk7IG8udTMyKHY0QXQpOyBvLnplcm8oOCk7CiAgICBvLmJ5dGVzKG1hY2hpbmUpOwogICAgaWYgKHY0cGx1cykgewogICAgICBvLmJ5dGVzKGRpc2NsYWltZXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlYyA0LjQ6IGRpc2NsYWltZXIgZmlyc3QsIHRoZW4gdGhlIGJsb2NrCiAgICAgIG8uZjMyKGJSZXRWKTsgby5mMzIoUzIpOyBvLnUzMigwKTsgby5mMzIoNCk7IG8udTMyKDApOyBvLmYzMig0KTsKICAgICAgby5mMzIoUkVTVCk7IG8uZjMyKFJFU1QpOyBvLmYzMihSRVNUKTsgby5mMzIoUzIpOwogICAgICBvLmYzMigwKTsgby51MzIoMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU1BFQy1HQVAgNAogICAgICBvLnUzMig1KTsgby51MzIoY291bnQgLSAxKTsgby56ZXJvKDE2KTsKICAgICAgby51MzIoZGlzY2xBdCk7IG8udTMyKERJU0NMQUlNRVJfTEVOKTsgby51MzIocmVzaW5BdCk7IG8uemVybygzODApOwogICAgICBpZiAodmVyID09PSA1KSBwdXRSZXNpbihvLCByZXNpbkF0KTsKICAgIH0KICAgIC8vIGxheWVyIHRhYmxlICgzNiBlYWNoKSwgdGhlbiBwZXIgbGF5ZXI6IDg0LWJ5dGUgZXh0ZW5zaW9uICsgUkxFIGJ5dGVzCiAgICBjb25zdCBlbnRyeSA9IChpKSA9PiB7CiAgICAgIGNvbnN0IEwgPSBsYXkoaSk7CiAgICAgIHJldHVybiBbTC56LCBMLmV4cCwgTC5vZmYsIHBvc1tpXSwgYmxvYnNbaV0ubGVuZ3RoLCAwLCBFWFRfU0laRV07CiAgICB9OwogICAgY29uc3QgcHV0RW50cnkgPSAoZSkgPT4geyBvLmYzMihlWzBdKTsgby5mMzIoZVsxXSk7IG8uZjMyKGVbMl0pOyBvLnUzMihlWzNdKTsgby51MzIoZVs0XSk7IG8udTMyKGVbNV0pOyBvLnUzMihlWzZdKTsgby56ZXJvKDgpOyB9OwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSBwdXRFbnRyeShlbnRyeShpKSk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgY29uc3QgTCA9IGxheShpKTsKICAgICAgcHV0RW50cnkoZW50cnkoaSkpOwogICAgICBvLnUzMihFWFRfU0laRSArIGJsb2JzW2ldLmxlbmd0aCk7CiAgICAgIG8uZjMyKEwubGlmdCArIFMyKTsgby5mMzIoTC5saWZ0Vik7IG8uZjMyKHY0cGx1cyA/IFMyIDogMCk7IG8uZjMyKHY0cGx1cyA/IFMyIDogMCk7CiAgICAgIG8uZjMyKEwucmV0Vik7IG8uZjMyKHY0cGx1cyA/IFMyIDogMCk7IG8uZjMyKHY0cGx1cyA/IFMyIDogMCk7CiAgICAgIG8uZjMyKHY0cGx1cyA/IFJFU1QgOiAwKTsgby5mMzIodjRwbHVzID8gUkVTVCA6IDApOyBvLmYzMih2NHBsdXMgPyBSRVNUIDogMCk7CiAgICAgIG8uZjMyKHB3bSk7CiAgICAgIG8uYnl0ZXMoYmxvYnNbaV0pOwogICAgfQogICAgaWYgKG8ubyAhPT0gby5iLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdjdGIzOiBpbnRlcm5hbCBzaXplIG1pc21hdGNoJyk7CiAgICByZXR1cm4gby5iOwogIH0KCiAgLy8gPT09PT09PT09PT09PT09PT0gU1RZTEUgRSA9PT09PT09PT09PT09PT09PQogIGNvbnN0IGxhcmdlUmVjID0gSEVBREVSX0UgKyBTRVRUSU5HU19FLCBzbWFsbFJlYyA9IGxhcmdlUmVjICsgMTYgKyBsYXJnZS5sZW5ndGg7CiAgY29uc3QgbWFjaGluZUF0ID0gc21hbGxSZWMgKyAxNiArIHNtYWxsLmxlbmd0aDsKICBjb25zdCBkaXNjbEF0ID0gbWFjaGluZUF0ICsgbWFjaGluZS5sZW5ndGg7CiAgY29uc3QgcmVzaW5BdCA9IHZlciA9PT0gNSA/IGRpc2NsQXQgKyBESVNDTEFJTUVSX0xFTiA6IDA7CiAgY29uc3QgdGFibGVBdCA9IGRpc2NsQXQgKyBESVNDTEFJTUVSX0xFTiArIHJlc2luRml4ZWRMZW47CiAgY29uc3QgZGF0YUF0ID0gdGFibGVBdCArIGNvdW50ICogRU5UUllfRTsKICBjb25zdCByZWNBdCA9IFtdOwogIGxldCBhdCA9IGRhdGFBdDsKICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsgcmVjQXQucHVzaChhdCk7IGF0ICs9IFJFQ19FICsgYmxvYnNbaV0ubGVuZ3RoOyB9CiAgaWYgKGF0ID49IDB4MTAwMDAwMDAwKSB0aHJvdyBuZXcgRXJyb3IoJ2N0YjM6IHRoZSBmaWxlIHdvdWxkIHBhc3MgNCBHaUIgKHBhZ2VzIGFyZSBub3Qgd3JpdHRlbiknKTsKICBjb25zdCBtYXJrZXJBdCA9IGF0LCBzaWdBdCA9IG1hcmtlckF0ICsgKHZlciA9PT0gNSA/IDggOiAwKTsKICBjb25zdCB0b3RhbCA9IHNpZ0F0ICsgMzIgKyA0OwogIGNvbnN0IG8gPSBuZXcgT3V0KHRvdGFsKTsKICBvLnplcm8oSEVBREVSX0UgKyBTRVRUSU5HU19FKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbGxlZCBiZWxvdwogIG8udTMyKExBUkdFWzBdKTsgby51MzIoTEFSR0VbMV0pOyBvLnUzMihsYXJnZVJlYyArIDE2KTsgby51MzIobGFyZ2UubGVuZ3RoKTsgby5ieXRlcyhsYXJnZSk7CiAgby51MzIoU01BTExbMF0pOyBvLnUzMihTTUFMTFsxXSk7IG8udTMyKHNtYWxsUmVjICsgMTYpOyBvLnUzMihzbWFsbC5sZW5ndGgpOyBvLmJ5dGVzKHNtYWxsKTsKICBvLmJ5dGVzKG1hY2hpbmUpOyBvLmJ5dGVzKGRpc2NsYWltZXIpOwogIGlmICh2ZXIgPT09IDUpIHB1dFJlc2luKG8sIHJlc2luQXQpOwogIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeyBvLnUzMihyZWNBdFtpXSk7IG8udTMyKDApOyBvLnUzMihSRUNfRSk7IG8udTMyKDApOyB9CiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICBjb25zdCBMID0gbGF5KGkpOwogICAgby51MzIoUkVDX0UpOyBvLmYzMihMLnopOyBvLmYzMihMLmV4cCk7IG8uZjMyKEwub2ZmKTsKICAgIG8udTMyKHJlY0F0W2ldICsgUkVDX0UpOyBvLnUzMigwKTsgby51MzIoYmxvYnNbaV0ubGVuZ3RoKTsgby51MzIoMCk7CiAgICBvLnUzMigwKTsgby51MzIoMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBRVMtY292ZXJlZCBvZmZzZXQsIGxlbmd0aDogU1BFQy1HQVAgNwogICAgby5mMzIoTC5saWZ0ICsgUzIpOyBvLmYzMihMLmxpZnRWKTsgby5mMzIoUzIpOyBvLmYzMihTMik7CiAgICBvLmYzMihMLnJldFYpOyBvLmYzMihTMik7IG8uZjMyKFMyKTsKICAgIG8uZjMyKFJFU1QpOyBvLmYzMihSRVNUKTsgby5mMzIoUkVTVCk7IG8uZjMyKHB3bSk7IG8udTMyKDApOwogICAgby5ieXRlcyhibG9ic1tpXSk7CiAgfQogIGlmICh2ZXIgPT09IDUpIHsgby51MzIoTUFSS0VSX0EpOyBvLnUzMigwKTsgfQogIG8uYnl0ZXMoYXdhaXQgc2lnbmF0dXJlRm9yKFNJR19TRUVEKSk7CiAgby51MzIoTUFSS0VSX0IpOwogIGlmIChvLm8gIT09IHRvdGFsKSB0aHJvdyBuZXcgRXJyb3IoJ2N0YjM6IGludGVybmFsIHNpemUgbWlzbWF0Y2gnKTsKCiAgLy8gc2V0dGluZ3MgYmxvY2sgKDI4OCksIHNwZWMgNi4yOiBidWlsdCBieSBvZmZzZXQsIHRoZW4gQUVTLWVuY3J5cHRlZAogIGNvbnN0IHNiID0gbmV3IE91dChTRVRUSU5HU19FKTsKICBzYi51MzIoU0lHX1NFRUQpOyBzYi51MzIoMCk7CiAgc2IudTMyKHRhYmxlQXQpOyBzYi5mMzIocGxhdFgpOyBzYi5mMzIocGxhdFkpOyBzYi5mMzIocGxhdFopOyBzYi56ZXJvKDgpOwogIHNiLmYzMihjb3VudCAqIGxheWVySCk7IHNiLmYzMihsYXllckgpOyBzYi5mMzIoZXhwbyk7IHNiLmYzMihiRXhwbyk7IHNiLmYzMihvZmYpOwogIHNiLnUzMihib3R0b21OKTsgc2IudTMyKHcpOyBzYi51MzIoaCk7IHNiLnUzMihjb3VudCk7IHNiLnUzMihsYXJnZVJlYyk7IHNiLnUzMihzbWFsbFJlYyk7IHNiLnUzMihzZWNvbmRzKTsgc2IudTMyKHByb2opOwogIHNiLmYzMihiTGlmdCArIFMyKTsgc2IuZjMyKGJMaWZ0Vik7IHNiLmYzMihsaWZ0ICsgUzIpOyBzYi5mMzIobGlmdFYpOyBzYi5mMzIocmV0Vik7CiAgc2IuZjMyKHZvbHVtZSk7IHNiLmYzMihncmFtcyk7IHNiLmYzMihjb3N0KTsgc2IuZjMyKG9mZik7CiAgc2IudTMyKDEpOyBzYi51MTYocHdtKTsgc2IudTE2KHB3bSk7IHNiLnUzMihzZWVkKTsKICBzYi5mMzIoUzIpOyBzYi5mMzIoUzIpOyBzYi5mMzIoUzIpOyBzYi5mMzIoUzIpOyBzYi5mMzIoUzIpOyBzYi5mMzIoUzIpOyBzYi5mMzIoUkVTVCk7CiAgc2IudTMyKG1hY2hpbmVBdCk7IHNiLnUzMihtYWNoaW5lLmxlbmd0aCk7CiAgc2IudTgoYWFGbGFnKTsgc2IuemVybygyKTsgc2IudTgocGVyTGF5ZXJGbGFnKTsgc2IudTMyKG1pbnV0ZXMpOyBzYi51MzIoYWFMZXZlbCk7CiAgc2IuZjMyKFJFU1QpOyBzYi5mMzIoUkVTVCk7IHNiLnUzMihSRVNUKTsKICBzYi5mMzIoYlJldFYpOyBzYi5mMzIoUzIpOyBzYi51MzIoMCk7IHNiLmYzMig0KTsgc2IudTMyKDApOyBzYi5mMzIoNCk7CiAgc2IuZjMyKFJFU1QpOyBzYi5mMzIoUkVTVCk7IHNiLmYzMihSRVNUKTsgc2IuZjMyKFMyKTsKICBzYi51MzIoMCk7IHNiLnUzMigwKTsgc2IudTMyKDQpOyBzYi51MzIoY291bnQgLSAxKTsgc2IuemVybygxNik7CiAgc2IudTMyKGRpc2NsQXQpOyBzYi51MzIoRElTQ0xBSU1FUl9MRU4pOyBzYi51MzIoMCk7IHNiLnUzMihyZXNpbkF0KTsgc2IuemVybyg4KTsKICBpZiAoc2IubyAhPT0gU0VUVElOR1NfRSkgdGhyb3cgbmV3IEVycm9yKCdjdGIzOiBpbnRlcm5hbCBzZXR0aW5ncyBzaXplIG1pc21hdGNoJyk7CiAgY29uc3QgZW5jU2V0dGluZ3MgPSBhd2FpdCBhZXNFbmNyeXB0QmxvY2tzKHNiLmIpOwogIGNvbnN0IGhkID0gbmV3IE91dChIRUFERVJfRSk7CiAgaGQudTMyKDB4MTJmZDAxMDcpOyBoZC51MzIoU0VUVElOR1NfRSk7IGhkLnUzMihIRUFERVJfRSk7IGhkLnUzMigwKTsgaGQudTMyKHZlcik7IGhkLnUzMigzMik7IGhkLnUzMihzaWdBdCk7IGhkLnUzMigwKTsKICBoZC51MTYoMSk7IGhkLnUxNigxKTsgaGQudTMyKDApOyBoZC51MzIoNDIpOyBoZC51MzIoMCk7CiAgby5iLnNldChoZC5iLCAwKTsgby5iLnNldChlbmNTZXR0aW5ncywgSEVBREVSX0UpOwogIHJldHVybiBvLmI7Cn0K"},"signature":{"alg":"Ed25519","key":"cc-addons-2026-1","sig":"Izs4YFbITOwjTj6xplzy0QSs8zldD5ty+4BemR4nLO7KmNy3UdjNYYn+ckHcaSooyHeMIhTa++vnGJTl/XbsAw=="}}