1688054429
waR3U4bTeM%3A34d7823ecdda6564907a2ace8a4ebb15-2185f538424b5ea8e2a15b12a35b56a8
s:220044:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDA6IlRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDYXJib24gcGFja2FnZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU4OiIoYykgQnJpYW4gTmVzYml0dCA8YnJpYW5AbmVzYm90LmNvbT4KCkZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCmZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMjE4NWY1Mzg0MjRiNWVhOGUyYTE1YjEyYTM1YjU2YTgiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyMDoiRmFjdG9yeUltbXV0YWJsZS5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo1MjoidmVuZG9yL25lc2JvdC9jYXJib24vc3JjL0NhcmJvbi9GYWN0b3J5SW1tdXRhYmxlLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NTQ5MDY6Ijw/cGhwCgovKioKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIENhcmJvbiBwYWNrYWdlLgogKgogKiAoYykgQnJpYW4gTmVzYml0dCA8YnJpYW5AbmVzYm90LmNvbT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIENhcmJvbjsKCnVzZSBDbG9zdXJlOwoKLyoqCiAqIEEgZmFjdG9yeSB0byBnZW5lcmF0ZSBDYXJib25JbW11dGFibGUgaW5zdGFuY2VzIHdpdGggY29tbW9uIHNldHRpbmdzLgogKgogKiA8YXV0b2RvYyBnZW5lcmF0ZWQgYnkgYGNvbXBvc2VyIHBocGRvY2A+CiAqCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuQmVDcmVhdGVkRnJvbUZvcm1hdCgkZGF0ZSwgJGZvcm1hdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGVja3MgaWYgdGhlIChkYXRlKXRpbWUgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gZm9ybWF0IGFuZCB2YWxpZCB0byBjcmVhdGUgYQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGluc3RhbmNlLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZXxmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSgkeWVhciA9IDAsICRtb250aCA9IDEsICRkYXkgPSAxLCAkaG91ciA9IDAsICRtaW51dGUgPSAwLCAkc2Vjb25kID0gMCwgJHR6ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgbmV3IENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIGFueSBvZiAkeWVhciwgJG1vbnRoIG9yICRkYXkgYXJlIHNldCB0byBudWxsIHRoZWlyIG5vdygpIHZhbHVlcyB3aWxsCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSB1c2VkLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgJGhvdXIgaXMgbnVsbCBpdCB3aWxsIGJlIHNldCB0byBpdHMgbm93KCkgdmFsdWUgYW5kIHRoZSBkZWZhdWx0CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgZm9yICRtaW51dGUgYW5kICRzZWNvbmQgd2lsbCBiZSB0aGVpciBub3coKSB2YWx1ZXMuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAkaG91ciBpcyBub3QgbnVsbCB0aGVuIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgJG1pbnV0ZSBhbmQgJHNlY29uZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSAwLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZyb21EYXRlKCR5ZWFyID0gbnVsbCwgJG1vbnRoID0gbnVsbCwgJGRheSA9IG51bGwsICR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20ganVzdCBhIGRhdGUuIFRoZSB0aW1lIHBvcnRpb24gaXMgc2V0IHRvIG5vdy4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGV8ZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVGcm9tRm9ybWF0KCRmb3JtYXQsICR0aW1lLCAkdHogPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZm9ybWF0LgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZXxmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZyb21Jc29Gb3JtYXQoJGZvcm1hdCwgJHRpbWUsICR0eiA9IG51bGwsICRsb2NhbGUgPSAnZW4nLCAkdHJhbnNsYXRvciA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYSBzcGVjaWZpYyBJU08gZm9ybWF0IChzYW1lIHJlcGxhY2VtZW50cyBhcyAtPmlzb0Zvcm1hdCgpKS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGV8ZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVGcm9tTG9jYWxlRm9ybWF0KCRmb3JtYXQsICRsb2NhbGUsICR0aW1lLCAkdHogPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZm9ybWF0IGFuZCBhIHN0cmluZyBpbiBhIGdpdmVuIGxhbmd1YWdlLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZXxmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZyb21Mb2NhbGVJc29Gb3JtYXQoJGZvcm1hdCwgJGxvY2FsZSwgJHRpbWUsICR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYSBzcGVjaWZpYyBJU08gZm9ybWF0IGFuZCBhIHN0cmluZyBpbiBhIGdpdmVuIGxhbmd1YWdlLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZyb21UaW1lKCRob3VyID0gMCwgJG1pbnV0ZSA9IDAsICRzZWNvbmQgPSAwLCAkdHogPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20ganVzdCBhIHRpbWUuIFRoZSBkYXRlIHBvcnRpb24gaXMgc2V0IHRvIHRvZGF5LgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZyb21UaW1lU3RyaW5nKCR0aW1lLCAkdHogPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYSB0aW1lIHN0cmluZy4gVGhlIGRhdGUgcG9ydGlvbiBpcyBzZXQgdG8gdG9kYXkuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRnJvbVRpbWVzdGFtcCgkdGltZXN0YW1wLCAkdHogPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZnJvbSBhIHRpbWVzdGFtcCBhbmQgc2V0IHRoZSB0aW1lem9uZSAodXNlIGRlZmF1bHQgb25lIGlmIG5vdCBzcGVjaWZpZWQpLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZXN0YW1wIGlucHV0IGNhbiBiZSBnaXZlbiBhcyBpbnQsIGZsb2F0IG9yIGEgc3RyaW5nIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgbnVtYmVycy4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVGcm9tVGltZXN0YW1wTXMoJHRpbWVzdGFtcCwgJHR6ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcy4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVzdGFtcCBpbnB1dCBjYW4gYmUgZ2l2ZW4gYXMgaW50LCBmbG9hdCBvciBhIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIG51bWJlcnMuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRnJvbVRpbWVzdGFtcE1zVVRDKCR0aW1lc3RhbXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZnJvbSBhIHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lc3RhbXAgaW5wdXQgY2FuIGJlIGdpdmVuIGFzIGludCwgZmxvYXQgb3IgYSBzdHJpbmcgY29udGFpbmluZyBvbmUgb3IgbW9yZSBudW1iZXJzLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZyb21UaW1lc3RhbXBVVEMoJHRpbWVzdGFtcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYW4gdGltZXN0YW1wIGtlZXBpbmcgdGhlIHRpbWV6b25lIHRvIFVUQy4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVzdGFtcCBpbnB1dCBjYW4gYmUgZ2l2ZW4gYXMgaW50LCBmbG9hdCBvciBhIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIG51bWJlcnMuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTWlkbmlnaHREYXRlKCR5ZWFyID0gbnVsbCwgJG1vbnRoID0gbnVsbCwgJGRheSA9IG51bGwsICR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZnJvbSBqdXN0IGEgZGF0ZS4gVGhlIHRpbWUgcG9ydGlvbiBpcyBzZXQgdG8gbWlkbmlnaHQuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlfGZhbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2FmZSgkeWVhciA9IG51bGwsICRtb250aCA9IG51bGwsICRkYXkgPSBudWxsLCAkaG91ciA9IG51bGwsICRtaW51dGUgPSBudWxsLCAkc2Vjb25kID0gbnVsbCwgJHR6ID0gbnVsbCkgICAgICAgICAgICAgICBDcmVhdGUgYSBuZXcgc2FmZSBDYXJib24gaW5zdGFuY2UgZnJvbSBhIHNwZWNpZmljIGRhdGUgYW5kIHRpbWUuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBhbnkgb2YgJHllYXIsICRtb250aCBvciAkZGF5IGFyZSBzZXQgdG8gbnVsbCB0aGVpciBub3coKSB2YWx1ZXMgd2lsbAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICRob3VyIGlzIG51bGwgaXQgd2lsbCBiZSBzZXQgdG8gaXRzIG5vdygpIHZhbHVlIGFuZCB0aGUgZGVmYXVsdAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzIGZvciAkbWludXRlIGFuZCAkc2Vjb25kIHdpbGwgYmUgdGhlaXIgbm93KCkgdmFsdWVzLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgJGhvdXIgaXMgbm90IG51bGwgdGhlbiB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yICRtaW51dGUgYW5kICRzZWNvbmQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgMC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIG9uZSBvZiB0aGUgc2V0IHZhbHVlcyBpcyBub3QgdmFsaWQsIGFuIEludmFsaWREYXRlRXhjZXB0aW9uCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIHRocm93bi4KICogQG1ldGhvZCBDYXJib25JbnRlcmZhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTdHJpY3QoP2ludCAkeWVhciA9IDAsID9pbnQgJG1vbnRoID0gMSwgP2ludCAkZGF5ID0gMSwgP2ludCAkaG91ciA9IDAsID9pbnQgJG1pbnV0ZSA9IDAsID9pbnQgJHNlY29uZCA9IDAsICR0eiA9IG51bGwpIENyZWF0ZSBhIG5ldyBDYXJib24gaW5zdGFuY2UgZnJvbSBhIHNwZWNpZmljIGRhdGUgYW5kIHRpbWUgdXNpbmcgc3RyaWN0IHZhbGlkYXRpb24uCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUh1bWFuRGlmZk9wdGlvbigkaHVtYW5EaWZmT3B0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIHVzZSB0aGUgLT5zZXR0aW5ncygpIG1ldGhvZC4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVIdW1hbkRpZmZPcHRpb24oJGh1bWFuRGlmZk9wdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLgogKiBAbWV0aG9kIG1peGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVXaXRoTG9jYWxlKCRsb2NhbGUsICRmdW5jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRoZSBjdXJyZW50IGxvY2FsZSB0byB0aGUgZ2l2ZW4sIGV4ZWN1dGUgdGhlIHBhc3NlZCBmdW5jdGlvbiwgcmVzZXQgdGhlIGxvY2FsZSB0byBwcmV2aW91cyBvbmUsCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBjbG9zdXJlIChvciBudWxsIGlmIHRoZSBjbG9zdXJlIHdhcyB2b2lkKS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tU2VyaWFsaXplZCgkdmFsdWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhbiBpbnN0YW5jZSBmcm9tIGEgc2VyaWFsaXplZCBzdHJpbmcuCiAqIEBtZXRob2Qgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY01hY3JvKCRtYWNybywgJHByaW9yaXR5ID0gMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBhIGN1c3RvbSBtYWNyby4KICogQG1ldGhvZCBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRBdmFpbGFibGVMb2NhbGVzKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybnMgdGhlIGxpc3Qgb2YgaW50ZXJuYWxseSBhdmFpbGFibGUgbG9jYWxlcyBhbmQgYWxyZWFkeSBsb2FkZWQgY3VzdG9tIGxvY2FsZXMuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSXQgd2lsbCBpZ25vcmUgY3VzdG9tIHRyYW5zbGF0b3IgZHluYW1pYyBsb2FkaW5nLikKICogQG1ldGhvZCBMYW5ndWFnZVtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRBdmFpbGFibGVMb2NhbGVzSW5mbygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybnMgbGlzdCBvZiBMYW5ndWFnZSBvYmplY3QgZm9yIGVhY2ggYXZhaWxhYmxlIGxvY2FsZS4gVGhpcyBvYmplY3QgYWxsb3cgeW91IHRvIGdldCB0aGUgSVNPIG5hbWUsIG5hdGl2ZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgcmVnaW9uIGFuZCB2YXJpYW50IG9mIHRoZSBsb2NhbGUuCiAqIEBtZXRob2QgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RGF5cygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdGhlIGRheXMgb2YgdGhlIHdlZWsKICogQG1ldGhvZCBzdHJpbmd8bnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRGYWxsYmFja0xvY2FsZSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldCB0aGUgZmFsbGJhY2sgbG9jYWxlLgogKiBAbWV0aG9kIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEZvcm1hdHNUb0lzb1JlcGxhY2VtZW50cygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiByZXBsYWNlbWVudHMgZnJvbSBkYXRlKCkgZm9ybWF0IHRvIGlzb0Zvcm1hdCgpLgogKiBAbWV0aG9kIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEh1bWFuRGlmZk9wdGlvbnMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIGRlZmF1bHQgaHVtYW5EaWZmKCkgb3B0aW9ucyAobWVyZ2VkIGZsYWdzIGFzIGludGVnZXIpLgogKiBAbWV0aG9kIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElzb1VuaXRzKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyBsaXN0IG9mIGxvY2FsZSB1bml0cyBmb3IgSVNPIGZvcm1hdHRpbmcuCiAqIEBtZXRob2QgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TGFzdEVycm9ycygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QGluaGVyaXRkb2N9CiAqIEBtZXRob2Qgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9jYWxlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdGhlIGN1cnJlbnQgdHJhbnNsYXRvciBsb2NhbGUuCiAqIEBtZXRob2QgY2FsbGFibGV8bnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TWFjcm8oJG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdGhlIHJhdyBjYWxsYWJsZSBtYWNybyByZWdpc3RlcmVkIGdsb2JhbGx5IGZvciBhIGdpdmVuIG5hbWUuCiAqIEBtZXRob2QgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TWlkRGF5QXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgbWlkZGF5L25vb24gaG91cgogKiBAbWV0aG9kIENsb3N1cmV8Q2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFRlc3ROb3coKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0IHRoZSBDYXJib24gaW5zdGFuY2UgKHJlYWwgb3IgbW9jaykgdG8gYmUgcmV0dXJuZWQgd2hlbiBhICJub3ciCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSBpcyBjcmVhdGVkLgogKiBAbWV0aG9kIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFRpbWVGb3JtYXRCeVByZWNpc2lvbigkdW5pdFByZWNpc2lvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIGEgZm9ybWF0IGZyb20gSDppIHRvIEg6aTpzLnUgYWNjb3JkaW5nIHRvIGdpdmVuIHVuaXQgcHJlY2lzaW9uLgogKiBAbWV0aG9kIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFRyYW5zbGF0aW9uTWVzc2FnZVdpdGgoJHRyYW5zbGF0b3IsIHN0cmluZyAka2V5LCA/c3RyaW5nICRsb2NhbGUgPSBudWxsLCA/c3RyaW5nICRkZWZhdWx0ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyByYXcgdHJhbnNsYXRpb24gbWVzc2FnZSBmb3IgYSBnaXZlbiBrZXkuCiAqIEBtZXRob2QgXFN5bWZvbnlcQ29tcG9uZW50XFRyYW5zbGF0aW9uXFRyYW5zbGF0b3JJbnRlcmZhY2UgZ2V0VHJhbnNsYXRvcigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdGhlIGRlZmF1bHQgdHJhbnNsYXRvciBpbnN0YW5jZSBpbiB1c2UuCiAqIEBtZXRob2QgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0V2Vla0VuZHNBdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdGhlIGxhc3QgZGF5IG9mIHdlZWsKICogQG1ldGhvZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXZWVrU3RhcnRzQXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldCB0aGUgZmlyc3QgZGF5IG9mIHdlZWsKICogQG1ldGhvZCBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXZWVrZW5kRGF5cygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldCB3ZWVrZW5kIGRheXMKICogQG1ldGhvZCBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNGb3JtYXQoJGRhdGUsICRmb3JtYXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrcyBpZiB0aGUgKGRhdGUpdGltZSBzdHJpbmcgaXMgaW4gYSBnaXZlbiBmb3JtYXQuCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzRm9ybWF0V2l0aE1vZGlmaWVycygkZGF0ZSwgJGZvcm1hdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGVja3MgaWYgdGhlIChkYXRlKXRpbWUgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gZm9ybWF0LgogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc01hY3JvKCRuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tzIGlmIG1hY3JvIGlzIHJlZ2lzdGVyZWQgZ2xvYmFsbHkuCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVsYXRpdmVLZXl3b3JkcygkdGltZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcm1pbmUgaWYgYSB0aW1lIHN0cmluZyB3aWxsIHByb2R1Y2UgYSByZWxhdGl2ZSBkYXRlLgogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1Rlc3ROb3coKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGEgdmFsaWQgdGVzdCBpbnN0YW5jZSBzZXQuIEEgdmFsaWQgdGVzdCBpbnN0YW5jZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgYW55dGhpbmcgdGhhdCBpcyBub3QgbnVsbC4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSgkZGF0ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgRGF0ZVRpbWUgb25lLgogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW1tdXRhYmxlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGNsYXNzL2luc3RhbmNlIGlzIGltbXV0YWJsZS4KICogQG1ldGhvZCBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc01vZGlmaWFibGVVbml0KCR1bml0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiBhIHByb3BlcnR5IGNhbiBiZSBjaGFuZ2VkIHZpYSBzZXR0ZXIuCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNdXRhYmxlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgY2xhc3MvaW5zdGFuY2UgaXMgbXV0YWJsZS4KICogQG1ldGhvZCBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1N0cmljdE1vZGVFbmFibGVkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3RyaWN0IG1vZGUgaXMgZ2xvYmFsbHkgaW4gdXNlLCBmYWxzZSBlbHNlLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEl0IGNhbiBiZSBvdmVycmlkZGVuIGluIHNwZWNpZmljIGluc3RhbmNlcy4pCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlSGFzRGlmZk9uZURheVdvcmRzKCRsb2NhbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBpbnRlcm5hbGx5IHN1cHBvcnRlZCBhbmQgaGFzIHdvcmRzIGZvciAxLWRheSBkaWZmIChqdXN0IG5vdywgeWVzdGVyZGF5LCB0b21vcnJvdykuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdXBwb3J0IGlzIGNvbnNpZGVyZWQgZW5hYmxlZCBpZiB0aGUgMyB3b3JkcyBhcmUgdHJhbnNsYXRlZCBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUhhc0RpZmZTeW50YXgoJGxvY2FsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgaW50ZXJuYWxseSBzdXBwb3J0ZWQgYW5kIGhhcyBkaWZmIHN5bnRheCBzdXBwb3J0IChhZ28sIGZyb20gbm93LCBiZWZvcmUsIGFmdGVyKS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBvcnQgaXMgY29uc2lkZXJlZCBlbmFibGVkIGlmIHRoZSA0IHNlbnRlbmNlcyBhcmUgdHJhbnNsYXRlZCBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUhhc0RpZmZUd29EYXlXb3JkcygkbG9jYWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgaW50ZXJuYWxseSBzdXBwb3J0ZWQgYW5kIGhhcyB3b3JkcyBmb3IgMi1kYXlzIGRpZmYgKGJlZm9yZSB5ZXN0ZXJkYXksIGFmdGVyIHRvbW9ycm93KS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBvcnQgaXMgY29uc2lkZXJlZCBlbmFibGVkIGlmIHRoZSAyIHdvcmRzIGFyZSB0cmFuc2xhdGVkIGluIHRoZSBnaXZlbiBsb2NhbGUuCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlSGFzUGVyaW9kU3ludGF4KCRsb2NhbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBpbnRlcm5hbGx5IHN1cHBvcnRlZCBhbmQgaGFzIHBlcmlvZCBzeW50YXggc3VwcG9ydCAoWCB0aW1lcywgZXZlcnkgWCwgZnJvbSBYLCB0byBYKS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBvcnQgaXMgY29uc2lkZXJlZCBlbmFibGVkIGlmIHRoZSA0IHNlbnRlbmNlcyBhcmUgdHJhbnNsYXRlZCBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUhhc1Nob3J0VW5pdHMoJGxvY2FsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgaW50ZXJuYWxseSBzdXBwb3J0ZWQgYW5kIGhhcyBzaG9ydC11bml0cyBzdXBwb3J0LgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcG9ydCBpcyBjb25zaWRlcmVkIGVuYWJsZWQgaWYgZWl0aGVyIHllYXIsIGRheSBvciBob3VyIGhhcyBhIHNob3J0IHZhcmlhbnQgdHJhbnNsYXRlZC4KICogQG1ldGhvZCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNybygkbmFtZSwgJG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGEgY3VzdG9tIG1hY3JvLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZXxudWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UoJHZhcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFrZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGdpdmVuIHZhcmlhYmxlIGlmIHBvc3NpYmxlLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWx3YXlzIHJldHVybiBhIG5ldyBpbnN0YW5jZS4gUGFyc2Ugb25seSBzdHJpbmdzIGFuZCBvbmx5IHRoZXNlIGxpa2VseSB0byBiZSBkYXRlcyAoc2tpcCBpbnRlcnZhbHMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCByZWN1cnJlbmNlcykuIFRocm93IGFuIGV4Y2VwdGlvbiBmb3IgaW52YWxpZCBmb3JtYXQsIGJ1dCBvdGhlcndpc2UgcmV0dXJuIG51bGwuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZm9yIHRoZSBncmVhdGVzdCBzdXBwb3J0ZWQgZGF0ZS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmb3IgdGhlIGxvd2VzdCBzdXBwb3J0ZWQgZGF0ZS4KICogQG1ldGhvZCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXhpbigkbWl4aW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1peCBhbm90aGVyIG9iamVjdCBpbnRvIHRoZSBjbGFzcy4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3coJHR6ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldCBhIENhcmJvbiBpbnN0YW5jZSBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZSgkdGltZSA9IG51bGwsICR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIGNhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3RyaW5nLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhbiBhbGlhcyBmb3IgdGhlIGNvbnN0cnVjdG9yIHRoYXQgYWxsb3dzIGJldHRlciBmbHVlbnQgc3ludGF4CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBhbGxvd3MgeW91IHRvIGRvIENhcmJvbjo6cGFyc2UoJ01vbmRheSBuZXh0IHdlZWsnKS0+Zm4oKSByYXRoZXIKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYW4gKG5ldyBDYXJib24oJ01vbmRheSBuZXh0IHdlZWsnKSktPmZuKCkuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VGcm9tTG9jYWxlKCR0aW1lLCAkbG9jYWxlID0gbnVsbCwgJHR6ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBjYXJib24gaW5zdGFuY2UgZnJvbSBhIGxvY2FsaXplZCBzdHJpbmcgKGluIEZyZW5jaCwgSmFwYW5lc2UsIEFyYWJpYywgZXRjLikuCiAqIEBtZXRob2Qgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsVW5pdChzdHJpbmcgJHVuaXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5zIHN0YW5kYXJkaXplZCBwbHVyYWwgb2YgYSBnaXZlbiBzaW5ndWxhci9wbHVyYWwgdW5pdCBuYW1lIChpbiBFbmdsaXNoKS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGV8ZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdDcmVhdGVGcm9tRm9ybWF0KCRmb3JtYXQsICR0aW1lLCAkdHogPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZm9ybWF0LgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd1BhcnNlKCR0aW1lID0gbnVsbCwgJHR6ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgY2FyYm9uIGluc3RhbmNlIGZyb20gYSBzdHJpbmcuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGFuIGFsaWFzIGZvciB0aGUgY29uc3RydWN0b3IgdGhhdCBhbGxvd3MgYmV0dGVyIGZsdWVudCBzeW50YXgKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIGl0IGFsbG93cyB5b3UgdG8gZG8gQ2FyYm9uOjpwYXJzZSgnTW9uZGF5IG5leHQgd2VlaycpLT5mbigpIHJhdGhlcgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhbiAobmV3IENhcmJvbignTW9uZGF5IG5leHQgd2VlaycpKS0+Zm4oKS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldE1hY3JvcygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZSBhbGwgbWFjcm9zIGFuZCBnZW5lcmljIG1hY3Jvcy4KICogQG1ldGhvZCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldE1vbnRoc092ZXJmbG93KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgeW91IGNhbiB1c2UgbWV0aG9kIHZhcmlhbnRzOiBhZGRNb250aHNXaXRoT3ZlcmZsb3cvYWRkTW9udGhzTm9PdmVyZmxvdywgc2FtZSB2YXJpYW50cwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGF2YWlsYWJsZSBmb3IgcXVhcnRlcnMsIHllYXJzLCBkZWNhZGUsIGNlbnR1cmllcywgbWlsbGVubmlhIChzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zKS4KICogQG1ldGhvZCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFRvU3RyaW5nRm9ybWF0KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2V0IHRoZSBmb3JtYXQgdXNlZCB0byB0aGUgZGVmYXVsdCB3aGVuIHR5cGUganVnZ2xpbmcgYSBDYXJib24gaW5zdGFuY2UgdG8gYSBzdHJpbmcKICogQG1ldGhvZCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFllYXJzT3ZlcmZsb3coKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgeW91IGNhbiB1c2UgbWV0aG9kIHZhcmlhbnRzOiBhZGRZZWFyc1dpdGhPdmVyZmxvdy9hZGRZZWFyc05vT3ZlcmZsb3csIHNhbWUgdmFyaWFudHMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBhdmFpbGFibGUgZm9yIHF1YXJ0ZXJzLCB5ZWFycywgZGVjYWRlLCBjZW50dXJpZXMsIG1pbGxlbm5pYSAoc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcykuCiAqIEBtZXRob2Qgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplVXNpbmcoJGNhbGxiYWNrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIHRyYW5zZm9ybSBDYXJib24gb2JqZWN0IGJlZm9yZSB0aGUgc2VyaWFsaXphdGlvbi4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04gc2VyaWFsaXplIGFsbCBDYXJib24gaW5zdGFuY2VzIHVzaW5nIHRoZSBnaXZlbiBjYWxsYmFjay4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGYWxsYmFja0xvY2FsZSgkbG9jYWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgZmFsbGJhY2sgbG9jYWxlLgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEh1bWFuRGlmZk9wdGlvbnMoJGh1bWFuRGlmZk9wdGlvbnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3Ugc2hvdWxkIHJhdGhlciB1c2UgdGhlIC0+c2V0dGluZ3MoKSBtZXRob2QuCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9jYWxlKCRsb2NhbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGN1cnJlbnQgdHJhbnNsYXRvciBsb2NhbGUgYW5kIGluZGljYXRlIGlmIHRoZSBzb3VyY2UgbG9jYWxlIGZpbGUgZXhpc3RzLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzcyAnYXV0bycgYXMgbG9jYWxlIHRvIHVzZSBjbG9zZXN0IGxhbmd1YWdlIGZyb20gdGhlIGN1cnJlbnQgTENfVElNRSBsb2NhbGUuCiAqIEBtZXRob2Qgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWlkRGF5QXQoJGhvdXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIGNvbnNpZGVyIG1pZC1kYXkgaXMgYWx3YXlzIDEycG0sIHRoZW4gaWYgeW91IG5lZWQgdG8gdGVzdCBpZiBpdCdzIGFuIG90aGVyCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3VyLCB0ZXN0IGl0IGV4cGxpY2l0bHk6CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGUtPmZvcm1hdCgnRycpID09IDEzCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB0byBzZXQgZXhwbGljaXRseSB0byBhIGdpdmVuIGhvdXI6CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGUtPnNldFRpbWUoMTMsIDAsIDAsIDApCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgbWlkZGF5L25vb24gaG91cgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRlc3ROb3coJHRlc3ROb3cgPSBudWxsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IGEgQ2FyYm9uIGluc3RhbmNlIChyZWFsIG9yIG1vY2spIHRvIGJlIHJldHVybmVkIHdoZW4gYSAibm93IgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgaXMgY3JlYXRlZC4gIFRoZSBwcm92aWRlZCBpbnN0YW5jZSB3aWxsIGJlIHJldHVybmVkCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2FsbHkgdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIEEgY2FsbCB0byB0aGUgc3RhdGljIG5vdygpIG1ldGhvZCwgZXguIENhcmJvbjo6bm93KCkKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBXaGVuIGEgbnVsbCAob3IgYmxhbmsgc3RyaW5nKSBpcyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yIG9yIHBhcnNlKCksIGV4LiBuZXcgQ2FyYm9uKG51bGwpCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiB0aGUgc3RyaW5nICJub3ciIGlzIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3Igb3IgcGFyc2UoKSwgZXguIG5ldyBDYXJib24oJ25vdycpCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBkZXNpcmVkIHRpbWUgaXMgcGFzc2VkIHRvIENhcmJvbjo6cGFyc2UoKS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGUgdGhlIHRpbWV6b25lIHBhcmFtZXRlciB3YXMgbGVmdCBvdXQgb2YgdGhlIGV4YW1wbGVzIGFib3ZlIGFuZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIG5vIGFmZmVjdCBhcyB0aGUgbW9jayB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIHJlZ2FyZGxlc3Mgb2YgaXRzIHZhbHVlLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSB0aGUgbW9tZW50IGlzIG1vY2tlZCB3aXRoIHNldFRlc3ROb3coKSwgdGhlIHRpbWV6b25lIHdpbGwgc3RpbGwgYmUgdGhlIG9uZSBwYXNzZWQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIHBhcmFtZXRlciBvZiBkYXRlX2RlZmF1bHRfdGltZXpvbmVfZ2V0KCkgYXMgYSBmYWxsYmFjayAoc2VlIHNldFRlc3ROb3dBbmRUaW1lem9uZSgpKS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGNsZWFyIHRoZSB0ZXN0IGluc3RhbmNlIGNhbGwgdGhpcyBtZXRob2QgdXNpbmcgdGhlIGRlZmF1bHQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlciBvZiBudWxsLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyFcIFVzZSB0aGlzIG1ldGhvZCBmb3IgdW5pdCB0ZXN0cyBvbmx5LgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRlc3ROb3dBbmRUaW1lem9uZSgkdGVzdE5vdyA9IG51bGwsICR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IGEgQ2FyYm9uIGluc3RhbmNlIChyZWFsIG9yIG1vY2spIHRvIGJlIHJldHVybmVkIHdoZW4gYSAibm93IgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgaXMgY3JlYXRlZC4gIFRoZSBwcm92aWRlZCBpbnN0YW5jZSB3aWxsIGJlIHJldHVybmVkCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2FsbHkgdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIEEgY2FsbCB0byB0aGUgc3RhdGljIG5vdygpIG1ldGhvZCwgZXguIENhcmJvbjo6bm93KCkKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBXaGVuIGEgbnVsbCAob3IgYmxhbmsgc3RyaW5nKSBpcyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yIG9yIHBhcnNlKCksIGV4LiBuZXcgQ2FyYm9uKG51bGwpCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiB0aGUgc3RyaW5nICJub3ciIGlzIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3Igb3IgcGFyc2UoKSwgZXguIG5ldyBDYXJib24oJ25vdycpCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBkZXNpcmVkIHRpbWUgaXMgcGFzc2VkIHRvIENhcmJvbjo6cGFyc2UoKS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IHdpbGwgYWxzbyBhbGlnbiBkZWZhdWx0IHRpbWV6b25lIChlLmcuIGNhbGwgZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgpKSB3aXRoCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc2Vjb25kIGFyZ3VtZW50IG9yIGlmIG51bGwsIHdpdGggdGhlIHRpbWV6b25lIG9mIHRoZSBnaXZlbiBkYXRlIG9iamVjdC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGNsZWFyIHRoZSB0ZXN0IGluc3RhbmNlIGNhbGwgdGhpcyBtZXRob2QgdXNpbmcgdGhlIGRlZmF1bHQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlciBvZiBudWxsLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyFcIFVzZSB0aGlzIG1ldGhvZCBmb3IgdW5pdCB0ZXN0cyBvbmx5LgogKiBAbWV0aG9kIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvU3RyaW5nRm9ybWF0KCRmb3JtYXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3Ugc2hvdWxkIHJhdGhlciBsZXQgQ2FyYm9uIG9iamVjdCBiZWluZyBjYXN0ZWQgdG8gc3RyaW5nIHdpdGggREVGQVVMVF9UT19TVFJJTkdfRk9STUFULCBhbmQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBvdGhlciBtZXRob2Qgb3IgY3VzdG9tIGZvcm1hdCBwYXNzZWQgdG8gZm9ybWF0KCkgbWV0aG9kIGlmIHlvdSBuZWVkIHRvIGR1bXAgYW4gb3RoZXIgc3RyaW5nCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQgZm9ybWF0IHVzZWQgd2hlbiB0eXBlIGp1Z2dsaW5nIGEgQ2FyYm9uIGluc3RhbmNlIHRvIGEgc3RyaW5nCiAqIEBtZXRob2Qgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VHJhbnNsYXRvcihUcmFuc2xhdG9ySW50ZXJmYWNlICR0cmFuc2xhdG9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQgdHJhbnNsYXRvciBpbnN0YW5jZSB0byB1c2UuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VXRmOCgkdXRmOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIHVzZSBVVEYtOCBsYW5ndWFnZSBwYWNrYWdlcyBvbiBldmVyeSBtYWNoaW5lLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IGlmIFVURjggd2lsbCBiZSB1c2VkIGZvciBsb2NhbGl6ZWQgZGF0ZS90aW1lLgogKiBAbWV0aG9kIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdlZWtFbmRzQXQoJGRheSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgJHdlZWtTdGFydHNBdCBvcHRpb25hbCBwYXJhbWV0ZXIgaW5zdGVhZCB3aGVuIHVzaW5nIHN0YXJ0T2ZXZWVrLCBmbG9vcldlZWssIGNlaWxXZWVrCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciByb3VuZFdlZWsgbWV0aG9kLiBZb3UgY2FuIGFsc28gdXNlIHRoZSAnZmlyc3RfZGF5X29mX3dlZWsnIGxvY2FsZSBzZXR0aW5nIHRvIGNoYW5nZSB0aGUKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0IG9mIHdlZWsgYWNjb3JkaW5nIHRvIGN1cnJlbnQgbG9jYWxlIHNlbGVjdGVkIGFuZCBpbXBsaWNpdGx5IHRoZSBlbmQgb2Ygd2Vlay4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgbGFzdCBkYXkgb2Ygd2VlawogKiBAbWV0aG9kIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdlZWtTdGFydHNBdCgkZGF5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgJHdlZWtFbmRzQXQgb3B0aW9uYWwgcGFyYW1ldGVyIGluc3RlYWQgd2hlbiB1c2luZyBlbmRPZldlZWsgbWV0aG9kLiBZb3UgY2FuIGFsc28gdXNlIHRoZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpcnN0X2RheV9vZl93ZWVrJyBsb2NhbGUgc2V0dGluZyB0byBjaGFuZ2UgdGhlIHN0YXJ0IG9mIHdlZWsgYWNjb3JkaW5nIHRvIGN1cnJlbnQgbG9jYWxlCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCBhbmQgaW1wbGljaXRseSB0aGUgZW5kIG9mIHdlZWsuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrCiAqIEBtZXRob2Qgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2Vla2VuZERheXMoJGRheXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIGNvbnNpZGVyIHdlZWstZW5kIGlzIGFsd2F5cyBzYXR1cmRheSBhbmQgc3VuZGF5LCBhbmQgaWYgeW91IGhhdmUgc29tZSBjdXN0b20KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWstZW5kIGRheXMgdG8gaGFuZGxlLCBnaXZlIHRvIHRob3NlIGRheXMgYW4gb3RoZXIgbmFtZSBhbmQgY3JlYXRlIGEgbWFjcm8gZm9yIHRoZW06CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYGAKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhcmJvbjo6bWFjcm8oJ2lzRGF5T2ZmJywgZnVuY3Rpb24gKCRkYXRlKSB7CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRkYXRlLT5pc1N1bmRheSgpIHx8ICRkYXRlLT5pc01vbmRheSgpOwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXJib246Om1hY3JvKCdpc05vdERheU9mZicsIGZ1bmN0aW9uICgkZGF0ZSkgewogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhJGRhdGUtPmlzRGF5T2ZmKCk7CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc29tZURhdGUtPmlzRGF5T2ZmKCkpIC4uLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzb21lRGF0ZS0+aXNOb3REYXlPZmYoKSkgLi4uCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgNSBub3Qtb2ZmIGRheXMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudCA9IDU7CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoJHNvbWVEYXRlLT5pc0RheU9mZigpIHx8ICgkY291bnQtLSA+IDApKSB7CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNvbWVEYXRlLT5hZGREYXkoKTsKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgYAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHdlZWtlbmQgZGF5cwogKiBAbWV0aG9kIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZE92ZXJmbG93TW9udGhzKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0IHRoZSBtb250aCBvdmVyZmxvdyBnbG9iYWwgYmVoYXZpb3IgKGNhbiBiZSBvdmVycmlkZGVuIGluIHNwZWNpZmljIGluc3RhbmNlcykuCiAqIEBtZXRob2QgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkT3ZlcmZsb3dZZWFycygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdGhlIG1vbnRoIG92ZXJmbG93IGdsb2JhbCBiZWhhdmlvciAoY2FuIGJlIG92ZXJyaWRkZW4gaW4gc3BlY2lmaWMgaW5zdGFuY2VzKS4KICogQG1ldGhvZCBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW5ndWxhclVuaXQoc3RyaW5nICR1bml0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybnMgc3RhbmRhcmRpemVkIHNpbmd1bGFyIG9mIGEgZ2l2ZW4gc2luZ3VsYXIvcGx1cmFsIHVuaXQgbmFtZSAoaW4gRW5nbGlzaCkuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkoJHR6ID0gbnVsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZm9yIHRvZGF5LgogKiBAbWV0aG9kIENhcmJvbkltbXV0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvbW9ycm93KCR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZvciB0b21vcnJvdy4KICogQG1ldGhvZCBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVUaW1lU3RyaW5nKCR0aW1lU3RyaW5nLCAkZnJvbSA9IG51bGwsICR0byA9IG51bGwsICRtb2RlID0gQ2FyYm9uSW50ZXJmYWNlOjpUUkFOU0xBVEVfQUxMKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0ZSBhIHRpbWUgc3RyaW5nIGZyb20gYSBsb2NhbGUgdG8gYW4gb3RoZXIuCiAqIEBtZXRob2Qgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlV2l0aChUcmFuc2xhdG9ySW50ZXJmYWNlICR0cmFuc2xhdG9yLCBzdHJpbmcgJGtleSwgYXJyYXkgJHBhcmFtZXRlcnMgPSBbXSwgJG51bWJlciA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGUgdXNpbmcgdHJhbnNsYXRpb24gc3RyaW5nIG9yIGNhbGxiYWNrIGF2YWlsYWJsZS4KICogQG1ldGhvZCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VNb250aHNPdmVyZmxvdygkbW9udGhzT3ZlcmZsb3cgPSB0cnVlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgeW91IGNhbiB1c2UgbWV0aG9kIHZhcmlhbnRzOiBhZGRNb250aHNXaXRoT3ZlcmZsb3cvYWRkTW9udGhzTm9PdmVyZmxvdywgc2FtZSB2YXJpYW50cwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGF2YWlsYWJsZSBmb3IgcXVhcnRlcnMsIHllYXJzLCBkZWNhZGUsIGNlbnR1cmllcywgbWlsbGVubmlhIChzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zKS4KICogQG1ldGhvZCBDYXJib25JbW11dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTdHJpY3RNb2RlKCRzdHJpY3RNb2RlRW5hYmxlZCA9IHRydWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLgogKiBAbWV0aG9kIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVllYXJzT3ZlcmZsb3coJHllYXJzT3ZlcmZsb3cgPSB0cnVlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3Ugc2hvdWxkIHJhdGhlciB1c2UgdGhlIC0+c2V0dGluZ3MoKSBtZXRob2QuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciB5b3UgY2FuIHVzZSBtZXRob2QgdmFyaWFudHM6IGFkZFllYXJzV2l0aE92ZXJmbG93L2FkZFllYXJzTm9PdmVyZmxvdywgc2FtZSB2YXJpYW50cwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGF2YWlsYWJsZSBmb3IgcXVhcnRlcnMsIHllYXJzLCBkZWNhZGUsIGNlbnR1cmllcywgbWlsbGVubmlhIChzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zKS4KICogQG1ldGhvZCBtaXhlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoVGVzdE5vdygkdGVzdE5vdyA9IG51bGwsICRjYWxsYmFjayA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBvcmFyaWx5IHNldHMgYSBzdGF0aWMgZGF0ZSB0byBiZSB1c2VkIHdpdGhpbiB0aGUgY2FsbGJhY2suCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2luZyBzZXRUZXN0Tm93IHRvIHNldCB0aGUgZGF0ZSwgZXhlY3V0aW5nIHRoZSBjYWxsYmFjaywgdGhlbgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJpbmcgdGhlIHRlc3QgaW5zdGFuY2UuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIVwgVXNlIHRoaXMgbWV0aG9kIGZvciB1bml0IHRlc3RzIG9ubHkuCiAqIEBtZXRob2QgQ2FyYm9uSW1tdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVzdGVyZGF5KCR0eiA9IG51bGwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZm9yIHllc3RlcmRheS4KICoKICogPC9hdXRvZG9jPgogKi8KY2xhc3MgRmFjdG9yeUltbXV0YWJsZSBleHRlbmRzIEZhY3RvcnkKewogICAgcHJvdGVjdGVkICRjbGFzc05hbWUgPSBDYXJib25JbW11dGFibGU6OmNsYXNzOwp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6NzoiXENhcmJvbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc6IlxDYXJib24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJDYXJib24iO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czoyNDoiXENhcmJvblxGYWN0b3J5SW1tdXRhYmxlIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTM6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI0OiJcQ2FyYm9uXEZhY3RvcnlJbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiRmFjdG9yeUltbXV0YWJsZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njk6IkEgZmFjdG9yeSB0byBnZW5lcmF0ZSBDYXJib25JbW11dGFibGUgaW5zdGFuY2VzIHdpdGggY29tbW9uIHNldHRpbmdzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0MDoiPGF1dG9kb2MgZ2VuZXJhdGVkIGJ5IGBjb21wb3NlciBwaHBkb2NgPiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjk0OntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MjI6ImNhbkJlQ3JlYXRlZEZyb21Gb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJkYXRlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImZvcm1hdCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjg4OiJDaGVja3MgaWYgdGhlIChkYXRlKXRpbWUgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gZm9ybWF0IGFuZCB2YWxpZCB0byBjcmVhdGUgYQpuZXcgaW5zdGFuY2UuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjY6ImNyZWF0ZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6Nzp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjQ6InllYXIiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6NToibW9udGgiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjI7YToyOntzOjQ6Im5hbWUiO3M6MzoiZGF5IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aTozO2E6Mjp7czo0OiJuYW1lIjtzOjQ6ImhvdXIiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjQ7YToyOntzOjQ6Im5hbWUiO3M6NjoibWludXRlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aTo1O2E6Mjp7czo0OiJuYW1lIjtzOjY6InNlY29uZCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6NjthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fWk6MTtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcRmFsc2VfIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM0NjoiQ3JlYXRlIGEgbmV3IENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZS4KSWYgYW55IG9mICR5ZWFyLCAkbW9udGggb3IgJGRheSBhcmUgc2V0IHRvIG51bGwgdGhlaXIgbm93KCkgdmFsdWVzIHdpbGwKYmUgdXNlZC4KSWYgJGhvdXIgaXMgbnVsbCBpdCB3aWxsIGJlIHNldCB0byBpdHMgbm93KCkgdmFsdWUgYW5kIHRoZSBkZWZhdWx0CnZhbHVlcyBmb3IgJG1pbnV0ZSBhbmQgJHNlY29uZCB3aWxsIGJlIHRoZWlyIG5vdygpIHZhbHVlcy4KSWYgJGhvdXIgaXMgbm90IG51bGwgdGhlbiB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yICRtaW51dGUgYW5kICRzZWNvbmQKd2lsbCBiZSAwLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxNDoiY3JlYXRlRnJvbURhdGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ5ZWFyIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjU6Im1vbnRoIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToyO2E6Mjp7czo0OiJuYW1lIjtzOjM6ImRheSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MzthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3NDoiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20ganVzdCBhIGRhdGUuIFRoZSB0aW1lIHBvcnRpb24gaXMgc2V0IHRvIG5vdy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTY6ImNyZWF0ZUZyb21Gb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDthOjI6e3M6NDoibmFtZSI7czo2OiJmb3JtYXQiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6NDoidGltZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MjthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fWk6MTtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcRmFsc2VfIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ4OiJDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZnJvbSBhIHNwZWNpZmljIGZvcm1hdC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTk6ImNyZWF0ZUZyb21Jc29Gb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjU6e2k6MDthOjI6e3M6NDoibmFtZSI7czo2OiJmb3JtYXQiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6NDoidGltZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MjthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MzthOjI6e3M6NDoibmFtZSI7czo2OiJsb2NhbGUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjQ7YToyOntzOjQ6Im5hbWUiO3M6MTA6InRyYW5zbGF0b3IiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1pOjE7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEZhbHNlXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4OToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYSBzcGVjaWZpYyBJU08gZm9ybWF0IChzYW1lIHJlcGxhY2VtZW50cyBhcyAtPmlzb0Zvcm1hdCgpKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MjI6ImNyZWF0ZUZyb21Mb2NhbGVGb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDthOjI6e3M6NDoibmFtZSI7czo2OiJmb3JtYXQiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6NjoibG9jYWxlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToyO2E6Mjp7czo0OiJuYW1lIjtzOjQ6InRpbWUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjM7YToyOntzOjQ6Im5hbWUiO3M6MjoidHoiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1pOjE7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEZhbHNlXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYSBzcGVjaWZpYyBmb3JtYXQgYW5kIGEgc3RyaW5nIGluIGEgZ2l2ZW4gbGFuZ3VhZ2UuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo2O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjI1OiJjcmVhdGVGcm9tTG9jYWxlSXNvRm9ybWF0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTo0OntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NjoiZm9ybWF0IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImxvY2FsZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MjthOjI6e3M6NDoibmFtZSI7czo0OiJ0aW1lIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aTozO2E6Mjp7czo0OiJuYW1lIjtzOjI6InR6IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319aToxO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xGYWxzZV8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODU6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgSVNPIGZvcm1hdCBhbmQgYSBzdHJpbmcgaW4gYSBnaXZlbiBsYW5ndWFnZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjc7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTQ6ImNyZWF0ZUZyb21UaW1lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTo0OntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NDoiaG91ciI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czo2OiJtaW51dGUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjI7YToyOntzOjQ6Im5hbWUiO3M6Njoic2Vjb25kIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aTozO2E6Mjp7czo0OiJuYW1lIjtzOjI6InR6IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc2OiJDcmVhdGUgYSBDYXJib24gaW5zdGFuY2UgZnJvbSBqdXN0IGEgdGltZS4gVGhlIGRhdGUgcG9ydGlvbiBpcyBzZXQgdG8gdG9kYXkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo4O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjIwOiJjcmVhdGVGcm9tVGltZVN0cmluZyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjQ6InRpbWUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6MjoidHoiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Nzg6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgdGltZSBzdHJpbmcuIFRoZSBkYXRlIHBvcnRpb24gaXMgc2V0IHRvIHRvZGF5LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6OTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToiY3JlYXRlRnJvbVRpbWVzdGFtcCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjk6InRpbWVzdGFtcCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxODU6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgdGltZXN0YW1wIGFuZCBzZXQgdGhlIHRpbWV6b25lICh1c2UgZGVmYXVsdCBvbmUgaWYgbm90IHNwZWNpZmllZCkuClRpbWVzdGFtcCBpbnB1dCBjYW4gYmUgZ2l2ZW4gYXMgaW50LCBmbG9hdCBvciBhIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIG51bWJlcnMuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxMDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoyMToiY3JlYXRlRnJvbVRpbWVzdGFtcE1zIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6OToidGltZXN0YW1wIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjI6InR6IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE0NToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzLgpUaW1lc3RhbXAgaW5wdXQgY2FuIGJlIGdpdmVuIGFzIGludCwgZmxvYXQgb3IgYSBzdHJpbmcgY29udGFpbmluZyBvbmUgb3IgbW9yZSBudW1iZXJzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MjQ6ImNyZWF0ZUZyb21UaW1lc3RhbXBNc1VUQyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjk6InRpbWVzdGFtcCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNDU6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcy4KVGltZXN0YW1wIGlucHV0IGNhbiBiZSBnaXZlbiBhcyBpbnQsIGZsb2F0IG9yIGEgc3RyaW5nIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgbnVtYmVycy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjEyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjIyOiJjcmVhdGVGcm9tVGltZXN0YW1wVVRDIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6OToidGltZXN0YW1wIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1ODoiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20gYW4gdGltZXN0YW1wIGtlZXBpbmcgdGhlIHRpbWV6b25lIHRvIFVUQy4KVGltZXN0YW1wIGlucHV0IGNhbiBiZSBnaXZlbiBhcyBpbnQsIGZsb2F0IG9yIGEgc3RyaW5nIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgbnVtYmVycy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjEzO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjE4OiJjcmVhdGVNaWRuaWdodERhdGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ5ZWFyIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjU6Im1vbnRoIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToyO2E6Mjp7czo0OiJuYW1lIjtzOjM6ImRheSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MzthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3OToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZyb20ganVzdCBhIGRhdGUuIFRoZSB0aW1lIHBvcnRpb24gaXMgc2V0IHRvIG1pZG5pZ2h0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTQ7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTA6ImNyZWF0ZVNhZmUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjc6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ5ZWFyIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjU6Im1vbnRoIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToyO2E6Mjp7czo0OiJuYW1lIjtzOjM6ImRheSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MzthOjI6e3M6NDoibmFtZSI7czo0OiJob3VyIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aTo0O2E6Mjp7czo0OiJuYW1lIjtzOjY6Im1pbnV0ZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6NTthOjI6e3M6NDoibmFtZSI7czo2OiJzZWNvbmQiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjY7YToyOntzOjQ6Im5hbWUiO3M6MjoidHoiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1pOjE7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEZhbHNlXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0MzA6IkNyZWF0ZSBhIG5ldyBzYWZlIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZS4KSWYgYW55IG9mICR5ZWFyLCAkbW9udGggb3IgJGRheSBhcmUgc2V0IHRvIG51bGwgdGhlaXIgbm93KCkgdmFsdWVzIHdpbGwKYmUgdXNlZC4KSWYgJGhvdXIgaXMgbnVsbCBpdCB3aWxsIGJlIHNldCB0byBpdHMgbm93KCkgdmFsdWUgYW5kIHRoZSBkZWZhdWx0CnZhbHVlcyBmb3IgJG1pbnV0ZSBhbmQgJHNlY29uZCB3aWxsIGJlIHRoZWlyIG5vdygpIHZhbHVlcy4KSWYgJGhvdXIgaXMgbm90IG51bGwgdGhlbiB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yICRtaW51dGUgYW5kICRzZWNvbmQKd2lsbCBiZSAwLgpJZiBvbmUgb2YgdGhlIHNldCB2YWx1ZXMgaXMgbm90IHZhbGlkLCBhbiBJbnZhbGlkRGF0ZUV4Y2VwdGlvbgp3aWxsIGJlIHRocm93bi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE1O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjEyOiJjcmVhdGVTdHJpY3QiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjc6e2k6MDthOjI6e3M6NDoibmFtZSI7czo4OiJ5ZWFyID0gMCI7czo0OiJ0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6OToibW9udGggPSAxIjtzOjQ6InR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fWk6MjthOjI6e3M6NDoibmFtZSI7czo3OiJkYXkgPSAxIjtzOjQ6InR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fWk6MzthOjI6e3M6NDoibmFtZSI7czo4OiJob3VyID0gMCI7czo0OiJ0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fX1pOjQ7YToyOntzOjQ6Im5hbWUiO3M6MTA6Im1pbnV0ZSA9IDAiO3M6NDoidHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX19aTo1O2E6Mjp7czo0OiJuYW1lIjtzOjEwOiJzZWNvbmQgPSAwIjtzOjQ6InR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fWk6NjthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkludGVyZmFjZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MzoiQ3JlYXRlIGEgbmV3IENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSB1c2luZyBzdHJpY3QgdmFsaWRhdGlvbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE2O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjIyOiJkaXNhYmxlSHVtYW5EaWZmT3B0aW9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MTU6Imh1bWFuRGlmZk9wdGlvbiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNTI6IkBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgpZb3Ugc2hvdWxkIHJhdGhlciB1c2UgdGhlIC0+c2V0dGluZ3MoKSBtZXRob2QuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxNztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoyMToiZW5hYmxlSHVtYW5EaWZmT3B0aW9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MTU6Imh1bWFuRGlmZk9wdGlvbiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNTI6IkBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgpZb3Ugc2hvdWxkIHJhdGhlciB1c2UgdGhlIC0+c2V0dGluZ3MoKSBtZXRob2QuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxODtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxNzoiZXhlY3V0ZVdpdGhMb2NhbGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo2OiJsb2NhbGUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6NDoiZnVuYyI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTcyOiJTZXQgdGhlIGN1cnJlbnQgbG9jYWxlIHRvIHRoZSBnaXZlbiwgZXhlY3V0ZSB0aGUgcGFzc2VkIGZ1bmN0aW9uLCByZXNldCB0aGUgbG9jYWxlIHRvIHByZXZpb3VzIG9uZSwKdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgY2xvc3VyZSAob3IgbnVsbCBpZiB0aGUgY2xvc3VyZSB3YXMgdm9pZCkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxOTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxNDoiZnJvbVNlcmlhbGl6ZWQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo1OiJ2YWx1ZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NDoiQ3JlYXRlIGFuIGluc3RhbmNlIGZyb20gYSBzZXJpYWxpemVkIHN0cmluZy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIwO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjEyOiJnZW5lcmljTWFjcm8iO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo1OiJtYWNybyI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czo4OiJwcmlvcml0eSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNDoiUmVnaXN0ZXIgYSBjdXN0b20gbWFjcm8uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyMTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToiZ2V0QXZhaWxhYmxlTG9jYWxlcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzNToiUmV0dXJucyB0aGUgbGlzdCBvZiBpbnRlcm5hbGx5IGF2YWlsYWJsZSBsb2NhbGVzIGFuZCBhbHJlYWR5IGxvYWRlZCBjdXN0b20gbG9jYWxlcy4KKEl0IHdpbGwgaWdub3JlIGN1c3RvbSB0cmFuc2xhdG9yIGR5bmFtaWMgbG9hZGluZy4pIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyMjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoyMzoiZ2V0QXZhaWxhYmxlTG9jYWxlc0luZm8iO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNjoiXENhcmJvblxMYW5ndWFnZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6Ikxhbmd1YWdlIjt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE0ODoiUmV0dXJucyBsaXN0IG9mIExhbmd1YWdlIG9iamVjdCBmb3IgZWFjaCBhdmFpbGFibGUgbG9jYWxlLiBUaGlzIG9iamVjdCBhbGxvdyB5b3UgdG8gZ2V0IHRoZSBJU08gbmFtZSwgbmF0aXZlCm5hbWUsIHJlZ2lvbiBhbmQgdmFyaWFudCBvZiB0aGUgbG9jYWxlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6NzoiZ2V0RGF5cyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJHZXQgdGhlIGRheXMgb2YgdGhlIHdlZWsiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI0O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjE3OiJnZXRGYWxsYmFja0xvY2FsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJHZXQgdGhlIGZhbGxiYWNrIGxvY2FsZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI1O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjI3OiJnZXRGb3JtYXRzVG9Jc29SZXBsYWNlbWVudHMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1NToiTGlzdCBvZiByZXBsYWNlbWVudHMgZnJvbSBkYXRlKCkgZm9ybWF0IHRvIGlzb0Zvcm1hdCgpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjY7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTk6ImdldEh1bWFuRGlmZk9wdGlvbnMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjYxOiJSZXR1cm4gZGVmYXVsdCBodW1hbkRpZmYoKSBvcHRpb25zIChtZXJnZWQgZmxhZ3MgYXMgaW50ZWdlcikuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyNztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxMToiZ2V0SXNvVW5pdHMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0ODoiUmV0dXJucyBsaXN0IG9mIGxvY2FsZSB1bml0cyBmb3IgSVNPIGZvcm1hdHRpbmcuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyODtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxMzoiZ2V0TGFzdEVycm9ycyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ6IiUxJHMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0ZG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fX19aToyOTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czo5OiJnZXRMb2NhbGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM0OiJHZXQgdGhlIGN1cnJlbnQgdHJhbnNsYXRvciBsb2NhbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozMDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czo4OiJnZXRNYWNybyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjQ6Im5hbWUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjQwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ2FsbGFibGVfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NDoiR2V0IHRoZSByYXcgY2FsbGFibGUgbWFjcm8gcmVnaXN0ZXJlZCBnbG9iYWxseSBmb3IgYSBnaXZlbiBuYW1lLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MzE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTE6ImdldE1pZERheUF0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMDoiZ2V0IG1pZGRheS9ub29uIGhvdXIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjMyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjEwOiJnZXRUZXN0Tm93IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODoiXENsb3N1cmUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJDbG9zdXJlIjt9fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX19czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODc6IkdldCB0aGUgQ2FyYm9uIGluc3RhbmNlIChyZWFsIG9yIG1vY2spIHRvIGJlIHJldHVybmVkIHdoZW4gYSAibm93IgppbnN0YW5jZSBpcyBjcmVhdGVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MzM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MjQ6ImdldFRpbWVGb3JtYXRCeVByZWNpc2lvbiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjEzOiJ1bml0UHJlY2lzaW9uIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NzA6IlJldHVybiBhIGZvcm1hdCBmcm9tIEg6aSB0byBIOmk6cy51IGFjY29yZGluZyB0byBnaXZlbiB1bml0IHByZWNpc2lvbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM0O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjI1OiJnZXRUcmFuc2xhdGlvbk1lc3NhZ2VXaXRoIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTo0OntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MTA6InRyYW5zbGF0b3IiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6Mzoia2V5IjtzOjQ6InR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fWk6MjthOjI6e3M6NDoibmFtZSI7czoxMzoibG9jYWxlID0gbnVsbCI7czo0OiJ0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fX1pOjM7YToyOntzOjQ6Im5hbWUiO3M6MTQ6ImRlZmF1bHQgPSBudWxsIjtzOjQ6InR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ4OiJSZXR1cm5zIHJhdyB0cmFuc2xhdGlvbiBtZXNzYWdlIGZvciBhIGdpdmVuIGtleS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM1O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjEzOiJnZXRUcmFuc2xhdG9yIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcU3ltZm9ueVxDb21wb25lbnRcVHJhbnNsYXRpb25cVHJhbnNsYXRvckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJUcmFuc2xhdG9ySW50ZXJmYWNlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQzOiJHZXQgdGhlIGRlZmF1bHQgdHJhbnNsYXRvciBpbnN0YW5jZSBpbiB1c2UuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozNjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxMzoiZ2V0V2Vla0VuZHNBdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjQ6IkdldCB0aGUgbGFzdCBkYXkgb2Ygd2VlayI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Mzc7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTU6ImdldFdlZWtTdGFydHNBdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjU6IkdldCB0aGUgZmlyc3QgZGF5IG9mIHdlZWsiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM4O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjE0OiJnZXRXZWVrZW5kRGF5cyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE2OiJHZXQgd2Vla2VuZCBkYXlzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozOTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czo5OiJoYXNGb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJkYXRlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImZvcm1hdCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUzOiJDaGVja3MgaWYgdGhlIChkYXRlKXRpbWUgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gZm9ybWF0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MjI6Imhhc0Zvcm1hdFdpdGhNb2RpZmllcnMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJkYXRlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImZvcm1hdCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUzOiJDaGVja3MgaWYgdGhlIChkYXRlKXRpbWUgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gZm9ybWF0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6ODoiaGFzTWFjcm8iO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJuYW1lIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzk6IkNoZWNrcyBpZiBtYWNybyBpcyByZWdpc3RlcmVkIGdsb2JhbGx5LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTk6Imhhc1JlbGF0aXZlS2V5d29yZHMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ0aW1lIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTY6IkRldGVybWluZSBpZiBhIHRpbWUgc3RyaW5nIHdpbGwgcHJvZHVjZSBhIHJlbGF0aXZlIGRhdGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxMDoiaGFzVGVzdE5vdyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTAwOiJEZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSB2YWxpZCB0ZXN0IGluc3RhbmNlIHNldC4gQSB2YWxpZCB0ZXN0IGluc3RhbmNlCmlzIGFueXRoaW5nIHRoYXQgaXMgbm90IG51bGwuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0NDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czo4OiJpbnN0YW5jZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjQ6ImRhdGUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDU6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgRGF0ZVRpbWUgb25lLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDU7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTE6ImlzSW1tdXRhYmxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1NjoiUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGNsYXNzL2luc3RhbmNlIGlzIGltbXV0YWJsZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ2O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjE2OiJpc01vZGlmaWFibGVVbml0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NDoidW5pdCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUzOiJSZXR1cm5zIHRydWUgaWYgYSBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZCB2aWEgc2V0dGVyLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDc7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6OToiaXNNdXRhYmxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1NDoiUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGNsYXNzL2luc3RhbmNlIGlzIG11dGFibGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0ODtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToiaXNTdHJpY3RNb2RlRW5hYmxlZCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA5OiJSZXR1cm5zIHRydWUgaWYgdGhlIHN0cmljdCBtb2RlIGlzIGdsb2JhbGx5IGluIHVzZSwgZmFsc2UgZWxzZS4KKEl0IGNhbiBiZSBvdmVycmlkZGVuIGluIHNwZWNpZmljIGluc3RhbmNlcy4pIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0OTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoyNDoibG9jYWxlSGFzRGlmZk9uZURheVdvcmRzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NjoibG9jYWxlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTk5OiJSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBpbnRlcm5hbGx5IHN1cHBvcnRlZCBhbmQgaGFzIHdvcmRzIGZvciAxLWRheSBkaWZmIChqdXN0IG5vdywgeWVzdGVyZGF5LCB0b21vcnJvdykuClN1cHBvcnQgaXMgY29uc2lkZXJlZCBlbmFibGVkIGlmIHRoZSAzIHdvcmRzIGFyZSB0cmFuc2xhdGVkIGluIHRoZSBnaXZlbiBsb2NhbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToibG9jYWxlSGFzRGlmZlN5bnRheCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImxvY2FsZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIwMToiUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgaW50ZXJuYWxseSBzdXBwb3J0ZWQgYW5kIGhhcyBkaWZmIHN5bnRheCBzdXBwb3J0IChhZ28sIGZyb20gbm93LCBiZWZvcmUsIGFmdGVyKS4KU3VwcG9ydCBpcyBjb25zaWRlcmVkIGVuYWJsZWQgaWYgdGhlIDQgc2VudGVuY2VzIGFyZSB0cmFuc2xhdGVkIGluIHRoZSBnaXZlbiBsb2NhbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoyNDoibG9jYWxlSGFzRGlmZlR3b0RheVdvcmRzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NjoibG9jYWxlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjAzOiJSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBpbnRlcm5hbGx5IHN1cHBvcnRlZCBhbmQgaGFzIHdvcmRzIGZvciAyLWRheXMgZGlmZiAoYmVmb3JlIHllc3RlcmRheSwgYWZ0ZXIgdG9tb3Jyb3cpLgpTdXBwb3J0IGlzIGNvbnNpZGVyZWQgZW5hYmxlZCBpZiB0aGUgMiB3b3JkcyBhcmUgdHJhbnNsYXRlZCBpbiB0aGUgZ2l2ZW4gbG9jYWxlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MjE6ImxvY2FsZUhhc1BlcmlvZFN5bnRheCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImxvY2FsZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIwNToiUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgaW50ZXJuYWxseSBzdXBwb3J0ZWQgYW5kIGhhcyBwZXJpb2Qgc3ludGF4IHN1cHBvcnQgKFggdGltZXMsIGV2ZXJ5IFgsIGZyb20gWCwgdG8gWCkuClN1cHBvcnQgaXMgY29uc2lkZXJlZCBlbmFibGVkIGlmIHRoZSA0IHNlbnRlbmNlcyBhcmUgdHJhbnNsYXRlZCBpbiB0aGUgZ2l2ZW4gbG9jYWxlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTk6ImxvY2FsZUhhc1Nob3J0VW5pdHMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo2OiJsb2NhbGUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNzU6IlJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIGludGVybmFsbHkgc3VwcG9ydGVkIGFuZCBoYXMgc2hvcnQtdW5pdHMgc3VwcG9ydC4KU3VwcG9ydCBpcyBjb25zaWRlcmVkIGVuYWJsZWQgaWYgZWl0aGVyIHllYXIsIGRheSBvciBob3VyIGhhcyBhIHNob3J0IHZhcmlhbnQgdHJhbnNsYXRlZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU0O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjU6Im1hY3JvIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NDoibmFtZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czo1OiJtYWNybyI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNDoiUmVnaXN0ZXIgYSBjdXN0b20gbWFjcm8uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1NTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czo0OiJtYWtlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MzoidmFyIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMzg6Ik1ha2UgYSBDYXJib24gaW5zdGFuY2UgZnJvbSBnaXZlbiB2YXJpYWJsZSBpZiBwb3NzaWJsZS4KQWx3YXlzIHJldHVybiBhIG5ldyBpbnN0YW5jZS4gUGFyc2Ugb25seSBzdHJpbmdzIGFuZCBvbmx5IHRoZXNlIGxpa2VseSB0byBiZSBkYXRlcyAoc2tpcCBpbnRlcnZhbHMKYW5kIHJlY3VycmVuY2VzKS4gVGhyb3cgYW4gZXhjZXB0aW9uIGZvciBpbnZhbGlkIGZvcm1hdCwgYnV0IG90aGVyd2lzZSByZXR1cm4gbnVsbC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU2O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjg6Im1heFZhbHVlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTc6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmb3IgdGhlIGdyZWF0ZXN0IHN1cHBvcnRlZCBkYXRlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTc7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6ODoibWluVmFsdWUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1NToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZvciB0aGUgbG93ZXN0IHN1cHBvcnRlZCBkYXRlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTg7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6NToibWl4aW4iO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo1OiJtaXhpbiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNDoiTWl4IGFub3RoZXIgb2JqZWN0IGludG8gdGhlIGNsYXNzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTk7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6Mzoibm93IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MjoidHoiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTI6IkdldCBhIENhcmJvbiBpbnN0YW5jZSBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjYwO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjU6InBhcnNlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NDoidGltZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjQ6IkNyZWF0ZSBhIGNhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3RyaW5nLgpUaGlzIGlzIGFuIGFsaWFzIGZvciB0aGUgY29uc3RydWN0b3IgdGhhdCBhbGxvd3MgYmV0dGVyIGZsdWVudCBzeW50YXgKYXMgaXQgYWxsb3dzIHlvdSB0byBkbyBDYXJib246OnBhcnNlKCdNb25kYXkgbmV4dCB3ZWVrJyktPmZuKCkgcmF0aGVyCnRoYW4gKG5ldyBDYXJib24oJ01vbmRheSBuZXh0IHdlZWsnKSktPmZuKCkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo2MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxNToicGFyc2VGcm9tTG9jYWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NDoidGltZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czo2OiJsb2NhbGUiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjI7YToyOntzOjQ6Im5hbWUiO3M6MjoidHoiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODU6IkNyZWF0ZSBhIGNhcmJvbiBpbnN0YW5jZSBmcm9tIGEgbG9jYWxpemVkIHN0cmluZyAoaW4gRnJlbmNoLCBKYXBhbmVzZSwgQXJhYmljLCBldGMuKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjYyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjEwOiJwbHVyYWxVbml0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NDoidW5pdCI7czo0OiJ0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3ODoiUmV0dXJucyBzdGFuZGFyZGl6ZWQgcGx1cmFsIG9mIGEgZ2l2ZW4gc2luZ3VsYXIvcGx1cmFsIHVuaXQgbmFtZSAoaW4gRW5nbGlzaCkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo2MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToicmF3Q3JlYXRlRnJvbUZvcm1hdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6Mzp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjY6ImZvcm1hdCI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czo0OiJ0aW1lIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToyO2E6Mjp7czo0OiJuYW1lIjtzOjI6InR6IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319aToxO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xGYWxzZV8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDg6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmcm9tIGEgc3BlY2lmaWMgZm9ybWF0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NjQ7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6ODoicmF3UGFyc2UiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ0aW1lIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjI6InR6IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIyNDoiQ3JlYXRlIGEgY2FyYm9uIGluc3RhbmNlIGZyb20gYSBzdHJpbmcuClRoaXMgaXMgYW4gYWxpYXMgZm9yIHRoZSBjb25zdHJ1Y3RvciB0aGF0IGFsbG93cyBiZXR0ZXIgZmx1ZW50IHN5bnRheAphcyBpdCBhbGxvd3MgeW91IHRvIGRvIENhcmJvbjo6cGFyc2UoJ01vbmRheSBuZXh0IHdlZWsnKS0+Zm4oKSByYXRoZXIKdGhhbiAobmV3IENhcmJvbignTW9uZGF5IG5leHQgd2VlaycpKS0+Zm4oKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjY1O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjExOiJyZXNldE1hY3JvcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM3OiJSZW1vdmUgYWxsIG1hY3JvcyBhbmQgZ2VuZXJpYyBtYWNyb3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo2NjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToicmVzZXRNb250aHNPdmVyZmxvdyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMzNDoiQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCllvdSBzaG91bGQgcmF0aGVyIHVzZSB0aGUgLT5zZXR0aW5ncygpIG1ldGhvZC4KT3IgeW91IGNhbiB1c2UgbWV0aG9kIHZhcmlhbnRzOiBhZGRNb250aHNXaXRoT3ZlcmZsb3cvYWRkTW9udGhzTm9PdmVyZmxvdywgc2FtZSB2YXJpYW50cwphcmUgYXZhaWxhYmxlIGZvciBxdWFydGVycywgeWVhcnMsIGRlY2FkZSwgY2VudHVyaWVzLCBtaWxsZW5uaWEgKHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Njc7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTk6InJlc2V0VG9TdHJpbmdGb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4NToiUmVzZXQgdGhlIGZvcm1hdCB1c2VkIHRvIHRoZSBkZWZhdWx0IHdoZW4gdHlwZSBqdWdnbGluZyBhIENhcmJvbiBpbnN0YW5jZSB0byBhIHN0cmluZyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Njg7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTg6InJlc2V0WWVhcnNPdmVyZmxvdyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMzMjoiQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCllvdSBzaG91bGQgcmF0aGVyIHVzZSB0aGUgLT5zZXR0aW5ncygpIG1ldGhvZC4KT3IgeW91IGNhbiB1c2UgbWV0aG9kIHZhcmlhbnRzOiBhZGRZZWFyc1dpdGhPdmVyZmxvdy9hZGRZZWFyc05vT3ZlcmZsb3csIHNhbWUgdmFyaWFudHMKYXJlIGF2YWlsYWJsZSBmb3IgcXVhcnRlcnMsIHllYXJzLCBkZWNhZGUsIGNlbnR1cmllcywgbWlsbGVubmlhIChzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjY5O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjE0OiJzZXJpYWxpemVVc2luZyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjg6ImNhbGxiYWNrIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0NzoiQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIHRyYW5zZm9ybSBDYXJib24gb2JqZWN0IGJlZm9yZSB0aGUgc2VyaWFsaXphdGlvbi4KSlNPTiBzZXJpYWxpemUgYWxsIENhcmJvbiBpbnN0YW5jZXMgdXNpbmcgdGhlIGdpdmVuIGNhbGxiYWNrLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NzA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTc6InNldEZhbGxiYWNrTG9jYWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NjoibG9jYWxlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJTZXQgdGhlIGZhbGxiYWNrIGxvY2FsZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjcxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjE5OiJzZXRIdW1hbkRpZmZPcHRpb25zIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MTY6Imh1bWFuRGlmZk9wdGlvbnMiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTUyOiJAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NzI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6OToic2V0TG9jYWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NjoibG9jYWxlIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU5OiJTZXQgdGhlIGN1cnJlbnQgdHJhbnNsYXRvciBsb2NhbGUgYW5kIGluZGljYXRlIGlmIHRoZSBzb3VyY2UgbG9jYWxlIGZpbGUgZXhpc3RzLgpQYXNzICdhdXRvJyBhcyBsb2NhbGUgdG8gdXNlIGNsb3Nlc3QgbGFuZ3VhZ2UgZnJvbSB0aGUgY3VycmVudCBMQ19USU1FIGxvY2FsZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjczO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjExOiJzZXRNaWREYXlBdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjQ6ImhvdXIiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDA0OiJAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgY29uc2lkZXIgbWlkLWRheSBpcyBhbHdheXMgMTJwbSwgdGhlbiBpZiB5b3UgbmVlZCB0byB0ZXN0IGlmIGl0J3MgYW4gb3RoZXIKICAgICAgICAgICAgaG91ciwgdGVzdCBpdCBleHBsaWNpdGx5OgogICAgICAgICAgICAgICAgJGRhdGUtPmZvcm1hdCgnRycpID09IDEzCiAgICAgICAgICAgIG9yIHRvIHNldCBleHBsaWNpdGx5IHRvIGEgZ2l2ZW4gaG91cjoKICAgICAgICAgICAgICAgICRkYXRlLT5zZXRUaW1lKDEzLCAwLCAwLCAwKQpTZXQgbWlkZGF5L25vb24gaG91ciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NzQ7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTA6InNldFRlc3ROb3ciO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo3OiJ0ZXN0Tm93IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjkyNzoiU2V0IGEgQ2FyYm9uIGluc3RhbmNlIChyZWFsIG9yIG1vY2spIHRvIGJlIHJldHVybmVkIHdoZW4gYSAibm93IgppbnN0YW5jZSBpcyBjcmVhdGVkLiAgVGhlIHByb3ZpZGVkIGluc3RhbmNlIHdpbGwgYmUgcmV0dXJuZWQKc3BlY2lmaWNhbGx5IHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICAtIEEgY2FsbCB0byB0aGUgc3RhdGljIG5vdygpIG1ldGhvZCwgZXguIENhcmJvbjo6bm93KCkKICAtIFdoZW4gYSBudWxsIChvciBibGFuayBzdHJpbmcpIGlzIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3Igb3IgcGFyc2UoKSwgZXguIG5ldyBDYXJib24obnVsbCkKICAtIFdoZW4gdGhlIHN0cmluZyAibm93IiBpcyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yIG9yIHBhcnNlKCksIGV4LiBuZXcgQ2FyYm9uKCdub3cnKQogIC0gV2hlbiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBkZXNpcmVkIHRpbWUgaXMgcGFzc2VkIHRvIENhcmJvbjo6cGFyc2UoKS4KTm90ZSB0aGUgdGltZXpvbmUgcGFyYW1ldGVyIHdhcyBsZWZ0IG91dCBvZiB0aGUgZXhhbXBsZXMgYWJvdmUgYW5kCmhhcyBubyBhZmZlY3QgYXMgdGhlIG1vY2sgdmFsdWUgd2lsbCBiZSByZXR1cm5lZCByZWdhcmRsZXNzIG9mIGl0cyB2YWx1ZS4KT25seSB0aGUgbW9tZW50IGlzIG1vY2tlZCB3aXRoIHNldFRlc3ROb3coKSwgdGhlIHRpbWV6b25lIHdpbGwgc3RpbGwgYmUgdGhlIG9uZSBwYXNzZWQKYXMgcGFyYW1ldGVyIG9mIGRhdGVfZGVmYXVsdF90aW1lem9uZV9nZXQoKSBhcyBhIGZhbGxiYWNrIChzZWUgc2V0VGVzdE5vd0FuZFRpbWV6b25lKCkpLgpUbyBjbGVhciB0aGUgdGVzdCBpbnN0YW5jZSBjYWxsIHRoaXMgbWV0aG9kIHVzaW5nIHRoZSBkZWZhdWx0CnBhcmFtZXRlciBvZiBudWxsLgovIVwgVXNlIHRoaXMgbWV0aG9kIGZvciB1bml0IHRlc3RzIG9ubHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo3NTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoyMToic2V0VGVzdE5vd0FuZFRpbWV6b25lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6NzoidGVzdE5vdyI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fWk6MTthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3Njc6IlNldCBhIENhcmJvbiBpbnN0YW5jZSAocmVhbCBvciBtb2NrKSB0byBiZSByZXR1cm5lZCB3aGVuIGEgIm5vdyIKaW5zdGFuY2UgaXMgY3JlYXRlZC4gIFRoZSBwcm92aWRlZCBpbnN0YW5jZSB3aWxsIGJlIHJldHVybmVkCnNwZWNpZmljYWxseSB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAgLSBBIGNhbGwgdG8gdGhlIHN0YXRpYyBub3coKSBtZXRob2QsIGV4LiBDYXJib246Om5vdygpCiAgLSBXaGVuIGEgbnVsbCAob3IgYmxhbmsgc3RyaW5nKSBpcyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yIG9yIHBhcnNlKCksIGV4LiBuZXcgQ2FyYm9uKG51bGwpCiAgLSBXaGVuIHRoZSBzdHJpbmcgIm5vdyIgaXMgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciBvciBwYXJzZSgpLCBleC4gbmV3IENhcmJvbignbm93JykKICAtIFdoZW4gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZGVzaXJlZCB0aW1lIGlzIHBhc3NlZCB0byBDYXJib246OnBhcnNlKCkuCkl0IHdpbGwgYWxzbyBhbGlnbiBkZWZhdWx0IHRpbWV6b25lIChlLmcuIGNhbGwgZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgpKSB3aXRoCnRoZSBzZWNvbmQgYXJndW1lbnQgb3IgaWYgbnVsbCwgd2l0aCB0aGUgdGltZXpvbmUgb2YgdGhlIGdpdmVuIGRhdGUgb2JqZWN0LgpUbyBjbGVhciB0aGUgdGVzdCBpbnN0YW5jZSBjYWxsIHRoaXMgbWV0aG9kIHVzaW5nIHRoZSBkZWZhdWx0CnBhcmFtZXRlciBvZiBudWxsLgovIVwgVXNlIHRoaXMgbWV0aG9kIGZvciB1bml0IHRlc3RzIG9ubHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo3NjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxNzoic2V0VG9TdHJpbmdGb3JtYXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo2OiJmb3JtYXQiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDE2OiJAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KICAgICAgICAgICAgWW91IHNob3VsZCByYXRoZXIgbGV0IENhcmJvbiBvYmplY3QgYmVpbmcgY2FzdGVkIHRvIHN0cmluZyB3aXRoIERFRkFVTFRfVE9fU1RSSU5HX0ZPUk1BVCwgYW5kCiAgICAgICAgICAgIHVzZSBvdGhlciBtZXRob2Qgb3IgY3VzdG9tIGZvcm1hdCBwYXNzZWQgdG8gZm9ybWF0KCkgbWV0aG9kIGlmIHlvdSBuZWVkIHRvIGR1bXAgYW4gb3RoZXIgc3RyaW5nCiAgICAgICAgICAgIGZvcm1hdC4KU2V0IHRoZSBkZWZhdWx0IGZvcm1hdCB1c2VkIHdoZW4gdHlwZSBqdWdnbGluZyBhIENhcmJvbiBpbnN0YW5jZSB0byBhIHN0cmluZyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Nzc7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTM6InNldFRyYW5zbGF0b3IiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czoxMDoidHJhbnNsYXRvciI7czo0OiJ0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxDYXJib25cVHJhbnNsYXRvckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJUcmFuc2xhdG9ySW50ZXJmYWNlIjt9fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDM6IlNldCB0aGUgZGVmYXVsdCB0cmFuc2xhdG9yIGluc3RhbmNlIHRvIHVzZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjc4O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjc6InNldFV0ZjgiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ1dGY4IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXENhcmJvblxDYXJib25JbW11dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2FyYm9uSW1tdXRhYmxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzMToiQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIHVzZSBVVEYtOCBsYW5ndWFnZSBwYWNrYWdlcyBvbiBldmVyeSBtYWNoaW5lLgpTZXQgaWYgVVRGOCB3aWxsIGJlIHVzZWQgZm9yIGxvY2FsaXplZCBkYXRlL3RpbWUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo3OTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxMzoic2V0V2Vla0VuZHNBdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjM6ImRheSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0Mjk6IkBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogICAgICAgICAgICBVc2UgJHdlZWtTdGFydHNBdCBvcHRpb25hbCBwYXJhbWV0ZXIgaW5zdGVhZCB3aGVuIHVzaW5nIHN0YXJ0T2ZXZWVrLCBmbG9vcldlZWssIGNlaWxXZWVrCiAgICAgICAgICAgIG9yIHJvdW5kV2VlayBtZXRob2QuIFlvdSBjYW4gYWxzbyB1c2UgdGhlICdmaXJzdF9kYXlfb2Zfd2VlaycgbG9jYWxlIHNldHRpbmcgdG8gY2hhbmdlIHRoZQogICAgICAgICAgICBzdGFydCBvZiB3ZWVrIGFjY29yZGluZyB0byBjdXJyZW50IGxvY2FsZSBzZWxlY3RlZCBhbmQgaW1wbGljaXRseSB0aGUgZW5kIG9mIHdlZWsuClNldCB0aGUgbGFzdCBkYXkgb2Ygd2VlayI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6ODA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTU6InNldFdlZWtTdGFydHNBdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjM6ImRheSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOTI6IkBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgogICAgICAgICAgICBVc2UgJHdlZWtFbmRzQXQgb3B0aW9uYWwgcGFyYW1ldGVyIGluc3RlYWQgd2hlbiB1c2luZyBlbmRPZldlZWsgbWV0aG9kLiBZb3UgY2FuIGFsc28gdXNlIHRoZQogICAgICAgICAgICAnZmlyc3RfZGF5X29mX3dlZWsnIGxvY2FsZSBzZXR0aW5nIHRvIGNoYW5nZSB0aGUgc3RhcnQgb2Ygd2VlayBhY2NvcmRpbmcgdG8gY3VycmVudCBsb2NhbGUKICAgICAgICAgICAgc2VsZWN0ZWQgYW5kIGltcGxpY2l0bHkgdGhlIGVuZCBvZiB3ZWVrLgpTZXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo4MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxNDoic2V0V2Vla2VuZERheXMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJkYXlzIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjg3NToiQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCiAgICAgICAgICAgIFlvdSBzaG91bGQgcmF0aGVyIGNvbnNpZGVyIHdlZWstZW5kIGlzIGFsd2F5cyBzYXR1cmRheSBhbmQgc3VuZGF5LCBhbmQgaWYgeW91IGhhdmUgc29tZSBjdXN0b20KICAgICAgICAgICAgd2Vlay1lbmQgZGF5cyB0byBoYW5kbGUsIGdpdmUgdG8gdGhvc2UgZGF5cyBhbiBvdGhlciBuYW1lIGFuZCBjcmVhdGUgYSBtYWNybyBmb3IgdGhlbToKICAgICAgICAgICAgYGBgCiAgICAgICAgICAgIENhcmJvbjo6bWFjcm8oJ2lzRGF5T2ZmJywgZnVuY3Rpb24gKCRkYXRlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGRhdGUtPmlzU3VuZGF5KCkgfHwgJGRhdGUtPmlzTW9uZGF5KCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBDYXJib246Om1hY3JvKCdpc05vdERheU9mZicsIGZ1bmN0aW9uICgkZGF0ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuICEkZGF0ZS0+aXNEYXlPZmYoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlmICgkc29tZURhdGUtPmlzRGF5T2ZmKCkpIC4uLgogICAgICAgICAgICBpZiAoJHNvbWVEYXRlLT5pc05vdERheU9mZigpKSAuLi4KICAgICAgICAgICAgLy8gQWRkIDUgbm90LW9mZiBkYXlzCiAgICAgICAgICAgICRjb3VudCA9IDU7CiAgICAgICAgICAgIHdoaWxlICgkc29tZURhdGUtPmlzRGF5T2ZmKCkgfHwgKCRjb3VudC0tID4gMCkpIHsKICAgICAgICAgICAgICAgICRzb21lRGF0ZS0+YWRkRGF5KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYGBgClNldCB3ZWVrZW5kIGRheXMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjgyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjIwOiJzaG91bGRPdmVyZmxvd01vbnRocyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODE6IkdldCB0aGUgbW9udGggb3ZlcmZsb3cgZ2xvYmFsIGJlaGF2aW9yIChjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzcGVjaWZpYyBpbnN0YW5jZXMpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6ODM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTk6InNob3VsZE92ZXJmbG93WWVhcnMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjgxOiJHZXQgdGhlIG1vbnRoIG92ZXJmbG93IGdsb2JhbCBiZWhhdmlvciAoY2FuIGJlIG92ZXJyaWRkZW4gaW4gc3BlY2lmaWMgaW5zdGFuY2VzKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjg0O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjEyOiJzaW5ndWxhclVuaXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czo0OiJ1bml0IjtzOjQ6InR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjgwOiJSZXR1cm5zIHN0YW5kYXJkaXplZCBzaW5ndWxhciBvZiBhIGdpdmVuIHNpbmd1bGFyL3BsdXJhbCB1bml0IG5hbWUgKGluIEVuZ2xpc2gpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6ODU7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6NToidG9kYXkiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZvciB0b2RheS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjg2O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZCI6Njp7czo3OiIAKgBuYW1lIjtzOjY6Im1ldGhvZCI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABtZXRob2ROYW1lIjtzOjg6InRvbW9ycm93IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MjoidHoiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzg6IkNyZWF0ZSBhIENhcmJvbiBpbnN0YW5jZSBmb3IgdG9tb3Jyb3cuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo4NztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxOToidHJhbnNsYXRlVGltZVN0cmluZyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABhcmd1bWVudHMiO2E6NDp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjEwOiJ0aW1lU3RyaW5nIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjQ6ImZyb20iO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjI7YToyOntzOjQ6Im5hbWUiO3M6MjoidG8iO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1pOjM7YToyOntzOjQ6Im5hbWUiO3M6NDoibW9kZSI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUwOiJUcmFuc2xhdGUgYSB0aW1lIHN0cmluZyBmcm9tIGEgbG9jYWxlIHRvIGFuIG90aGVyLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6ODg7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTM6InRyYW5zbGF0ZVdpdGgiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDthOjI6e3M6NDoibmFtZSI7czoxMDoidHJhbnNsYXRvciI7czo0OiJ0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxDYXJib25cVHJhbnNsYXRvckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJUcmFuc2xhdG9ySW50ZXJmYWNlIjt9fX1pOjE7YToyOntzOjQ6Im5hbWUiO3M6Mzoia2V5IjtzOjQ6InR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fWk6MjthOjI6e3M6NDoibmFtZSI7czoxNToicGFyYW1ldGVycyA9IFtdIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1pOjM7YToyOntzOjQ6Im5hbWUiO3M6NjoibnVtYmVyIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTc6IlRyYW5zbGF0ZSB1c2luZyB0cmFuc2xhdGlvbiBzdHJpbmcgb3IgY2FsbGJhY2sgYXZhaWxhYmxlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6ODk7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTc6InVzZU1vbnRoc092ZXJmbG93IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7YToyOntzOjQ6Im5hbWUiO3M6MTQ6Im1vbnRoc092ZXJmbG93IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMzNDoiQGRlcHJlY2F0ZWQgVG8gYXZvaWQgY29uZmxpY3QgYmV0d2VlbiBkaWZmZXJlbnQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBzdGF0aWMgc2V0dGVycyBzaG91bGQgbm90IGJlIHVzZWQuCllvdSBzaG91bGQgcmF0aGVyIHVzZSB0aGUgLT5zZXR0aW5ncygpIG1ldGhvZC4KT3IgeW91IGNhbiB1c2UgbWV0aG9kIHZhcmlhbnRzOiBhZGRNb250aHNXaXRoT3ZlcmZsb3cvYWRkTW9udGhzTm9PdmVyZmxvdywgc2FtZSB2YXJpYW50cwphcmUgYXZhaWxhYmxlIGZvciBxdWFydGVycywgeWVhcnMsIGRlY2FkZSwgY2VudHVyaWVzLCBtaWxsZW5uaWEgKHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6OTA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTM6InVzZVN0cmljdE1vZGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czoxNzoic3RyaWN0TW9kZUVuYWJsZWQiO3M6NDoidHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZABpc1N0YXRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcQ2FyYm9uXENhcmJvbkltbXV0YWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDYXJib25JbW11dGFibGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTUyOiJAZGVwcmVjYXRlZCBUbyBhdm9pZCBjb25mbGljdCBiZXR3ZWVuIGRpZmZlcmVudCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHN0YXRpYyBzZXR0ZXJzIHNob3VsZCBub3QgYmUgdXNlZC4KWW91IHNob3VsZCByYXRoZXIgdXNlIHRoZSAtPnNldHRpbmdzKCkgbWV0aG9kLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6OTE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kIjo2OntzOjc6IgAqAG5hbWUiO3M6NjoibWV0aG9kIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAG1ldGhvZE5hbWUiO3M6MTY6InVzZVllYXJzT3ZlcmZsb3ciO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czoxMzoieWVhcnNPdmVyZmxvdyI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzI6IkBkZXByZWNhdGVkIFRvIGF2b2lkIGNvbmZsaWN0IGJldHdlZW4gZGlmZmVyZW50IHRoaXJkLXBhcnR5IGxpYnJhcmllcywgc3RhdGljIHNldHRlcnMgc2hvdWxkIG5vdCBiZSB1c2VkLgpZb3Ugc2hvdWxkIHJhdGhlciB1c2UgdGhlIC0+c2V0dGluZ3MoKSBtZXRob2QuCk9yIHlvdSBjYW4gdXNlIG1ldGhvZCB2YXJpYW50czogYWRkWWVhcnNXaXRoT3ZlcmZsb3cvYWRkWWVhcnNOb092ZXJmbG93LCBzYW1lIHZhcmlhbnRzCmFyZSBhdmFpbGFibGUgZm9yIHF1YXJ0ZXJzLCB5ZWFycywgZGVjYWRlLCBjZW50dXJpZXMsIG1pbGxlbm5pYSAoc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcykuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo5MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czoxMToid2l0aFRlc3ROb3ciO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDthOjI6e3M6NDoibmFtZSI7czo3OiJ0ZXN0Tm93IjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319aToxO2E6Mjp7czo0OiJuYW1lIjtzOjg6ImNhbGxiYWNrIjtzOjQ6InR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAaXNTdGF0aWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxOTQ6IlRlbXBvcmFyaWx5IHNldHMgYSBzdGF0aWMgZGF0ZSB0byBiZSB1c2VkIHdpdGhpbiB0aGUgY2FsbGJhY2suClVzaW5nIHNldFRlc3ROb3cgdG8gc2V0IHRoZSBkYXRlLCBleGVjdXRpbmcgdGhlIGNhbGxiYWNrLCB0aGVuCmNsZWFyaW5nIHRoZSB0ZXN0IGluc3RhbmNlLgovIVwgVXNlIHRoaXMgbWV0aG9kIGZvciB1bml0IHRlc3RzIG9ubHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo5MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QiOjY6e3M6NzoiACoAbmFtZSI7czo2OiJtZXRob2QiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAbWV0aG9kTmFtZSI7czo5OiJ5ZXN0ZXJkYXkiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDthOjI6e3M6NDoibmFtZSI7czoyOiJ0eiI7czo0OiJ0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTWV0aG9kAGlzU3RhdGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxDYXJib25cQ2FyYm9uSW1tdXRhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkNhcmJvbkltbXV0YWJsZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1MToiQ3JlYXRlIGEgQ2FyYm9uIGluc3RhbmNlIGZvciB5ZXN0ZXJkYXkuCgo8L2F1dG9kb2M+IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6NjoiQ2FyYm9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YToxOntzOjc6IkNsb3N1cmUiO3M6NzoiQ2xvc3VyZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNToiXENhcmJvblxGYWN0b3J5IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiRmFjdG9yeSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToxOntzOjM2OiJcQ2FyYm9uXEZhY3RvcnlJbW11dGFibGU6OiRjbGFzc05hbWUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcQ2FyYm9uXEZhY3RvcnlJbW11dGFibGU6OiRjbGFzc05hbWUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJjbGFzc05hbWUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czozMDoiXENhcmJvblxDYXJib25JbW11dGFibGU6OmNsYXNzIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";