1789595935
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3A8b112f1807d61251c5de76c577f19b02-6dc525e88e26b9a679be777ada01dd13
s:7688:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEyOiJkZXBvc2l0by5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNmRjNTI1ZTg4ZTI2YjlhNjc5YmU3NzdhZGEwMWRkMTMiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozMzoiYmFja2VuZC9hcGkvdjIvcnV0YXMvZGVwb3NpdG8ucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo0ODUxOiI8P3BocA0KcmV0dXJuIFsNCiAgICAnYWp1c3RhckRlcG9zaXRvJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86IEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JEZXBvc2l0bzo6YWp1c3RhckRlcG9zaXRvKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uKCksDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdCgndGlwbycpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3RJbnQoJ2lkJyksDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdCgndmFsb3InKQ0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9kZXBvc2l0b3MnDQogICAgKSwNCg0KICAgICdhbmFkaXJBbmFsaXNpcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGlkRGVwb3NpdG8gPSAkY3R4LT5wb3N0SW50KCdpZERlcG9zaXRvJyk7DQogICAgICAgICAgICBpZiAoJGlkRGVwb3NpdG8gPD0gMCkgew0KICAgICAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ0ZhbHRhIGVsIGRlcMOzc2l0by4nLCA0MDApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkdXNlcmZpbGUgPSAkX0ZJTEVTWyd1c2VyZmlsZSddID8/IG51bGw7DQogICAgICAgICAgICBpZiAoIWlzX2FycmF5KCR1c2VyZmlsZSkgfHwgKCR1c2VyZmlsZVsnZXJyb3InXSA/PyBVUExPQURfRVJSX05PX0ZJTEUpICE9PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAgICAgUmVzcHVlc3RhOjplcnJvcignTm8gc2UgcmVjaWJpw7MgZWwgYXJjaGl2by4nLCA0MDApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86OmFuYWRpckFuYWxpc2lzKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uKCksDQogICAgICAgICAgICAgICAgJGlkRGVwb3NpdG8sDQogICAgICAgICAgICAgICAgJHVzZXJmaWxlDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ2FuYWRpck9ic2VydmFjaW9uZXMnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgICRkZXBvc2l0byA9ICRjdHgtPnBvc3RJbnQoJ2RlcG9zaXRvJyk7DQogICAgICAgICAgICAkb2JzZXJ2YWNpb25lcyA9ICRjdHgtPnBvc3QoJ29ic2VydmFjaW9uZXMnKTsNCg0KICAgICAgICAgICAgaWYgKGVtcHR5KCRfUE9TVFsnZGVwb3NpdG8nXSkgfHwgZW1wdHkoJF9QT1NUWydvYnNlcnZhY2lvbmVzJ10pKSB7DQogICAgICAgICAgICAgICAgUmVzcHVlc3RhOjplcnJvcignRmFsdGFuIGRhdG9zLicsIDQwMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86Omluc2VydE9ic2VydmFjaW9uZXMoDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb24oKSwNCiAgICAgICAgICAgICAgICAkZGVwb3NpdG8sDQogICAgICAgICAgICAgICAgJG9ic2VydmFjaW9uZXMNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAnZGV0YWxsZURlcG9zaXRvJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86OmRldGFsbGVEZXBvc2l0bygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbigpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3RJbnQoJ3N1YnRpcG9wcmltYXJpbycpLA0KICAgICAgICAgICAgKVsnZGF0YSddKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KDQogICAgJ29idGVuZXJCb2RlZ2FBY29yZGVvbicgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvckRlcG9zaXRvOjpvYnRlbmVyQm9kZWdhQWNvcmRlb24oDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHMsDQogICAgICAgICAgICApWydkYXRhJ10pOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAnb2J0ZW5lckZpbHRyYWRvRGVwb3NpdG8nID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JEZXBvc2l0bzo6dmVyRmlsdHJhZG9zKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzWzBdLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ25vbWJyZWJvZGVnYScpLA0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9kZXBvc2l0b3MnDQogICAgKSwNCg0KICAgICdnZXRfZGVwb3NpdG9zJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yRGVwb3NpdG86OmdldExpc3RhZG8oDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHMNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAnb2J0ZW5lclNhbGlkYXNNdWVzdHJhRGVwb3NpdG8nID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JEZXBvc2l0bzo6b2J0ZW5lclNhbGlkYXNNdWVzdHJhRGVwb3NpdG8oDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHNbMF0sDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdEludCgnc3VidGlwb3ByaW1hcmlvJyksDQogICAgICAgICAgICApWydkYXRhJ10pOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAndmVyQW5hbGlzaXMnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JEZXBvc2l0bzo6dmVyQW5hbGlzaXMoDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHNbMF0sDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdEludCgnaWQnKSwNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZGVwb3NpdG9zJw0KICAgICksDQoNCiAgICAnYW5hZGlyTG90ZUFjdHVhbCcgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvckRlcG9zaXRvOjppbnNlcnRMb3RlQWN0dWFsKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzWzBdLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ2RlcG9zaXRvJyksDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdCgnbG90ZWFjdHVhbCcpLA0KICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2RlcG9zaXRvcycNCiAgICApLA0KXTsiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";