My43LjIKMDNmMGFiMGY5OTg1NzYyODk4MGM5Mzg5NmUwMTk5ZTQzY2RkYjdhOQoECG86GVNhc3M6OlRyZWU6OlJvb3ROb2RlDDoOQGNoaWxkcmVuWxBvOhxTYXNzOjpUcmVlOjpDb21tZW50Tm9kZQw6C0B2YWx1ZVsGSSIChQEvKi8gVmFsaWRhdGlvbgogKi8gPT09PT09PT09PQogKi8gRWFjaCBhcmd1bWVudCB0byBTdSBoYXMgYSBzaW5nbGUgY2Fub25pY2FsIHN5bnRheC4KICovIFRoZXNlIHZhbGlkYXRpb24gZnVuY3Rpb25zIGNoZWNrIHRvIGVuc3VyZQogKi8gdGhhdCBlYWNoIGFyZ3VtZW50IGlzIHZhbGlkLAogKi8gaW4gb3JkZXIgdG8gcHJvdmlkZSB1c2VmdWwgZXJyb3JzCiAqLyBiZWZvcmUgYXR0ZW1wdGluZyB0byBjYWxjdWxhdGUgdGhlIHJlc3VsdHMvCiAqLwogKi8gQGdyb3VwIHgtdmFsaWRhdGlvbgogKi8KICovIEBzZWUgc3UtdmFsaWQtY29sdW1ucwogKi8gQHNlZSBzdS12YWxpZC1ndXR0ZXJzCiAqLyBAc2VlIHN1LXZhbGlkLXNwcmVhZAogKi8gQHNlZSBzdS12YWxpZC1sb2NhdGlvbiAqLwY6BkVUOgpAdHlwZToLc2lsZW50OwZbADoOQGZpbGVuYW1lMDoNQG9wdGlvbnN7ADoKQGxpbmVpBjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmkGOgxAb2Zmc2V0aQY6DUBlbmRfcG9zbzsSBzsOaRM7E2kgOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MGOwlUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CUY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEZvOwcMOwhbBkkiAnwBLyogVmFsaWQgU3BhbgogKiAtLS0tLS0tLS0tCiAqLyBDaGVjayB0aGF0IHRoZSBgc3BhbmAgYXJndW1lbnQKICovIGlzIGEgbnVtYmVyLCBsZW5ndGgsIG9yIGNvbHVtbi1saXN0CiAqLwogKi8gQGdyb3VwIHgtdmFsaWRhdGlvbgogKi8KICovIEBwYXJhbSB7bnVtYmVyIHwgbGlzdH0gJHNwYW4gLQogKi8gICBOdW1iZXIgb2YgY29sdW1ucywgb3IgbGVuZ3RoIG9mIHNwYW4KICovCiAqLyBAcmV0dXJuIHtudW1iZXIgfCBsaXN0fSAtCiAqLyAgIFZhbGlkYXRlZCBgJHNwYW5gIG51bWJlciwgbGVuZ3RoLCBvciBjb2x1bW5zIGxpc3QKICovCiAqLyBAdGhyb3cKICovICAgd2hlbiBzcGFuIHZhbHVlIGlzIG5vdCBhIG51bWJlciwgb3IgdmFsaWQgY29sdW1uIGxpc3QgKi8GOwlUOwo7CzsGWwA7DDA7DUALOw5pFzsPbzsQCTsRbzsSBzsOaRc7E2kGOxRvOxIHOw5pJTsTaUE7FUAPOxZAEG86HVNhc3M6OlRyZWU6OkZ1bmN0aW9uTm9kZQ46CkBuYW1lSSISc3UtdmFsaWQtc3BhbgY7CVQ6CkBhcmdzWwZbB286IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOx5JIglzcGFuBjsJVDoWQHVuZGVyc2NvcmVkX25hbWVJIglzcGFuBjsJVDsOaSc7D287EAk7EW87Egc7DmknOxNpCDsUbzsSBzsOaSc7E2kNOxVADzsWQBA7DEAPOw1ACzA6C0BzcGxhdDA7BlsJbzodU2Fzczo6VHJlZTo6VmFyaWFibGVOb2RlDjseSSIJdHlwZQY7CVQ6CkBleHBybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDseSSIMdHlwZS1vZgY7CVQ7H1sGbzsgCzseSSIJc3BhbgY7CVQ7IUkiCXNwYW4GOwlUOw5pKTsPbzsQCTsRbzsSBzsOaSk7E2kXOxRvOxIHOw5pKTsTaRw7FUAPOxZAEDsMQA87DUALOg5Aa2V5d29yZHNvOh5TYXNzOjpVdGlsOjpOb3JtYWxpemVkTWFwBzoRQGtleV9zdHJpbmdzewA6CUBtYXB7ADsiMDoRQGt3YXJnX3NwbGF0MDsOaSk7D287EAk7EW87Egc7DmkpOxNpDzsUbzsSBzsOaSk7E2kdOxVADzsWQBA7DEAPOw1ACzoNQGd1YXJkZWQwOgxAZ2xvYmFsMDsGWwA7DDA7DUALOw5pKTsPbzsQCTsRbzsSBzsOaSk7E2kJOxRvOxIHOw5pKTsTaR07FUAPOxZAEHU6F1Nhc3M6OlRyZWU6OklmTm9kZQJrCgQIWwhvOiJTYXNzOjpTY3JpcHQ6OlRyZWU6Ok9wZXJhdGlvbgw6DkBvcGVyYW5kMW86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOgpAbmFtZUkiCXR5cGUGOgZFVDoWQHVuZGVyc2NvcmVkX25hbWVJIgl0eXBlBjsJVDoKQGxpbmVpKjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7C2kqOgxAb2Zmc2V0aQ06DUBlbmRfcG9zbzsPBzsLaSo7EGkSOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MGOwlUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CUY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUANOg1Ab3B0aW9uc3sAOg5Ab3BlcmFuZDJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkxpdGVyYWwJOgtAdmFsdWVvOiBTYXNzOjpTY3JpcHQ6OlZhbHVlOjpTdHJpbmcJOx5JIgtudW1iZXIGOwlUOxtAEzoKQHR5cGU6C3N0cmluZzoiQGRlcHJlY2F0ZWRfaW50ZXJwX2VxdWl2YWxlbnQwOwtpKjsMbzsNCTsObzsPBzsLaSo7EGkWOxFvOw8HOwtpKjsQaR47EkANOxNADjsaQA06DkBvcGVyYXRvcjoHZXE7C2kqOwxvOw0JOw5ACzsRbzsPBzsLaSo7EGkeOxJADTsTQA47GkANOxtAE3U6F1Nhc3M6OlRyZWU6OklmTm9kZQINBgQIWwhvOiJTYXNzOjpTY3JpcHQ6OlRyZWU6Ok9wZXJhdGlvbgw6DkBvcGVyYW5kMW87AAw7Bm86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOgpAbmFtZUkiCXR5cGUGOgZFVDoWQHVuZGVyc2NvcmVkX25hbWVJIgl0eXBlBjsJVDoKQGxpbmVpLDoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7C2ksOgxAb2Zmc2V0aRQ6DUBlbmRfcG9zbzsPBzsLaSw7EGkZOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MGOwlUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9f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E2kXOxVADzsWQBA7DEAPOw1AC287MQk7CG86HlNhc3M6OlNjcmlwdDo6VmFsdWU6OkJvb2wIOwhGOw1ACzsPbzsQCTsRbzsSBzsOaRI7E2kkOxRvOxIHOw5pEjsTaSk7FUkieS9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3V0aWxpdGllcy5zY3NzBjsJVDsWQBA7DmlLOw9vOxAJOxFvOxIHOw5pSzsTaRk7FG87Egc7DmlLOxNpHjsVQA87FkAQOwxADzsiMDsGWwt1Oy4CYRAECFsIbzoiU2Fzczo6U2NyaXB0OjpUcmVlOjpPcGVyYXRpb24MOg5Ab3BlcmFuZDFvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkZ1bmNhbGwPOg5AY2FsbGFibGUwOgpAbmFtZUkiDHR5cGUtb2YGOgZFVDoKQGFyZ3NbBm86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwlJIgxjb2x1bW5zBjsKVDoWQHVuZGVyc2NvcmVkX25hbWVJIgxjb2x1bW5zBjsKVDoKQGxpbmVpTToSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmlNOgxAb2Zmc2V0aRU6DUBlbmRfcG9zbzsSBzsOaU07E2kdOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MGOwpUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CkY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwpUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUAQOg1Ab3B0aW9uc3sAOg5Aa2V5d29yZHNvOh5TYXNzOjpVdGlsOjpOb3JtYWxpemVkTWFwBzoRQGtleV9zdHJpbmdzewA6CUBtYXB7ADoLQHNwbGF0MDoRQGt3YXJnX3NwbGF0MDsOaU07D287EAk7EW87Egc7DmlNOxNpDTsUbzsSBzsOaU07E2keOxVAEDsWQBE7HUAQOx5AFjoOQG9wZXJhbmQybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6U3RyaW5nCTsnSSIJbGlzdAY7ClQ7HkAWOgpAdHlwZToLc3RyaW5nOiJAZGVwcmVjYXRlZF9pbnRlcnBfZXF1aXZhbGVudDA7DmlNOw9vOxAJOxFvOxIHOw5pTTsTaSI7FG87Egc7DmlNOxNpKDsVQBA7FkAROx1AEDoOQG9wZXJhdG9yOgdlcTsOaU07D287EAk7EUAbOxRvOxIHOw5pTTsTaSg7FUAQOxZAETsdQBA7HkAWMFsIbzodU2Fzczo6VHJlZTo6VmFyaWFibGVOb2RlDjsJSSIJZmFpbAY7ClQ6CkBleHBybzsmCTsnbzoeU2Fzczo6U2NyaXB0OjpWYWx1ZTo6Qm9vbAg7J0Y7HkAWOw9vOxAJOxFvOxIHOw5pEjsTaSQ7FG87Egc7DmkSOxNpKTsVSSJ5L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fdXRpbGl0aWVzLnNjc3MGOwpUOxZAETsOaU47D287EAk7EW87Egc7DmlOOxNpETsUbzsSBzsOaU47E2kWOxVAEDsWQBE7HUAQOg1AZ3VhcmRlZDA6DEBnbG9iYWwwOg5AY2hpbGRyZW5bADsdMDseQBY7DmlOOw9vOxAJOxFvOxIHOw5pTjsTaQs7FG87Egc7DmlOOxNpFjsVQBA7FkARbzoZU2Fzczo6VHJlZTo6RWFjaE5vZGUNOgpAdmFyc1sGSSIIY29sBjsKVDoKQGxpc3RvOwwLOwlJIgxjb2x1bW5zBjsKVDsNSSIMY29sdW1ucwY7ClQ7DmlQOw9vOxAJOxFvOxIHOw5pUDsTaRg7FG87Egc7DmlQOxNpIDsVQBA7FkAROx1AEDseQBY7M1sGdToXU2Fzczo6VHJlZTo6SWZOb2RlAusFBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDoKQG5hbWVJIgx0eXBlLW9mBjoGRVQ6CkBhcmdzWwZvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzsJSSIIY29sBjsKVDoWQHVuZGVyc2NvcmVkX25hbWVJIghjb2wGOwpUOgpAbGluZWlROhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsOaVE6DEBvZmZzZXRpGToNQGVuZF9wb3NvOxIHOw5pUTsTaR06CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fc3UtdmFsaWRhdGUuc2NzcwY7ClQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7ClQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQBA6DUBvcHRpb25zewA6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOw5pUTsPbzsQCTsRbzsSBzsOaVE7E2kROxRvOxIHOw5pUTsTaR47FUAQOxZAETsdQBA7HkAWOg5Ab3BlcmFuZDJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkxpdGVyYWwJOgtAdmFsdWVvOiBTYXNzOjpTY3JpcHQ6OlZhbHVlOjpTdHJpbmcJOydJIgtudW1iZXIGOwpUOx5AFjoKQHR5cGU6C3N0cmluZzoiQGRlcHJlY2F0ZWRfaW50ZXJwX2VxdWl2YWxlbnQwOw5pUTsPbzsQCTsRbzsSBzsOaVE7E2kiOxRvOxIHOw5pUTsTaSo7FUAQOxZAETsdQBA6DkBvcGVyYXRvcjoIbmVxOw5pUTsPbzsQCTsRQBs7FG87Egc7DmlROxNpKjsVQBA7FkAROx1AEDseQBYwWwZvOh1TYXNzOjpUcmVlOjpWYXJpYWJsZU5vZGUOOwlJIglmYWlsBjsKVDoKQGV4cHJvOyYJOydvOh5TYXNzOjpTY3JpcHQ6OlZhbHVlOjpCb29sCDsnVDseQBY7D287EAk7EW87Egc7DmkrOxNpLDsUbzsSBzsOaSs7E2kwOxVJIn0vTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvbWFnbmlmaWMtcG9wdXAvX3NldHRpbmdzLnNjc3MGOwpUOxZAETsOaVI7D287EAk7EW87Egc7DmlSOxNpFTsUbzsSBzsOaVI7E2kZOxVAEDsWQBE7HUAQOg1AZ3VhcmRlZDA6DEBnbG9iYWwwOg5AY2hpbGRyZW5bADsdMDseQBY7DmlSOw9vOxAJOxFvOxIHOw5pUjsTaQ87FG87Egc7DmlSOxNpGTsVQBA7FkAROx0wOx5AFjsOaVA7D287EAk7EW87Egc7DmlQOxNpCjsUbzsSBzsOaVA7E2khOxVAEDsWQBE6EkBoYXNfY2hpbGRyZW5UdTs3ApcDBAhbCG86J1Nhc3M6OlNjcmlwdDo6VHJlZTo6VW5hcnlPcGVyYXRpb24LOg1Ab3BlcmFuZG86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOgpAbmFtZUkiCWZhaWwGOgZFVDoWQHVuZGVyc2NvcmVkX25hbWVJIglmYWlsBjsJVDoKQGxpbmVpVjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7C2lWOgxAb2Zmc2V0aRI6DUBlbmRfcG9zbzsPBzsLaVY7EGkXOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MGOwlUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CUY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUANOg1Ab3B0aW9uc3sAOg5Ab3BlcmF0b3I6CG5vdDsLaVY7DG87DQk7Dm87Dwc7C2lWOxBpEjsRbzsPBzsLaVY7EGkXOxJADTsTQA47GkANOxtAEzBbBm86G1Nhc3M6OlRyZWU6OlJldHVybk5vZGULOgpAZXhwcm87Bws7CEkiDGNvbHVtbnMGOwlUOwpJIgxjb2x1bW5zBjsJVDsLaVc7DG87DQk7Dm87Dwc7C2lXOxBpFDsRbzsPBzsLaVc7EGkcOxJADTsTQA47GkANOxtAEzoOQGNoaWxkcmVuWwA7GjA7G0ATOwtpVzsMbzsNCTsObzsPBzsLaVc7EGkMOxFvOw8HOwtpVzsQaRw7EkANOxNADm87Bww7CFsGSSIZLyogU2lsZW50IEZhaWx1cmUgKi8GOwlUOwo7CzsGWwA7DDA7DUALOw5pWzsPbzsQCTsRbzsSBzsOaVs7E2kIOxRvOxIHOw5pWzsTaRk7FUAPOxZAEHU7LgJYAwQIWwhvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzoKQG5hbWVJIhNzaWxlbnQtZmFpbHVyZQY6BkVUOhZAdW5kZXJzY29yZWRfbmFtZUkiE3NpbGVudF9mYWlsdXJlBjsHVDoKQGxpbmVpXDoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7CWlcOgxAb2Zmc2V0aQw6DUBlbmRfcG9zbzsNBzsJaVw7DmkbOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9zdXN5L3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MGOwdUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7B0Y6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwdUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUAMOg1Ab3B0aW9uc3sAMFsGbzobU2Fzczo6VHJlZTo6UmV0dXJuTm9kZQs6CkBleHBybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzoeU2Fzczo6U2NyaXB0OjpWYWx1ZTo6TnVsbAc7HTA7GUASOwlpXTsKbzsLCTsMbzsNBzsJaV07DmkSOw9vOw0HOwlpXTsOaRY7EEAMOxFADTsYQAw6DkBjaGlsZHJlblsAOxgwOxlAEjsJaV07Cm87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aW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3Ivc3VzeS9zdXN5L19zdS12YWxpZGF0ZS5zY3NzBjsJVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVADToNQG9wdGlvbnN7ADoOQG9wZXJhbmQybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6U3RyaW5nCTseSSILbnVtYmVyBjsJVDsbQBM6CkB0eXBlOgtzdHJpbmc6IkBkZXByZWNhdGVkX2ludGVycF9lcXVpdmFsZW50MDsLaX07DG87DQk7Dm87Dwc7C2l9OxBpFjsRbzsPBzsLaX07EGkeOxJADTsTQA47GkANOg5Ab3BlcmF0b3I6B2VxOwtpfTsMbzsNCTsOQAs7EW87Dwc7C2l9OxBpHjsSQA07E0AOOxpADTsbQBMwWwZvOhtTYXNzOjpUcmVlOjpSZXR1cm5Ob2RlCzoKQGV4cHJvOwcLOwhJIgxndXR0ZXJzBjsJVDsKSSIMZ3V0dGVycwY7CVQ7C2l+OwxvOw0JOw5vOw8HOwtpfjsQaRI7EW87Dwc7C2l+OxBpGjsSQA07E0AOOxpADTsbQBM6DkBjaGlsZHJlblsAOxowOxtAEzsLaX47DG87DQk7Dm87Dwc7C2l+OxBpCjsRbzsPBzsLaX47EGkaOxJADTsTQA5vOyMOOx5JIgthY3R1YWwGOwlUOyRvOy8MOzBvOzEJOwhvOzIJOwhJIgZbBjsJVDsNQAs7CjszOzQwOw5pAXw7D287EAk7EW87Egc7DmkBfDsTaRE7FG87Egc7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OxZAEG87HQ47HkkiFHN1LXZhbGlkLXNwcmVhZAY7CVQ7H1sGWwdvOyALOx5JIgtzcHJlYWQGOwlUOyFJIgtzcHJlYWQGOwlUOw5pAZU7D287EAk7EW87Egc7DmkBlTsTaQg7FG87Egc7DmkBlTsTaQ87FUAPOxZAEDsMQA87DUALMDsiMDsGWwh1Oy4C+wUECFsIbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDoKQG5hbWVJIgppbmRleAY6BkVUOgpAYXJnc1sHbzokU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXN0TGl0ZXJhbAw6DkBlbGVtZW50c1sIbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6TnVtYmVyCjsNaQA6DUBvcHRpb25zewA6FUBudW1lcmF0b3JfdW5pdHNbADoXQGRlbm9taW5hdG9yX3VuaXRzWwA6DkBvcmlnaW5hbEkiBjAGOwhGOgpAbGluZWkBlzoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7E2kBlzoMQG9mZnNldGkSOg1AZW5kX3Bvc287Fwc7E2kBlzsYaRM6CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fc3UtdmFsaWRhdGUuc2NzcwY7CFQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsIRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CFQ6GEBzYW1lX25hbWVfd2FybmluZ3Nv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OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOgpAbmFtZUkiDWxvY2F0aW9uBjoGRVQ6FkB1bmRlcnNjb3JlZF9uYW1lSSINbG9jYXRpb24GOwdUOgpAbGluZWkBvjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7CWkBvjoMQG9mZnNldGkMOg1AZW5kX3Bvc287DQc7CWkBvjsOaRU6CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fc3UtdmFsaWRhdGUuc2NzcwY7B1Q6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsHRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7B1Q6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQAw6DUBvcHRpb25zewAwWwZ1OhdTYXNzOjpUcmVlOjpJZk5vZGUCfygECFsIbzoiU2Fzczo6U2NyaXB0OjpUcmVlOjpPcGVyYXRpb24MOg5Ab3BlcmFuZDFvOwAMOwZvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkZ1bmNhbGwPOg5AY2FsbGFibGUwOgpAbmFtZUkiDHR5cGUtb2YGOgZFVDoKQGFyZ3NbBm86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwlJIg1sb2NhdGlvbgY7ClQ6FkB1bmRlcnNjb3JlZF9uYW1lSSINbG9jYXRpb24GOwpUOgpAbGluZWkBvzoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmkBvzoMQG9mZnNldGkXOg1AZW5kX3Bvc287Egc7DmkBvzsTaSA6CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fc3UtdmFsaWRhdGUuc2NzcwY7ClQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7ClQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQBE6DUBvcHRpb25zewA6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOw5pAb87D287EAk7EW87Egc7DmkBvzsTaQ87FG87Egc7DmkBvzsTaSE7FUAROxZAEjsdQBE7HkAXOg5Ab3BlcmFuZDJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkxpdGVyYWwJOgtAdmFsdWVvOiBTYXNzOjpTY3JpcHQ6OlZhbHVlOjpTdHJpbmcJOydJIgtudW1iZXIGOwpUOx5AFzoKQHR5cGU6C3N0cmluZzoiQGRlcHJlY2F0ZWRfaW50ZXJwX2VxdWl2YWxlbnQwOw5pAb87D287EAk7EW87Egc7DmkBvzsTaSU7FG87Egc7DmkBvzsTaS07FUAROxZAEjsdQBE6DkBvcGVyYXRvcjoIbmVxOw5pAb87D287EAk7EUAcOxRvOxIHOw5pAb87E2ktOxVAETsWQBI7HUAROx5AFzslbzonU2Fzczo6U2NyaXB0OjpUcmVlOjpVbmFyeU9wZXJhdGlvbgs6DUBvcGVyYW5kbzsHDzsIMDsJSSINdW5pdGxlc3MGOwpUOwtbBm87DAs7CUkiDWxvY2F0aW9uBjsKVDsNSSINbG9jYXRpb24GOwpUOw5pAb87D287EAk7EW87Egc7DmkBvzsTaUA7FG87Egc7DmkBvzsTaUk7FUAROxZAEjsdQBE7HkAXOx9vOyAHOyF7ADsiewA7IzA7JDA7DmkBvzsPbzsQCTsRbzsSBzsOaQG/OxNpNzsUbzsSBzsOaQG/OxNpSjsVQBE7FkASOx1AETseQBc7LDoIbm90Ow5pAb87D287EAk7EW87Egc7DmkBvzsTaTc7FG87Egc7DmkBvzsTaUo7FUAROxZAEjsdQBE7HkAXOyw6B29yOw5pAb87D287EAk7EUAcOxRvOxIHOw5pAb87E2lMOxVAETsWQBI7HUAROx5AF3U6F1Nhc3M6OlRyZWU6OklmTm9kZQKdHAQIWwhvOiJTYXNzOjpTY3JpcHQ6OlRyZWU6Ok9wZXJhdGlvbgw6DkBvcGVyYW5kMW86IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA6CkBuYW1lSSIKcm91bmQGOgZFVDoKQGFyZ3NbBm86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwlJIg1sb2NhdGlvbgY7ClQ6FkB1bmRlcnNjb3JlZF9uYW1lSSINbG9jYXRpb24GOwpUOgpAbGluZWkBxDoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmkBxDoMQG9mZnNldGkcOg1AZW5kX3Bvc287Egc7DmkBxDsTaSU6CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fc3UtdmFsaWRhdGUuc2NzcwY7ClQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7ClQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQBA6DUBvcHRpb25zewA6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOw5pAcQ7D287EAk7EW87Egc7DmkBxDsTaRY7FG87Egc7DmkBxDsTaSY7FUAQOxZAETsdQBA7HkAWOg5Ab3BlcmFuZDJvOwwLOwlJIg1sb2NhdGlvbgY7ClQ7DUkiDWxvY2F0aW9uBjsKVDsOaQHEOw9vOxAJOxFvOxIHOw5pAcQ7E2kqOxRvOxIHOw5pAcQ7E2kzOxVAEDsWQBE7HUAQOx5AFjoOQG9wZXJhdG9yOghuZXE7DmkBxDsPbzsQCTsRQBs7FG87Egc7DmkBxDsTaTM7FUAQOxZAETsdQBA7HkAWdToXU2Fzczo6VHJlZTo6SWZOb2RlAi4VBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzsADDsGbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs6CkBuYW1lSSINbG9jYXRpb24GOgZFVDoWQHVuZGVyc2NvcmVkX25hbWVJIg1sb2NhdGlvbgY7CVQ6CkBsaW5laQHIOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsLaQHIOgxAb2Zmc2V0aRY6DUBlbmRfcG9zbzsPBzsLaQHIOxBpHzoKQGZpbGVJInsvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3Ivc3VzeS9zdXN5L19zdS12YWxpZGF0ZS5zY3NzBjsJVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVADjoNQG9wdGlvbnN7ADoOQG9wZXJhbmQybzsHCzsISSIKY291bnQGOwlUOwpJIgpjb3VudAY7CVQ7C2kByDsMbzsNCTsObzsPBzsLaQHIOxBpIjsRbzsPBzsLaQHIOxBpKDsSQA47E0APOxpADjsbQBQ6DkBvcGVyYXRvcjoHZ3Q7C2kByDsMbzsNCTsOQAw7EW87Dwc7C2kByDsQaSg7EkAOOxNADzsaQA47G0AUOxxvOwAMOwZvOwcLOwhJIg1sb2NhdGlvbgY7CVQ7CkkiDWxvY2F0aW9uBjsJVDsLaQHIOwxvOw0JOw5vOw8HOwtpAcg7EGkuOxFvOw8HOwtpAcg7EGk3OxJADjsTQA87GkAOOxtAFDscbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6TnVtYmVyCjsgaQY7G0AUOhVAbnVtZXJhdG9yX3VuaXRzWwA6F0BkZW5vbWluYXRvcl91bml0c1sAOg5Ab3JpZ2luYWwwOwtpAcg7DG87DQk7Dm87Dwc7C2kByDsQaTo7EW87Dwc7C2kByDsQaTs7EkAOOxNADzsaQA47HToHbHQ7C2kByDsMbzsNCTsOQCI7EW87Dwc7C2kByDsQaTs7EkAOOxNADzsaQA47G0AUOx06B29yOwtpAcg7DG87DQk7DkAMOxFvOw8HOwtpAcg7EGk9OxJADjsTQA87GkAOOxtAFHU6F1Nhc3M6OlRyZWU6OklmTm9kZQLiCwQIWwhvOiJTYXNzOjpTY3JpcHQ6OlRyZWU6Ok9wZXJhdGlvbgw6DkBvcGVyYW5kMW87AAw7Bm87AAw7Bm86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOgpAbmFtZUkiDWxvY2F0aW9uBjoGRVQ6FkB1bmRlcnNjb3JlZF9uYW1lSSINbG9jYXRpb24GOwlUOgpAbGluZWkBzDoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7C2kBzDoMQG9mZnNldGkWOg1AZW5kX3Bvc287Dwc7C2kBzDsQaR86CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fc3UtdmFsaWRhdGUuc2NzcwY7CVQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CVQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQA86DUBvcHRpb25zewA6DkBvcGVyYW5kMm87Bws7CEkiCXNwYW4GOwlUOwpJIglzcGFuBjsJVDsLaQHMOwxvOw0JOw5vOw8HOwtpAcw7EGkiOxFvOw8HOwtpAcw7EGknOxJADzsTQBA7GkAPOxtAFToOQG9wZXJhdG9yOglwbHVzOwtpAcw7DG87DQk7DkANOxFvOw8HOwtpAcw7EGkoOxJADzsTQBA7GkAPOxtAFTscbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6TnVtYmVyCjsgaQY7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LyBpcyBhIG51bWJlciwgbGVuZ3RoLCBvciBjb2x1bW4tbGlzdAovLy8KLy8vIEBncm91cCB4LXZhbGlkYXRpb24KLy8vCi8vLyBAcGFyYW0ge251bWJlciB8IGxpc3R9ICRzcGFuIC0KLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMsIG9yIGxlbmd0aCBvZiBzcGFuCi8vLwovLy8gQHJldHVybiB7bnVtYmVyIHwgbGlzdH0gLQovLy8gICBWYWxpZGF0ZWQgYCRzcGFuYCBudW1iZXIsIGxlbmd0aCwgb3IgY29sdW1ucyBsaXN0Ci8vLwovLy8gQHRocm93Ci8vLyAgIHdoZW4gc3BhbiB2YWx1ZSBpcyBub3QgYSBudW1iZXIsIG9yIHZhbGlkIGNvbHVtbiBsaXN0CkBmdW5jdGlvbiBzdS12YWxpZC1zcGFuKAogICRzcGFuCikgewogICR0eXBlOiB0eXBlLW9mKCRzcGFuKTsKICBAaWYgKCR0eXBlID09ICdudW1iZXInKSB7CiAgICBAcmV0dXJuICRzcGFuOwogIH0gQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0JykgYW5kIHN1LXZhbGlkLWNvbHVtbnMoJHNwYW4sICdzaWxlbnQtZmFpbHVyZScpIHsKICAgIEByZXR1cm4gJHNwYW47CiAgfQoKICAkYWN0dWFsOiAnWyN7dHlwZS1vZigkc3Bhbil9XSBgI3tpbnNwZWN0KCRzcGFuKX1gJzsKICBAcmV0dXJuIF9zdXN5LWVycm9yKAogICAgJyN7JGFjdHVhbH0gaXMgbm90IGEgdmFsaWQgbnVtYmVyLCBsZW5ndGgsIG9yIGNvbHVtbi1saXN0IGZvciAkc3Bhbi4nLAogICAgJ3N1LXZhbGlkLXNwYW4nKTsKfQoKCgovLyBWYWxpZCBDb2x1bW5zCi8vIC0tLS0tLS0tLS0tLS0KLy8vIENoZWNrIHRoYXQgdGhlIGBjb2x1bW5zYCBhcmd1bWVudCBpcyBhIHZhbGlkCi8vLyBsaXN0IG9mIGNvbHVtbi1sZW5ndGhzCi8vLwovLy8gQGdyb3VwIHgtdmFsaWRhdGlvbgovLy8KLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLQovLy8gICBMaXN0IG9mIGNvbHVtbi1sZW5ndGhzCi8vLyBAcGFyYW0ge2Jvb2x9ICRzaWxlbnQtZmFpbHVyZSBbdHJ1ZV0gLQovLy8gICBTZXQgZmFsc2UgdG8gcmV0dXJuIG51bGwgb24gZmFpbHVyZQovLy8KLy8vIEByZXR1cm4ge2xpc3R9IC0KLy8vICAgVmFsaWRhdGVkIGAkY29sdW1uc2AgbGlzdAovLy8KLy8vIEB0aHJvdwovLy8gICB3aGVuIGNvbHVtbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBsaXN0IG9mIG51bWJlcnMKQGZ1bmN0aW9uIHN1LXZhbGlkLWNvbHVtbnMoCiAgJGNvbHVtbnMsCiAgJHNpbGVudC1mYWlsdXJlOiBmYWxzZQopIHsKICBAaWYgKHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JykgewogICAgJGZhaWw6IGZhbHNlOwoKICAgIEBlYWNoICRjb2wgaW4gJGNvbHVtbnMgewogICAgICBAaWYgKHR5cGUtb2YoJGNvbCkgIT0gJ251bWJlcicpIHsKICAgICAgICAkZmFpbDogdHJ1ZTsKICAgICAgfQogICAgfQoKICAgIEBpZiBub3QgJGZhaWwgewogICAgICBAcmV0dXJuICRjb2x1bW5zOwogICAgfQogIH0KCiAgLy8gU2lsZW50IEZhaWx1cmUKICBAaWYgJHNpbGVudC1mYWlsdXJlIHsKICAgIEByZXR1cm4gbnVsbDsKICB9CgogIC8vIEVycm9yIE1lc3NhZ2UKICAkYWN0dWFsOiAnWyN7dHlwZS1vZigkY29sdW1ucyl9XSBgI3tpbnNwZWN0KCRjb2x1bW5zKX1gJzsKCiAgQHJldHVybiBfc3VzeS1lcnJvcigKICAgICcjeyRhY3R1YWx9IGlzIG5vdCBhIHZhbGlkIGxpc3Qgb2YgbnVtYmVycyBmb3IgJGNvbHVtbnMuJywKICAgICdzdS12YWxpZC1jb2x1bW5zJyk7Cn0KCgoKLy8gVmFsaWQgR3V0dGVycwovLyAtLS0tLS0tLS0tLS0tCi8vLyBDaGVjayB0aGF0IHRoZSBgZ3V0dGVyc2AgYXJndW1lbnQgaXMgYSB2YWxpZCBudW1iZXIKLy8vCi8vLyBAZ3JvdXAgeC12YWxpZGF0aW9uCi8vLwovLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC0KLy8vICAgV2lkdGggb2YgYSBndXR0ZXIKLy8vCi8vLyBAcmV0dXJuIHtudW1iZXJ9IC0KLy8vICAgVmFsaWRhdGVkIGAkZ3V0dGVyc2AgbnVtYmVyCi8vLwovLy8gQHRocm93Ci8vLyAgIHdoZW4gZ3V0dGVyIHZhbHVlIGlzIG5vdCBhIG51bWJlcgpAZnVuY3Rpb24gc3UtdmFsaWQtZ3V0dGVycygKICAkZ3V0dGVycwopIHsKICAkdHlwZTogdHlwZS1vZigkZ3V0dGVycyk7CgogIEBpZiAoJHR5cGUgPT0gJ251bWJlcicpIHsKICAgIEByZXR1cm4gJGd1dHRlcnM7CiAgfQoKICAkYWN0dWFsOiAnWyN7JHR5cGV9XSBgI3tpbnNwZWN0KCRndXR0ZXJzKX1gJzsKICBAcmV0dXJuIF9zdXN5LWVycm9yKAogICAgJyN7JGFjdHVhbH0gaXMgbm90IGEgbnVtYmVyIG9yIGxlbmd0aCBmb3IgJGd1dHRlcnMuJywKICAgICdzdS12YWxpZC1ndXR0ZXJzJyk7Cn0KCgoKLy8gVmFsaWQgU3ByZWFkCi8vIC0tLS0tLS0tLS0tLQovLy8gQ2hlY2sgdGhhdCB0aGUgYHNwcmVhZGAgYXJndW1lbnQgaXMgYSB2YWxpZAovLy8gaW50aWdlciBiZXR3ZWVuIGAtMWAgYW5kIGAxYAovLy8KLy8vIEBncm91cCB4LXZhbGlkYXRpb24KLy8vCi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRzcHJlYWQgLQovLy8gICBOdW1iZXIgb2YgZ3V0dGVycyB0byBpbmNsdWRlIGluIGEgc3BhbiwKLy8vICAgcmVsYXRpdmUgdG8gdGhlIG51bWJlciBjb2x1bW5zCi8vLwovLy8gQHJldHVybiB7MCB8IDEgfCAtMX0gLQovLy8gICBWYWxpZGF0ZWQgYCRzcHJlYWRgIG51bWJlcgovLy8KLy8vIEB0aHJvdwovLy8gICB3aGVuIHNwcmVhZCB2YWx1ZSBpcyBub3QgYSB2YWxpZCBzcHJlYWQKQGZ1bmN0aW9uIHN1LXZhbGlkLXNwcmVhZCgKICAkc3ByZWFkCikgewogIEBpZiBpbmRleCgwIDEgLTEsICRzcHJlYWQpIHsKICAgIEByZXR1cm4gJHNwcmVhZDsKICB9CgogICRhY3R1YWw6ICdbI3t0eXBlLW9mKCRzcHJlYWQpfV0gYCN7aW5zcGVjdCgkc3ByZWFkKX1gJzsKICBAcmV0dXJuIF9zdXN5LWVycm9yKAogICAgJyN7JGFjdHVhbH0gaXMgbm90IGEgbm9ybWFsaXplZCBbMCB8IDEgfCAtMV0gdmFsdWUgZm9yIGAkc3ByZWFkYC4nLAogICAgJ3N1LXZhbGlkLXNwcmVhZCcpOwp9CgoKCi8vIFZhbGlkIExvY2F0aW9uCi8vIC0tLS0tLS0tLS0tLS0tCi8vLyBDaGVjayB0aGF0IHRoZSBgbG9jYXRpb25gIGFyZ3VtZW50IGlzIGEgdmFsaWQgbnVtYmVyLAovLy8gd2l0aGluIHRoZSBzY29wZSBvZiBhdmFpbGFibGUgY29sdW1ucwovLy8KLy8vIEBncm91cCB4LXZhbGlkYXRpb24KLy8vCi8vLyBAcGFyYW0ge251bWJlcn0gJHNwYW4gLQovLy8gICBOdW1iZXIgb2YgZ3JpZC1jb2x1bW5zIHRvIGJlIHNwYW5uZWQKLy8vIEBwYXJhbSB7aW50ZWdlciB8IHN0cmluZ30gJGxvY2F0aW9uIC0KLy8vICAgU3RhcnRpbmcgKDEtaW5kZXhlZCkgY29sdW1uLXBvc2l0aW9uIG9mIHRoYXQgc3BhbgovLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtCi8vLyAgIExpc3Qgb2YgYXZhaWxhYmxlIGNvbHVtbnMgaW4gdGhlIGdyaWQKLy8vCi8vLyBAcmV0dXJuIHtpbnRlZ2VyfSAtCi8vLyAgIFZhbGlkYXRlZCBgJGxvY2F0aW9uYCBpbnRpZ2VyCi8vLwovLy8gQHRocm93Ci8vLyAgIHdoZW4gbG9jYXRpb24gdmFsdWUgaXMgbm90IGEgdmFsaWQgaW5kZXgsCi8vLyAgIGdpdmVuIHRoZSBjb250ZXh0IGFuZCBzcGFuLgpAZnVuY3Rpb24gc3UtdmFsaWQtbG9jYXRpb24oCiAgJHNwYW4sCiAgJGxvY2F0aW9uLAogICRjb2x1bW5zCikgewogICRjb3VudDogbGVuZ3RoKCRjb2x1bW5zKTsKCiAgQGlmICRsb2NhdGlvbiB7CiAgICBAaWYgKHR5cGUtb2YoJGxvY2F0aW9uKSAhPSAnbnVtYmVyJykgb3IgKG5vdCB1bml0bGVzcygkbG9jYXRpb24pKSB7CiAgICAgICRhY3R1YWw6ICdbI3t0eXBlLW9mKCRsb2NhdGlvbil9XSBgI3skbG9jYXRpb259YCc7CiAgICAgIEByZXR1cm4gX3N1c3ktZXJyb3IoCiAgICAgICAgJyN7JGFjdHVhbH0gaXMgbm90IGEgdW5pdGxlc3MgbnVtYmVyIGZvciAkbG9jYXRpb24uJywKICAgICAgICAnc3UtdmFsaWQtbG9jYXRpb24nKTsKICAgIH0gQGVsc2UgaWYgKHJvdW5kKCRsb2NhdGlvbikgIT0gJGxvY2F0aW9uKSB7CiAgICAgIEByZXR1cm4gX3N1c3ktZXJyb3IoCiAgICAgICAgJ0xvY2F0aW9uIChgI3skbG9jYXRpb259YCkgbXVzdCBiZSBhIDEtaW5kZXhlZCBpbnRpZ2VyIHBvc2l0aW9uLicsCiAgICAgICAgJ3N1LXZhbGlkLWxvY2F0aW9uJyk7CiAgICB9IEBlbHNlIGlmICgkbG9jYXRpb24gPiAkY291bnQpIG9yICgkbG9jYXRpb24gPCAxKSB7CiAgICAgIEByZXR1cm4gX3N1c3ktZXJyb3IoCiAgICAgICAgJ1Bvc2l0aW9uIGAjeyRsb2NhdGlvbn1gIGRvZXMgbm90IGV4aXN0IGluIGdyaWQgYCN7JGNvbHVtbnN9YC4nLAogICAgICAgICdzdS12YWxpZC1sb2NhdGlvbicpOwogICAgfSBAZWxzZSBpZiAoJGxvY2F0aW9uICsgJHNwYW4gLSAxID4gJGNvdW50KSB7CiAgICAgICRkZXRhaWxzOiAnZ3JpZCBgI3skY29sdW1uc31gIGZvciBzcGFuIGAjeyRzcGFufWAgYXQgYCN7JGxvY2F0aW9ufWAnOwogICAgICBAcmV0dXJuIF9zdXN5LWVycm9yKAogICAgICAgICdUaGVyZSBhcmUgbm90IGVub3VnaCBjb2x1bW5zIGluICN7JGRldGFpbHN9LicsCiAgICAgICAgJ3N1LXZhbGlkLWxvY2F0aW9uJyk7CiAgICB9CiAgfQoKICBAcmV0dXJuICRsb2NhdGlvbjsKfQoGOwlUOw5pBjsPbzsQCTsRbzsSBzsOaQY7E2kGOxRvOxIHOw5pBjsTaQY7FUAPOxZAEDs4VA==