1789595936
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3Accd2907309e56e007eccf7506ef49dc3-6dc525e88e26b9a679be777ada01dd13
s:7692:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEyOiJkZXBvc2l0by5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNmRjNTI1ZTg4ZTI2YjlhNjc5YmU3NzdhZGEwMWRkMTMiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozNzoiYmFja2VuZC9hcGkvdjJwZ2dwL3J1dGFzL2RlcG9zaXRvLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NDg1MToiPD9waHANCnJldHVybiBbDQogICAgJ2FqdXN0YXJEZXBvc2l0bycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86OmFqdXN0YXJEZXBvc2l0bygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbigpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ3RpcG8nKSwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0SW50KCdpZCcpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ3ZhbG9yJykNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAnYW5hZGlyQW5hbGlzaXMnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgICRpZERlcG9zaXRvID0gJGN0eC0+cG9zdEludCgnaWREZXBvc2l0bycpOw0KICAgICAgICAgICAgaWYgKCRpZERlcG9zaXRvIDw9IDApIHsNCiAgICAgICAgICAgICAgICBSZXNwdWVzdGE6OmVycm9yKCdGYWx0YSBlbCBkZXDDs3NpdG8uJywgNDAwKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHVzZXJmaWxlID0gJF9GSUxFU1sndXNlcmZpbGUnXSA/PyBudWxsOw0KICAgICAgICAgICAgaWYgKCFpc19hcnJheSgkdXNlcmZpbGUpIHx8ICgkdXNlcmZpbGVbJ2Vycm9yJ10gPz8gVVBMT0FEX0VSUl9OT19GSUxFKSAhPT0gVVBMT0FEX0VSUl9PSykgew0KICAgICAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ05vIHNlIHJlY2liacOzIGVsIGFyY2hpdm8uJywgNDAwKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvckRlcG9zaXRvOjphbmFkaXJBbmFsaXNpcygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbigpLA0KICAgICAgICAgICAgICAgICRpZERlcG9zaXRvLA0KICAgICAgICAgICAgICAgICR1c2VyZmlsZQ0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9kZXBvc2l0b3MnDQogICAgKSwNCg0KICAgICdhbmFkaXJPYnNlcnZhY2lvbmVzJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICAkZGVwb3NpdG8gPSAkY3R4LT5wb3N0SW50KCdkZXBvc2l0bycpOw0KICAgICAgICAgICAgJG9ic2VydmFjaW9uZXMgPSAkY3R4LT5wb3N0KCdvYnNlcnZhY2lvbmVzJyk7DQoNCiAgICAgICAgICAgIGlmIChlbXB0eSgkX1BPU1RbJ2RlcG9zaXRvJ10pIHx8IGVtcHR5KCRfUE9TVFsnb2JzZXJ2YWNpb25lcyddKSkgew0KICAgICAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ0ZhbHRhbiBkYXRvcy4nLCA0MDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvckRlcG9zaXRvOjppbnNlcnRPYnNlcnZhY2lvbmVzKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uKCksDQogICAgICAgICAgICAgICAgJGRlcG9zaXRvLA0KICAgICAgICAgICAgICAgICRvYnNlcnZhY2lvbmVzDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ2RldGFsbGVEZXBvc2l0bycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvckRlcG9zaXRvOjpkZXRhbGxlRGVwb3NpdG8oDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb24oKSwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0SW50KCdzdWJ0aXBvcHJpbWFyaW8nKSwNCiAgICAgICAgICAgIClbJ2RhdGEnXSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9kZXBvc2l0b3MnDQogICAgKSwNCg0KICAgICdvYnRlbmVyQm9kZWdhQWNvcmRlb24nID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JEZXBvc2l0bzo6b2J0ZW5lckJvZGVnYUFjb3JkZW9uKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzLA0KICAgICAgICAgICAgKVsnZGF0YSddKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ29idGVuZXJGaWx0cmFkb0RlcG9zaXRvJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86OnZlckZpbHRyYWRvcygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkc1swXSwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0KCdub21icmVib2RlZ2EnKSwNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAnZ2V0X2RlcG9zaXRvcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvckRlcG9zaXRvOjpnZXRMaXN0YWRvKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ29idGVuZXJTYWxpZGFzTXVlc3RyYURlcG9zaXRvJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86Om9idGVuZXJTYWxpZGFzTXVlc3RyYURlcG9zaXRvKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzWzBdLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3RJbnQoJ3N1YnRpcG9wcmltYXJpbycpLA0KICAgICAgICAgICAgKVsnZGF0YSddKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ3ZlckFuYWxpc2lzJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86OnZlckFuYWxpc2lzKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzWzBdLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3RJbnQoJ2lkJyksDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ2FuYWRpckxvdGVBY3R1YWwnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JEZXBvc2l0bzo6aW5zZXJ0TG90ZUFjdHVhbCgNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkc1swXSwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0KCdkZXBvc2l0bycpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ2xvdGVhY3R1YWwnKSwNCiAgICAgICAgICAgICkNCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9kZXBvc2l0b3MnDQogICAgKSwNCl07IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";