LyogcGFyc2VyIGdlbmVyYXRlZCBieSBqaXNvbiAwLjQuMTggKi8KLyoKICBSZXR1cm5zIGEgUGFyc2VyIG9iamVjdCBvZiB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZToKCiAgUGFyc2VyOiB7CiAgICB5eToge30KICB9CgogIFBhcnNlci5wcm90b3R5cGU6IHsKICAgIHl5OiB7fSwKICAgIHRyYWNlOiBmdW5jdGlvbigpLAogICAgc3ltYm9sc186IHthc3NvY2lhdGl2ZSBsaXN0OiBuYW1lID09PiBudW1iZXJ9LAogICAgdGVybWluYWxzXzoge2Fzc29jaWF0aXZlIGxpc3Q6IG51bWJlciA9PT4gbmFtZX0sCiAgICBwcm9kdWN0aW9uc186IFsuLi5dLAogICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCksCiAgICB0YWJsZTogWy4uLl0sCiAgICBkZWZhdWx0QWN0aW9uczogey4uLn0sCiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbihzdHIsIGhhc2gpLAogICAgcGFyc2U6IGZ1bmN0aW9uKGlucHV0KSwKCiAgICBsZXhlcjogewogICAgICAgIEVPRjogMSwKICAgICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbihzdHIsIGhhc2gpLAogICAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCksCiAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCksCiAgICAgICAgdW5wdXQ6IGZ1bmN0aW9uKHN0ciksCiAgICAgICAgbW9yZTogZnVuY3Rpb24oKSwKICAgICAgICBsZXNzOiBmdW5jdGlvbihuKSwKICAgICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCksCiAgICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSwKICAgICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCksCiAgICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24ocmVnZXhfbWF0Y2hfYXJyYXksIHJ1bGVfaW5kZXgpLAogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCksCiAgICAgICAgbGV4OiBmdW5jdGlvbigpLAogICAgICAgIGJlZ2luOiBmdW5jdGlvbihjb25kaXRpb24pLAogICAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbigpLAogICAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uKCksCiAgICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uKCksCiAgICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbihjb25kaXRpb24pLAoKICAgICAgICBvcHRpb25zOiB7CiAgICAgICAgICAgIHJhbmdlczogYm9vbGVhbiAgICAgICAgICAgKG9wdGlvbmFsOiB0cnVlID09PiB0b2tlbiBsb2NhdGlvbiBpbmZvIHdpbGwgaW5jbHVkZSBhIC5yYW5nZVtdIG1lbWJlcikKICAgICAgICAgICAgZmxleDogYm9vbGVhbiAgICAgICAgICAgICAob3B0aW9uYWw6IHRydWUgPT0+IGZsZXgtbGlrZSBsZXhpbmcgYmVoYXZpb3VyIHdoZXJlIHRoZSBydWxlcyBhcmUgdGVzdGVkIGV4aGF1c3RpdmVseSB0byBmaW5kIHRoZSBsb25nZXN0IG1hdGNoKQogICAgICAgICAgICBiYWNrdHJhY2tfbGV4ZXI6IGJvb2xlYW4gIChvcHRpb25hbDogdHJ1ZSA9PT4gbGV4ZXIgcmVnZXhlcyBhcmUgdGVzdGVkIGluIG9yZGVyIGFuZCBmb3IgZWFjaCBtYXRjaGluZyByZWdleCB0aGUgYWN0aW9uIGNvZGUgaXMgaW52b2tlZDsgdGhlIGxleGVyIHRlcm1pbmF0ZXMgdGhlIHNjYW4gd2hlbiBhIHRva2VuIGlzIHJldHVybmVkIGJ5IHRoZSBhY3Rpb24gY29kZSkKICAgICAgICB9LAoKICAgICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbih5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCksCiAgICAgICAgcnVsZXM6IFsuLi5dLAogICAgICAgIGNvbmRpdGlvbnM6IHthc3NvY2lhdGl2ZSBsaXN0OiBuYW1lID09PiBzZXR9LAogICAgfQogIH0KCgogIHRva2VuIGxvY2F0aW9uIGluZm8gKEAkLCBfJCwgZXRjLik6IHsKICAgIGZpcnN0X2xpbmU6IG4sCiAgICBsYXN0X2xpbmU6IG4sCiAgICBmaXJzdF9jb2x1bW46IG4sCiAgICBsYXN0X2NvbHVtbjogbiwKICAgIHJhbmdlOiBbc3RhcnRfbnVtYmVyLCBlbmRfbnVtYmVyXSAgICAgICAod2hlcmUgdGhlIG51bWJlcnMgYXJlIGluZGV4ZXMgaW50byB0aGUgaW5wdXQgc3RyaW5nLCByZWd1bGFyIHplcm8tYmFzZWQpCiAgfQoKCiAgdGhlIHBhcnNlRXJyb3IgZnVuY3Rpb24gcmVjZWl2ZXMgYSAnaGFzaCcgb2JqZWN0IHdpdGggdGhlc2UgbWVtYmVycyBmb3IgbGV4ZXIgYW5kIHBhcnNlciBlcnJvcnM6IHsKICAgIHRleHQ6ICAgICAgICAobWF0Y2hlZCB0ZXh0KQogICAgdG9rZW46ICAgICAgICh0aGUgcHJvZHVjZWQgdGVybWluYWwgdG9rZW4sIGlmIGFueSkKICAgIGxpbmU6ICAgICAgICAoeXlsaW5lbm8pCiAgfQogIHdoaWxlIHBhcnNlciAoZ3JhbW1hcikgZXJyb3JzIHdpbGwgYWxzbyBwcm92aWRlIHRoZXNlIG1lbWJlcnMsIGkuZS4gcGFyc2VyIGVycm9ycyBkZWxpdmVyIGEgc3VwZXJzZXQgb2YgYXR0cmlidXRlczogewogICAgbG9jOiAgICAgICAgICh5eWxsb2MpCiAgICBleHBlY3RlZDogICAgKHN0cmluZyBkZXNjcmliaW5nIHRoZSBzZXQgb2YgZXhwZWN0ZWQgdG9rZW5zKQogICAgcmVjb3ZlcmFibGU6IChib29sZWFuOiBUUlVFIHdoZW4gdGhlIHBhcnNlciBoYXMgYSBlcnJvciByZWNvdmVyeSBydWxlIGF2YWlsYWJsZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIGVycm9yKQogIH0KKi8KdmFyIHNxbFBhcnNlciA9IChmdW5jdGlvbiAoKSB7CiAgdmFyIG8gPSBmdW5jdGlvbiAoaywgdiwgbywgbCkgeyBmb3IgKG8gPSBvIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgb1trW2xdXSA9IHYpOyByZXR1cm4gbyB9LCAkVjAgPSBbMSwgOF0sICRWMSA9IFsxLCA0XSwgJFYyID0gWzIsIDRdLCAkVjMgPSBbMSwgMTFdLCAkVjQgPSBbMSwgMTBdLCAkVjUgPSBbMiwgMTZdLCAkVjYgPSBbMSwgMTRdLCAkVjcgPSBbMSwgMTVdLCAkVjggPSBbMSwgMTZdLCAkVjkgPSBbNiwgOF0sICRWYSA9IFsyLCAxNDZdLCAkVmIgPSBbMSwgMTldLCAkVmMgPSBbMSwgMjBdLCAkVmQgPSBbMTYsIDMzLCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQ1LCA0NiwgNTAsIDUxLCA1NCwgNTUsIDU3LCA1OCwgNjAsIDc2LCA3OSwgODEsIDgyLCA4MywgODQsIDg2LCA4NywgODgsIDEwMSwgMTk1XSwgJFZlID0gWzE2LCAxOCwgMzIsIDMzLCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQ1LCA0NiwgNTAsIDUxLCA1NCwgNTUsIDU3LCA1OCwgNjAsIDc2LCA3OSwgODEsIDgyLCA4MywgODQsIDg2LCA4NywgODgsIDEwMSwgMTk1XSwgJFZmID0gWzIsIDE2MF0sICRWZyA9IFsxLCAyOV0sICRWaCA9IFs2LCA4LCAxNCwgMTcsIDE0NiwgMTUwLCAxNTIsIDE1NF0sICRWaSA9IFsxLCA0Ml0sICRWaiA9IFsxLCA2MF0sICRWayA9IFsxLCA1Ml0sICRWbCA9IFsxLCA1OV0sICRWbSA9IFsxLCA2MV0sICRWbiA9IFsxLCA2Ml0sICRWbyA9IFsxLCA2M10sICRWcCA9IFsxLCA2NF0sICRWcSA9IFsxLCA2NV0sICRWciA9IFsxLCA1OF0sICRWcyA9IFsxLCA1M10sICRWdCA9IFsxLCA1NF0sICRWdSA9IFsxLCA1NV0sICRWdiA9IFsxLCA1Nl0sICRWdyA9IFsxLCA1N10sICRWeCA9IFsxLCA0M10sICRWeSA9IFsxLCA0NF0sICRWeiA9IFsxLCA0NV0sICRWQSA9IFsxLCAzNF0sICRWQiA9IFsxLCA2Nl0sICRWQyA9IFsxNiwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0NSwgNDYsIDUwLCA1MSwgNTQsIDU1LCA1NywgNTgsIDYwLCA3NiwgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCAxMDEsIDE5NV0sICRWRCA9IFs2LCA4LCAxNCwgMTcsIDE1MCwgMTUyLCAxNTRdLCAkVkUgPSBbMiwgMTQzXSwgJFZGID0gWzEsIDc1XSwgJFZHID0gWzEsIDc2XSwgJFZIID0gWzYsIDgsIDE0LCAxNywgNDMsIDEzMywgMTM4LCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NF0sICRWSSA9IFsxLCA4MV0sICRWSiA9IFsxLCA3OF0sICRWSyA9IFsxLCA3OV0sICRWTCA9IFsxLCA4MF0sICRWTSA9IFsxLCA4Ml0sICRWTiA9IFs2LCA4LCAxNCwgMTcsIDM2LCA0MywgNDksIDUwLCA1MSwgNzEsIDcyLCA3NCwgNzcsIDg5LCAxMDcsIDEyNCwgMTI1LCAxMjYsIDEyNywgMTI5LCAxMzMsIDEzNSwgMTM4LCAxNDEsIDE0MiwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTQsIDE1NywgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTc5LCAxODAsIDE4Ml0sICRWTyA9IFs2LCA4LCAxNCwgMTcsIDM0LCAzNiwgNDMsIDQ5LCA1MCwgNTEsIDcxLCA3MiwgNzQsIDc3LCA4OSwgMTA3LCAxMTIsIDExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMjEsIDEyNCwgMTI1LCAxMjYsIDEyNywgMTI5LCAxMzMsIDEzNSwgMTM4LCAxNDEsIDE0MiwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTQsIDE1NywgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTc5LCAxODAsIDE4Ml0sICRWUCA9IFsxLCAxMDNdLCAkVlEgPSBbMSwgMTAxXSwgJFZSID0gWzEsIDEwMl0sICRWUyA9IFsxLCA5N10sICRWVCA9IFsxLCA5OF0sICRWVSA9IFsxLCA5OV0sICRWViA9IFsxLCAxMDBdLCAkVlcgPSBbMSwgMTA0XSwgJFZYID0gWzEsIDEwNV0sICRWWSA9IFsxLCAxMDZdLCAkVlogPSBbMSwgMTA3XSwgJFZfID0gWzEsIDEwOF0sICRWJCA9IFsxLCAxMDldLCAkVjAxID0gWzIsIDEwM10sICRWMTEgPSBbNiwgOCwgMTQsIDE3LCAzNCwgMzYsIDQzLCA0NSwgNDksIDUwLCA1MSwgNzEsIDcyLCA3NCwgNzcsIDc5LCA4MSwgODksIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMSwgMTA1LCAxMDYsIDEwNywgMTA4LCAxMDksIDExMCwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNywgMTIxLCAxMjQsIDEyNSwgMTI2LCAxMjcsIDEyOSwgMTMzLCAxMzUsIDEzOCwgMTQxLCAxNDIsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNTcsIDE2NCwgMTY1LCAxNjcsIDE2OCwgMTczLCAxNzcsIDE3OSwgMTgwLCAxODJdLCAkVjIxID0gWzYsIDgsIDE0LCAxNywgMzQsIDM2LCA0MywgNDUsIDQ5LCA1MCwgNTEsIDcxLCA3MiwgNzQsIDc3LCA3OSwgODEsIDg5LCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk2LCA5NywgOTgsIDk5LCAxMDEsIDEwMywgMTA1LCAxMDYsIDEwNywgMTA4LCAxMDksIDExMCwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNywgMTIxLCAxMjQsIDEyNSwgMTI2LCAxMjcsIDEyOSwgMTMzLCAxMzUsIDEzOCwgMTQxLCAxNDIsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNTcsIDE2NCwgMTY1LCAxNjcsIDE2OCwgMTczLCAxNzcsIDE3OSwgMTgwLCAxODJdLCAkVjMxID0gWzEsIDExMF0sICRWNDEgPSBbMSwgMTE3XSwgJFY1MSA9IFsyLCA2NF0sICRWNjEgPSBbMSwgMTE4XSwgJFY3MSA9IFsxNiwgMzUsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQ1LCA0NiwgNTAsIDUxLCA1NCwgNTUsIDU3LCA1OCwgNjAsIDc2LCA3OSwgODEsIDgyLCA4MywgODQsIDg2LCA4NywgODgsIDEwMSwgMTk1XSwgJFY4MSA9IFsxNiwgMjksIDM1LCA1MCwgNTEsIDU0LCA1NSwgNTcsIDU4LCA2MCwgNzYsIDc5LCA4MSwgODIsIDgzLCA4NCwgODYsIDg3LCA4OCwgMTE5LCAxOTVdLCAkVjkxID0gWzEsIDE2NF0sICRWYTEgPSBbMTcsIDQzXSwgJFZiMSA9IFsyLCA1OV0sICRWYzEgPSBbMSwgMTczXSwgJFZkMSA9IFsxLCAxNzFdLCAkVmUxID0gWzEsIDE3Ml0sICRWZjEgPSBbNiwgOCwgMTM4LCAxNDZdLCAkVmcxID0gWzE2LCAzNSwgMzgsIDM5LCA0MCwgNDEsIDQyLCA0NSwgNDYsIDUwLCA1MSwgNTQsIDU1LCA1NywgNTgsIDYwLCA3NiwgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCAxMDEsIDE5NV0sICRWaDEgPSBbNiwgOCwgMTQsIDE3LCAxMzgsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0XSwgJFZpMSA9IFs2LCA4LCAxNCwgMTcsIDM2LCA0MywgNDksIDUwLCA1MSwgNzEsIDcyLCA3NCwgNzcsIDg5LCAxMjUsIDEyNiwgMTI3LCAxMjksIDEzMywgMTM1LCAxMzgsIDE0MSwgMTQyLCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NCwgMTU3LCAxNjQsIDE2NSwgMTY3LCAxNjgsIDE3MywgMTc3LCAxNzksIDE4MCwgMTgyXSwgJFZqMSA9IFs2LCA4LCAxNCwgMTcsIDM0LCAzNiwgNDMsIDQ5LCA1MCwgNTEsIDcxLCA3MiwgNzQsIDc3LCA4OSwgOTEsIDkyLCA5MywgOTQsIDk5LCAxMDEsIDEwNSwgMTA2LCAxMDcsIDEwOCwgMTA5LCAxMTAsIDExMiwgMTEzLCAxMTQsIDExNSwgMTE2LCAxMTcsIDEyMSwgMTI0LCAxMjUsIDEyNiwgMTI3LCAxMjksIDEzMywgMTM1LCAxMzgsIDE0MSwgMTQyLCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NCwgMTU3LCAxNjQsIDE2NSwgMTY3LCAxNjgsIDE3MywgMTc3LCAxNzksIDE4MCwgMTgyXSwgJFZrMSA9IFs2LCA4LCAxNCwgMTcsIDM0LCAzNiwgNDMsIDQ5LCA1MCwgNTEsIDcxLCA3MiwgNzQsIDc3LCA3OSwgODEsIDg5LCA5MSwgOTIsIDkzLCA5NCwgOTksIDEwMSwgMTA1LCAxMDYsIDEwNywgMTA4LCAxMDksIDExMCwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNywgMTIxLCAxMjQsIDEyNSwgMTI2LCAxMjcsIDEyOSwgMTMzLCAxMzUsIDEzOCwgMTQxLCAxNDIsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNTcsIDE2NCwgMTY1LCAxNjcsIDE2OCwgMTczLCAxNzcsIDE3OSwgMTgwLCAxODJdLCAkVmwxID0gWzE2LCAzNSwgMzksIDQwLCA0MSwgNDIsIDQ1LCA0NiwgNTAsIDUxLCA1NCwgNTUsIDU3LCA1OCwgNjAsIDc2LCA3OSwgODEsIDgyLCA4MywgODQsIDg2LCA4NywgODgsIDEwMSwgMTk1XSwgJFZtMSA9IFsxNiwgMzUsIDQwLCA0MSwgNDIsIDQ1LCA0NiwgNTAsIDUxLCA1NCwgNTUsIDU3LCA1OCwgNjAsIDc2LCA3OSwgODEsIDgyLCA4MywgODQsIDg2LCA4NywgODgsIDEwMSwgMTk1XSwgJFZuMSA9IFsxNiwgMzUsIDQyLCA0NSwgNDYsIDUwLCA1MSwgNTQsIDU1LCA1NywgNTgsIDYwLCA3NiwgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCAxMDEsIDE5NV0sICRWbzEgPSBbNzEsIDc0LCA3N10sICRWcDEgPSBbMTYsIDM1LCA0NSwgNDYsIDUwLCA1MSwgNTQsIDU1LCA1NywgNTgsIDYwLCA3NiwgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCAxMDEsIDE5NV0sICRWcTEgPSBbMSwgMjMzXSwgJFZyMSA9IFsxLCAyMzRdLCAkVnMxID0gWzYsIDgsIDE0LCAxN10sICRWdDEgPSBbNiwgOCwgMTQsIDE3LCA0MywgMTU3XSwgJFZ1MSA9IFsxLCAyNTFdLCAkVnYxID0gWzEsIDI0N10sICRWdzEgPSBbMiwgMTk3XSwgJFZ4MSA9IFsxLCAyNTVdLCAkVnkxID0gWzEsIDI1Nl0sICRWejEgPSBbNiwgOCwgMTQsIDE3LCA0MywgMTI5LCAxMzUsIDEzOCwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTQsIDE4Ml0sICRWQTEgPSBbMSwgMjU4XSwgJFZCMSA9IFsxLCAyNjFdLCAkVkMxID0gWzEsIDI2Ml0sICRWRDEgPSBbMSwgMjYzXSwgJFZFMSA9IFsxLCAyNjRdLCAkVkYxID0gWzIsIDE3NF0sICRWRzEgPSBbMSwgMjYwXSwgJFZIMSA9IFs2LCA4LCAxNCwgMTcsIDM2LCA0MywgODksIDEyOSwgMTM1LCAxMzgsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNjQsIDE2NSwgMTY3LCAxNjgsIDE3MywgMTc3LCAxNzksIDE4MCwgMTgyXSwgJFZJMSA9IFs2LCA4LCAxNCwgMTcsIDEzNSwgMTM4LCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NF0sICRWSjEgPSBbMSwgMjc2XSwgJFZLMSA9IFsyLCAxNzldLCAkVkwxID0gWzE3MCwgMTczXSwgJFZNMSA9IFs2LCA4LCAxNCwgMTcsIDM2LCA0MywgODksIDEyOSwgMTM1LCAxMzgsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNjQsIDE2NSwgMTY3LCAxNjgsIDE3MywgMTc3LCAxNzksIDE4MCwgMTgyLCAxOTIsIDE5MywgMTk0XSwgJFZOMSA9IFsyLCAxOTldLCAkVk8xID0gWzEsIDI4MV0sICRWUDEgPSBbMSwgMjkzXSwgJFZRMSA9IFsxLCAzMDFdLCAkVlIxID0gWzEsIDMwMl0sICRWUzEgPSBbMSwgMzAzXSwgJFZUMSA9IFs2LCA4LCAxNCwgMTcsIDEzOCwgMTQ2LCAxNTAsIDE1MiwgMTU0XSwgJFZVMSA9IFsxLCAzMTNdLCAkVlYxID0gWzEsIDMxOV0sICRWVzEgPSBbMSwgMzIwXSwgJFZYMSA9IFsyLCAyMDRdLCAkVlkxID0gWzEsIDMzMV0sICRWWjEgPSBbMTYsIDE1Ml0sICRWXzEgPSBbNiwgOCwgMTQsIDE3LCAxNTIsIDE1NF0sICRWJDEgPSBbMSwgMzQ3XTsKICB2YXIgcGFyc2VyID0gewogICAgdHJhY2U6IGZ1bmN0aW9uIHRyYWNlKCkgeyB9LAogICAgeXk6IHt9LAogICAgc3ltYm9sc186IHsgImVycm9yIjogMiwgIm1haW4iOiAzLCAic2VsZWN0Q2xhdXNlIjogNCwgInNlbWljb2xvbk9wdCI6IDUsICJFT0YiOiA2LCAidW5pb25DbGF1c2UiOiA3LCAiOyI6IDgsICJ1bmlvbkNsYXVzZU5vdFBhcmVudGhlc2l6ZWQiOiA5LCAidW5pb25DbGF1c2VQYXJlbnRoZXNpemVkIjogMTAsICJvcmRlcl9ieV9vcHQiOiAxMSwgImxpbWl0X29wdCI6IDEyLCAic2VsZWN0Q2xhdXNlUGFyZW50aGVzaXplZCI6IDEzLCAiVU5JT04iOiAxNCwgImRpc3RpbmN0T3B0IjogMTUsICIoIjogMTYsICIpIjogMTcsICJTRUxFQ1QiOiAxOCwgImhpZ2hQcmlvcml0eU9wdCI6IDE5LCAibWF4U3RhdGVNZW50VGltZU9wdCI6IDIwLCAic3RyYWlnaHRKb2luT3B0IjogMjEsICJzcWxTbWFsbFJlc3VsdE9wdCI6IDIyLCAic3FsQmlnUmVzdWx0T3B0IjogMjMsICJzcWxCdWZmZXJSZXN1bHRPcHQiOiAyNCwgInNxbENhY2hlT3B0IjogMjUsICJzcWxDYWxjRm91bmRSb3dzT3B0IjogMjYsICJzZWxlY3RFeHByTGlzdCI6IDI3LCAic2VsZWN0RGF0YVNldE9wdCI6IDI4LCAiQUxMIjogMjksICJESVNUSU5DVCI6IDMwLCAiRElTVElOQ1RST1ciOiAzMSwgIkhJR0hfUFJJT1JJVFkiOiAzMiwgIk1BWF9TVEFURU1FTlRfVElNRSI6IDMzLCAiPSI6IDM0LCAiTlVNRVJJQyI6IDM1LCAiU1RSQUlHSFRfSk9JTiI6IDM2LCAiU1FMX1NNQUxMX1JFU1VMVCI6IDM3LCAiU1FMX0JJR19SRVNVTFQiOiAzOCwgIlNRTF9CVUZGRVJfUkVTVUxUIjogMzksICJTUUxfQ0FDSEUiOiA0MCwgIlNRTF9OT19DQUNIRSI6IDQxLCAiU1FMX0NBTENfRk9VTkRfUk9XUyI6IDQyLCAiLCI6IDQzLCAic2VsZWN0RXhwciI6IDQ0LCAiKiI6IDQ1LCAiU0VMRUNUX0VYUFJfU1RBUiI6IDQ2LCAiZXhwciI6IDQ3LCAic2VsZWN0RXhwckFsaWFzT3B0IjogNDgsICJBUyI6IDQ5LCAiSURFTlRJRklFUiI6IDUwLCAiU1RSSU5HIjogNTEsICJzdHJpbmciOiA1MiwgIm51bWJlciI6IDUzLCAiRVhQT05FTlRfTlVNRVJJQyI6IDU0LCAiSEVYX05VTUVSSUMiOiA1NSwgImJvb2xlYW4iOiA1NiwgIlRSVUUiOiA1NywgIkZBTFNFIjogNTgsICJudWxsIjogNTksICJOVUxMIjogNjAsICJsaXRlcmFsIjogNjEsICJwbGFjZV9ob2xkZXIiOiA2MiwgImZ1bmN0aW9uX2NhbGwiOiA2MywgImZ1bmN0aW9uX2NhbGxfcGFyYW1fbGlzdCI6IDY0LCAiZnVuY3Rpb25fY2FsbF9wYXJhbSI6IDY1LCAiaWRlbnRpZmllciI6IDY2LCAiRE9UIjogNjcsICJpZGVudGlmaWVyX2xpc3QiOiA2OCwgImNhc2VfZXhwcl9vcHQiOiA2OSwgIndoZW5fdGhlbl9saXN0IjogNzAsICJXSEVOIjogNzEsICJUSEVOIjogNzIsICJjYXNlX3doZW5fZWxzZSI6IDczLCAiRUxTRSI6IDc0LCAiY2FzZV93aGVuIjogNzUsICJDQVNFIjogNzYsICJFTkQiOiA3NywgInNpbXBsZV9leHByX3ByZWZpeCI6IDc4LCAiKyI6IDc5LCAic2ltcGxlX2V4cHIiOiA4MCwgIi0iOiA4MSwgIn4iOiA4MiwgIiEiOiA4MywgIkJJTkFSWSI6IDg0LCAiZXhwcl9saXN0IjogODUsICJST1ciOiA4NiwgIkVYSVNUUyI6IDg3LCAieyI6IDg4LCAifSI6IDg5LCAiYml0X2V4cHIiOiA5MCwgInwiOiA5MSwgIiYiOiA5MiwgIjw8IjogOTMsICI+PiI6IDk0LCAiLyI6IDk1LCAiRElWIjogOTYsICJNT0QiOiA5NywgIiUiOiA5OCwgIl4iOiA5OSwgIm5vdF9vcHQiOiAxMDAsICJOT1QiOiAxMDEsICJlc2NhcGVfb3B0IjogMTAyLCAiRVNDQVBFIjogMTAzLCAicHJlZGljYXRlIjogMTA0LCAiSU4iOiAxMDUsICJCRVRXRUVOIjogMTA2LCAiQU5EIjogMTA3LCAiU09VTkRTIjogMTA4LCAiTElLRSI6IDEwOSwgIlJFR0VYUCI6IDExMCwgImNvbXBhcmlzb25fb3BlcmF0b3IiOiAxMTEsICI+PSI6IDExMiwgIj4iOiAxMTMsICI8PSI6IDExNCwgIjwiOiAxMTUsICI8PiI6IDExNiwgIiE9IjogMTE3LCAic3ViX3F1ZXJ5X2RhdGFfc2V0X29wdCI6IDExOCwgIkFOWSI6IDExOSwgImJvb2xlYW5fcHJpbWFyeSI6IDEyMCwgIklTIjogMTIxLCAiYm9vbGVhbl9leHRyYSI6IDEyMiwgIlVOS05PV04iOiAxMjMsICImJiI6IDEyNCwgInx8IjogMTI1LCAiT1IiOiAxMjYsICJYT1IiOiAxMjcsICJ3aGVyZV9vcHQiOiAxMjgsICJXSEVSRSI6IDEyOSwgImdyb3VwX2J5X29wdCI6IDEzMCwgImdyb3VwX2J5IjogMTMxLCAicm9sbF91cF9vcHQiOiAxMzIsICJXSVRIIjogMTMzLCAiUk9MTFVQIjogMTM0LCAiR1JPVVBfQlkiOiAxMzUsICJncm91cF9ieV9vcmRlcl9ieV9pdGVtX2xpc3QiOiAxMzYsICJvcmRlcl9ieSI6IDEzNywgIk9SREVSX0JZIjogMTM4LCAiZ3JvdXBfYnlfb3JkZXJfYnlfaXRlbSI6IDEzOSwgInNvcnRfb3B0IjogMTQwLCAiQVNDIjogMTQxLCAiREVTQyI6IDE0MiwgImhhdmluZ19vcHQiOiAxNDMsICJIQVZJTkciOiAxNDQsICJsaW1pdCI6IDE0NSwgIkxJTUlUIjogMTQ2LCAiT0ZGU0VUIjogMTQ3LCAicHJvY2VkdXJlX29wdCI6IDE0OCwgInByb2NlZHVyZSI6IDE0OSwgIlBST0NFRFVSRSI6IDE1MCwgImZvcl91cGRhdGVfbG9ja19pbl9zaGFyZV9tb2RlX29wdCI6IDE1MSwgIkZPUiI6IDE1MiwgIlVQREFURSI6IDE1MywgIkxPQ0siOiAxNTQsICJTSEFSRSI6IDE1NSwgIk1PREUiOiAxNTYsICJGUk9NIjogMTU3LCAidGFibGVfcmVmZXJlbmNlcyI6IDE1OCwgInBhcnRpdGlvbk9wdCI6IDE1OSwgImVzY2FwZWRfdGFibGVfcmVmZXJlbmNlIjogMTYwLCAidGFibGVfcmVmZXJlbmNlIjogMTYxLCAiT0oiOiAxNjIsICJqb2luX2lubmVyX2Nyb3NzIjogMTYzLCAiSU5ORVIiOiAxNjQsICJDUk9TUyI6IDE2NSwgImxlZnRfcmlnaHQiOiAxNjYsICJMRUZUIjogMTY3LCAiUklHSFQiOiAxNjgsICJvdXRfb3B0IjogMTY5LCAiT1VURVIiOiAxNzAsICJsZWZ0X3JpZ2h0X291dF9vcHQiOiAxNzEsICJqb2luX3RhYmxlIjogMTcyLCAiSk9JTiI6IDE3MywgInRhYmxlX2ZhY3RvciI6IDE3NCwgImpvaW5fY29uZGl0aW9uIjogMTc1LCAib25fam9pbl9jb25kaXRpb24iOiAxNzYsICJOQVRVUkFMIjogMTc3LCAiam9pbl9jb25kaXRpb25fb3B0IjogMTc4LCAiT04iOiAxNzksICJVU0lORyI6IDE4MCwgInBhcnRpdGlvbl9uYW1lcyI6IDE4MSwgIlBBUlRJVElPTiI6IDE4MiwgImFsaWFzT3B0IjogMTgzLCAiaW5kZXhfb3Jfa2V5IjogMTg0LCAiSU5ERVgiOiAxODUsICJLRVkiOiAxODYsICJmb3Jfb3B0IjogMTg3LCAiaWRlbnRpZmllcl9saXN0X29wdCI6IDE4OCwgImluZGV4X2hpbnRfbGlzdF9vcHQiOiAxODksICJpbmRleF9oaW50X2xpc3QiOiAxOTAsICJpbmRleF9oaW50IjogMTkxLCAiVVNFIjogMTkyLCAiSUdOT1JFIjogMTkzLCAiRk9SQ0UiOiAxOTQsICJQTEFDRV9IT0xERVIiOiAxOTUsICIkYWNjZXB0IjogMCwgIiRlbmQiOiAxIH0sCiAgICB0ZXJtaW5hbHNfOiB7IDI6ICJlcnJvciIsIDY6ICJFT0YiLCA4OiAiOyIsIDE0OiAiVU5JT04iLCAxNjogIigiLCAxNzogIikiLCAxODogIlNFTEVDVCIsIDI5OiAiQUxMIiwgMzA6ICJESVNUSU5DVCIsIDMxOiAiRElTVElOQ1RST1ciLCAzMjogIkhJR0hfUFJJT1JJVFkiLCAzMzogIk1BWF9TVEFURU1FTlRfVElNRSIsIDM0OiAiPSIsIDM1OiAiTlVNRVJJQyIsIDM2OiAiU1RSQUlHSFRfSk9JTiIsIDM3OiAiU1FMX1NNQUxMX1JFU1VMVCIsIDM4OiAiU1FMX0JJR19SRVNVTFQiLCAzOTogIlNRTF9CVUZGRVJfUkVTVUxUIiwgNDA6ICJTUUxfQ0FDSEUiLCA0MTogIlNRTF9OT19DQUNIRSIsIDQyOiAiU1FMX0NBTENfRk9VTkRfUk9XUyIsIDQzOiAiLCIsIDQ1OiAiKiIsIDQ2OiAiU0VMRUNUX0VYUFJfU1RBUiIsIDQ5OiAiQVMiLCA1MDogIklERU5USUZJRVIiLCA1MTogIlNUUklORyIsIDU0OiAiRVhQT05FTlRfTlVNRVJJQyIsIDU1OiAiSEVYX05VTUVSSUMiLCA1NzogIlRSVUUiLCA1ODogIkZBTFNFIiwgNjA6ICJOVUxMIiwgNjc6ICJET1QiLCA3MTogIldIRU4iLCA3MjogIlRIRU4iLCA3NDogIkVMU0UiLCA3NjogIkNBU0UiLCA3NzogIkVORCIsIDc5OiAiKyIsIDgxOiAiLSIsIDgyOiAifiIsIDgzOiAiISIsIDg0OiAiQklOQVJZIiwgODY6ICJST1ciLCA4NzogIkVYSVNUUyIsIDg4OiAieyIsIDg5OiAifSIsIDkxOiAifCIsIDkyOiAiJiIsIDkzOiAiPDwiLCA5NDogIj4+IiwgOTU6ICIvIiwgOTY6ICJESVYiLCA5NzogIk1PRCIsIDk4OiAiJSIsIDk5OiAiXiIsIDEwMTogIk5PVCIsIDEwMzogIkVTQ0FQRSIsIDEwNTogIklOIiwgMTA2OiAiQkVUV0VFTiIsIDEwNzogIkFORCIsIDEwODogIlNPVU5EUyIsIDEwOTogIkxJS0UiLCAxMTA6ICJSRUdFWFAiLCAxMTI6ICI+PSIsIDExMzogIj4iLCAxMTQ6ICI8PSIsIDExNTogIjwiLCAxMTY6ICI8PiIsIDExNzogIiE9IiwgMTE5OiAiQU5ZIiwgMTIxOiAiSVMiLCAxMjM6ICJVTktOT1dOIiwgMTI0OiAiJiYiLCAxMjU6ICJ8fCIsIDEyNjogIk9SIiwgMTI3OiAiWE9SIiwgMTI5OiAiV0hFUkUiLCAxMzM6ICJXSVRIIiwgMTM0OiAiUk9MTFVQIiwgMTM1OiAiR1JPVVBfQlkiLCAxMzg6ICJPUkRFUl9CWSIsIDE0MTogIkFTQyIsIDE0MjogIkRFU0MiLCAxNDQ6ICJIQVZJTkciLCAxNDY6ICJMSU1JVCIsIDE0NzogIk9GRlNFVCIsIDE1MDogIlBST0NFRFVSRSIsIDE1MjogIkZPUiIsIDE1MzogIlVQREFURSIsIDE1NDogIkxPQ0siLCAxNTU6ICJTSEFSRSIsIDE1NjogIk1PREUiLCAxNTc6ICJGUk9NIiwgMTYyOiAiT0oiLCAxNjQ6ICJJTk5FUiIsIDE2NTogIkNST1NTIiwgMTY3OiAiTEVGVCIsIDE2ODogIlJJR0hUIiwgMTcwOiAiT1VURVIiLCAxNzM6ICJKT0lOIiwgMTc3OiAiTkFUVVJBTCIsIDE3OTogIk9OIiwgMTgwOiAiVVNJTkciLCAxODI6ICJQQVJUSVRJT04iLCAxODU6ICJJTkRFWCIsIDE4NjogIktFWSIsIDE5MjogIlVTRSIsIDE5MzogIklHTk9SRSIsIDE5NDogIkZPUkNFIiwgMTk1OiAiUExBQ0VfSE9MREVSIiB9LAogICAgcHJvZHVjdGlvbnNfOiBbMCwgWzMsIDNdLCBbMywgM10sIFs1LCAxXSwgWzUsIDBdLCBbNywgMV0sIFs3LCAzXSwgWzEwLCA0XSwgWzEwLCA0XSwgWzEzLCAzXSwgWzksIDRdLCBbOSwgNF0sIFs0LCAxMl0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMF0sIFsxOSwgMV0sIFsxOSwgMF0sIFsyMCwgM10sIFsyMCwgMF0sIFsyMSwgMV0sIFsyMSwgMF0sIFsyMiwgMV0sIFsyMiwgMF0sIFsyMywgMV0sIFsyMywgMF0sIFsyNCwgMV0sIFsyNCwgMF0sIFsyNSwgMF0sIFsyNSwgMV0sIFsyNSwgMV0sIFsyNiwgMV0sIFsyNiwgMF0sIFsyNywgM10sIFsyNywgMV0sIFs0NCwgMV0sIFs0NCwgMV0sIFs0NCwgMl0sIFs0OCwgMF0sIFs0OCwgMl0sIFs0OCwgMV0sIFs0OCwgMl0sIFs0OCwgMV0sIFs1MiwgMV0sIFs1MywgMV0sIFs1MywgMV0sIFs1MywgMV0sIFs1NiwgMV0sIFs1NiwgMV0sIFs1OSwgMV0sIFs2MSwgMV0sIFs2MSwgMV0sIFs2MSwgMV0sIFs2MSwgMV0sIFs2MSwgMV0sIFs2MywgNF0sIFs2NCwgM10sIFs2NCwgMV0sIFs2NSwgMF0sIFs2NSwgMV0sIFs2NSwgMV0sIFs2NSwgMl0sIFs2NSwgMV0sIFs2NiwgMV0sIFs2NiwgM10sIFs2OCwgMV0sIFs2OCwgM10sIFs2OSwgMF0sIFs2OSwgMV0sIFs3MCwgNF0sIFs3MCwgNV0sIFs3MywgMF0sIFs3MywgMl0sIFs3NSwgNV0sIFs3OCwgMl0sIFs3OCwgMl0sIFs3OCwgMl0sIFs3OCwgMl0sIFs3OCwgMl0sIFs4MCwgMV0sIFs4MCwgMV0sIFs4MCwgMV0sIFs4MCwgMV0sIFs4MCwgM10sIFs4MCwgNF0sIFs4MCwgM10sIFs4MCwgNF0sIFs4MCwgNF0sIFs4MCwgMV0sIFs5MCwgMV0sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFs5MCwgM10sIFsxMDAsIDBdLCBbMTAwLCAxXSwgWzEwMiwgMF0sIFsxMDIsIDJdLCBbMTA0LCAxXSwgWzEwNCwgNl0sIFsxMDQsIDZdLCBbMTA0LCA2XSwgWzEwNCwgNF0sIFsxMDQsIDVdLCBbMTA0LCA0XSwgWzExMSwgMV0sIFsxMTEsIDFdLCBbMTExLCAxXSwgWzExMSwgMV0sIFsxMTEsIDFdLCBbMTExLCAxXSwgWzExMSwgMV0sIFsxMTgsIDFdLCBbMTE4LCAxXSwgWzEyMCwgMV0sIFsxMjAsIDRdLCBbMTIwLCAzXSwgWzEyMCwgNl0sIFsxMjIsIDFdLCBbMTIyLCAxXSwgWzQ3LCAxXSwgWzQ3LCA0XSwgWzQ3LCAyXSwgWzQ3LCAzXSwgWzQ3LCAzXSwgWzQ3LCAzXSwgWzQ3LCAzXSwgWzQ3LCAzXSwgWzg1LCAxXSwgWzg1LCAzXSwgWzEyOCwgMF0sIFsxMjgsIDJdLCBbMTMwLCAwXSwgWzEzMCwgMV0sIFsxMzIsIDBdLCBbMTMyLCAyXSwgWzEzMSwgM10sIFsxMSwgMF0sIFsxMSwgMV0sIFsxMzcsIDNdLCBbMTM2LCAxXSwgWzEzNiwgM10sIFsxMzksIDJdLCBbMTQwLCAwXSwgWzE0MCwgMV0sIFsxNDAsIDFdLCBbMTQzLCAwXSwgWzE0MywgMl0sIFsxNDUsIDJdLCBbMTQ1LCA0XSwgWzE0NSwgNF0sIFsxMiwgMF0sIFsxMiwgMV0sIFsxNDgsIDBdLCBbMTQ4LCAxXSwgWzE0OSwgMl0sIFsxNTEsIDBdLCBbMTUxLCAyXSwgWzE1MSwgNF0sIFsyOCwgMF0sIFsyOCwgMTBdLCBbMTU4LCAxXSwgWzE1OCwgM10sIFsxNjAsIDFdLCBbMTYwLCA0XSwgWzE2MywgMF0sIFsxNjMsIDFdLCBbMTYzLCAxXSwgWzE2NiwgMV0sIFsxNjYsIDFdLCBbMTY5LCAwXSwgWzE2OSwgMV0sIFsxNzEsIDBdLCBbMTcxLCAyXSwgWzE3MiwgNF0sIFsxNzIsIDVdLCBbMTcyLCA0XSwgWzE3MiwgNl0sIFsxNzIsIDVdLCBbMTc4LCAwXSwgWzE3OCwgMV0sIFsxNzYsIDJdLCBbMTc1LCAxXSwgWzE3NSwgNF0sIFsxNjEsIDFdLCBbMTYxLCAxXSwgWzE4MSwgMV0sIFsxODEsIDNdLCBbMTU5LCAwXSwgWzE1OSwgNF0sIFsxODMsIDBdLCBbMTgzLCAyXSwgWzE4MywgMV0sIFsxODQsIDFdLCBbMTg0LCAxXSwgWzE4NywgMF0sIFsxODcsIDJdLCBbMTg3LCAyXSwgWzE4NywgMl0sIFsxODgsIDBdLCBbMTg4LCAxXSwgWzE4OSwgMF0sIFsxODksIDFdLCBbMTkwLCAxXSwgWzE5MCwgM10sIFsxOTEsIDZdLCBbMTkxLCA2XSwgWzE5MSwgNl0sIFsxNzQsIDRdLCBbMTc0LCA0XSwgWzE3NCwgM10sIFs2MiwgMV1dLAogICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUgLyogYWN0aW9uWzFdICovLCAkJCAvKiB2c3RhY2sgKi8sIF8kIC8qIGxzdGFjayAqLykgewogICAgICAvKiB0aGlzID09IHl5dmFsICovCgogICAgICB2YXIgJDAgPSAkJC5sZW5ndGggLSAxOwogICAgICBzd2l0Y2ggKHl5c3RhdGUpIHsKICAgICAgICBjYXNlIDE6IGNhc2UgMjoKICAgICAgICAgIHJldHVybiB7IG5vZGVUeXBlOiAnTWFpbicsIHZhbHVlOiAkJFskMCAtIDJdLCBoYXNTZW1pY29sb246ICQkWyQwIC0gMV0gfTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMzogY2FzZSAxNDQ6CiAgICAgICAgICB0aGlzLiQgPSB0cnVlCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQ6CiAgICAgICAgICB0aGlzLiQgPSBmYWxzZQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA1OiBjYXNlIDEzOiBjYXNlIDE0OiBjYXNlIDE1OiBjYXNlIDE3OiBjYXNlIDE5OiBjYXNlIDIxOiBjYXNlIDIzOiBjYXNlIDI1OiBjYXNlIDI3OiBjYXNlIDMwOiBjYXNlIDMxOiBjYXNlIDMyOiBjYXNlIDUxOiBjYXNlIDUyOiBjYXNlIDUzOiBjYXNlIDU0OiBjYXNlIDU1OiBjYXNlIDYwOiBjYXNlIDYxOiBjYXNlIDYzOiBjYXNlIDY5OiBjYXNlIDczOiBjYXNlIDgwOiBjYXNlIDgxOiBjYXNlIDgyOiBjYXNlIDgzOiBjYXNlIDg5OiBjYXNlIDkwOiBjYXNlIDEwNDogY2FzZSAxMDY6IGNhc2UgMTA3OiBjYXNlIDExNDogY2FzZSAxMTU6IGNhc2UgMTE2OiBjYXNlIDExNzogY2FzZSAxMTg6IGNhc2UgMTE5OiBjYXNlIDEyMDogY2FzZSAxMjE6IGNhc2UgMTIyOiBjYXNlIDEyMzogY2FzZSAxMjc6IGNhc2UgMTI5OiBjYXNlIDE0MDogY2FzZSAxNDI6IGNhc2UgMTQ3OiBjYXNlIDE1MzogY2FzZSAxNTQ6IGNhc2UgMTU2OiBjYXNlIDE2MTogY2FzZSAxNjM6IGNhc2UgMTY0OiBjYXNlIDE3NTogY2FzZSAxNzY6IGNhc2UgMTc3OiBjYXNlIDE3ODogY2FzZSAxODA6IGNhc2UgMTg5OiBjYXNlIDE5MTogY2FzZSAxOTM6IGNhc2UgMTk0OiBjYXNlIDIwMjogY2FzZSAyMDM6IGNhc2UgMjA5OiBjYXNlIDIxMToKICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA2OgogICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXSwgdGhpcy4kLm9yZGVyQnkgPSAkJFskMCAtIDFdLCB0aGlzLiQubGltaXQgPSAkJFskMF07CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDc6IGNhc2UgODoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1VuaW9uJywgbGVmdDogJCRbJDAgLSAzXSwgZGlzdGluY3RPcHQ6ICQkWyQwIC0gMV0sIHJpZ2h0OiAkJFskMF0gfTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgOToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1NlbGVjdFBhcmVudGhlc2l6ZWQnLCB2YWx1ZTogJCRbJDAgLSAxXSB9OwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMDogY2FzZSAxMToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1VuaW9uJywgbGVmdDogJCRbJDAgLSAzXSwgZGlzdGluY3RPcHQ6ICQkWyQwIC0gMV0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMjoKCiAgICAgICAgICB0aGlzLiQgPSB7CiAgICAgICAgICAgIHR5cGU6ICdTZWxlY3QnLAogICAgICAgICAgICBkaXN0aW5jdE9wdDogJCRbJDAgLSAxMF0sCiAgICAgICAgICAgIGhpZ2hQcmlvcml0eU9wdDogJCRbJDAgLSA5XSwKICAgICAgICAgICAgbWF4U3RhdGVNZW50VGltZU9wdDogJCRbJDAgLSA4XSwKICAgICAgICAgICAgc3RyYWlnaHRKb2luT3B0OiAkJFskMCAtIDddLAogICAgICAgICAgICBzcWxTbWFsbFJlc3VsdE9wdDogJCRbJDAgLSA2XSwKICAgICAgICAgICAgc3FsQmlnUmVzdWx0T3B0OiAkJFskMCAtIDVdLAogICAgICAgICAgICBzcWxCdWZmZXJSZXN1bHRPcHQ6ICQkWyQwIC0gNF0sCiAgICAgICAgICAgIHNxbENhY2hlT3B0OiAkJFskMCAtIDNdLAogICAgICAgICAgICBzcWxDYWxjRm91bmRSb3dzT3B0OiAkJFskMCAtIDJdLAogICAgICAgICAgICBzZWxlY3RJdGVtczogJCRbJDAgLSAxXSwKICAgICAgICAgICAgZnJvbTogJCRbJDBdLmZyb20sCiAgICAgICAgICAgIHBhcnRpdGlvbjogJCRbJDBdLnBhcnRpdGlvbiwKICAgICAgICAgICAgd2hlcmU6ICQkWyQwXS53aGVyZSwKICAgICAgICAgICAgZ3JvdXBCeTogJCRbJDBdLmdyb3VwQnksCiAgICAgICAgICAgIGhhdmluZzogJCRbJDBdLmhhdmluZywKICAgICAgICAgICAgb3JkZXJCeTogJCRbJDBdLm9yZGVyQnksCiAgICAgICAgICAgIGxpbWl0OiAkJFskMF0ubGltaXQsCiAgICAgICAgICAgIHByb2NlZHVyZTogJCRbJDBdLnByb2NlZHVyZSwKICAgICAgICAgICAgdXBkYXRlTG9ja01vZGU6ICQkWyQwXS51cGRhdGVMb2NrTW9kZQogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTY6IGNhc2UgMTg6IGNhc2UgMjA6IGNhc2UgMjI6IGNhc2UgMjQ6IGNhc2UgMjY6IGNhc2UgMjg6IGNhc2UgMjk6IGNhc2UgMzM6IGNhc2UgNTk6IGNhc2UgNjg6IGNhc2UgNzI6IGNhc2UgMTAzOiBjYXNlIDEwNTogY2FzZSAxMzk6IGNhc2UgMTQxOiBjYXNlIDE0MzogY2FzZSAxNDY6IGNhc2UgMTUyOiBjYXNlIDE1NTogY2FzZSAxNjA6IGNhc2UgMTYyOiBjYXNlIDE2NTogY2FzZSAxNzQ6IGNhc2UgMTc5OiBjYXNlIDE4ODogY2FzZSAxOTc6IGNhc2UgMjA0OiBjYXNlIDIwODogY2FzZSAyMTA6CiAgICAgICAgICB0aGlzLiQgPSBudWxsCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDM0OgogICAgICAgICAgJCRbJDAgLSAyXS52YWx1ZS5wdXNoKCQkWyQwXSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDM1OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnU2VsZWN0RXhwcicsIHZhbHVlOiBbJCRbJDBdXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDM2OiBjYXNlIDM3OiBjYXNlIDY0OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnSWRlbnRpZmllcicsIHZhbHVlOiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAzODoKICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07IHRoaXMuJC5hbGlhcyA9ICQkWyQwXS5hbGlhczsgdGhpcy4kLmhhc0FzID0gJCRbJDBdLmhhc0FzOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAzOTogY2FzZSAxOTk6CiAgICAgICAgICB0aGlzLiQgPSB7IGFsaWFzOiBudWxsLCBoYXNBczogbnVsbCB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQwOiBjYXNlIDQyOgogICAgICAgICAgdGhpcy4kID0geyBhbGlhczogJCRbJDBdLCBoYXNBczogdHJ1ZSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQxOgogICAgICAgICAgdGhpcy4kID0geyBhbGlhczogJCRbJDBdLCBoYXNBczogZmFsc2UgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA0MzoKICAgICAgICAgIHRoaXMuJCA9IHsgYWxpYXM6ICQkWyQwMV0sIGhhc0FzOiBmYWxzZSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQ0OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnU3RyaW5nJywgdmFsdWU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQ1OiBjYXNlIDQ2OiBjYXNlIDQ3OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnTnVtYmVyJywgdmFsdWU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQ4OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQm9vbGVhbicsIHZhbHVlOiAnVFJVRScgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA0OToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0Jvb2xlYW4nLCB2YWx1ZTogJ0ZBTFNFJyB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDUwOgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnTnVsbCcsIHZhbHVlOiAnbnVsbCcgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA1NjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0Z1bmN0aW9uQ2FsbCcsIG5hbWU6ICQkWyQwIC0gM10sIHBhcmFtczogJCRbJDAgLSAxXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDU3OgogICAgICAgICAgJCRbJDAgLSAyXS5wdXNoKCQkWyQwXSk7IHRoaXMuJCA9ICQkWyQwIC0gMl07CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDU4OgogICAgICAgICAgdGhpcy4kID0gWyQkWyQwXV07CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDYyOgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnRnVuY3Rpb25DYWxsUGFyYW0nLCBkaXN0aW5jdE9wdDogJCRbJDAgLSAxXSwgdmFsdWU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDY1OgogICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTsgJCRbJDAgLSAyXS52YWx1ZSArPSAnLicgKyAkJFskMF0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgNjY6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdJZGVudGlmaWVyTGlzdCcsIHZhbHVlOiBbJCRbJDBdXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDY3OiBjYXNlIDE3MToKICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMl07ICQkWyQwIC0gMl0udmFsdWUucHVzaCgkJFskMF0pOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA3MDoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1doZW5UaGVuTGlzdCcsIHZhbHVlOiBbeyB3aGVuOiAkJFskMCAtIDJdLCB0aGVuOiAkJFskMF0gfV0gfTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgNzE6CiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDRdOyB0aGlzLiQudmFsdWUucHVzaCh7IHdoZW46ICQkWyQwIC0gMl0sIHRoZW46ICQkWyQwXSB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgNzQ6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdDYXNlV2hlbicsIGNhc2VFeHByT3B0OiAkJFskMCAtIDNdLCB3aGVuVGhlbkxpc3Q6ICQkWyQwIC0gMl0sIGVsc2U6ICQkWyQwIC0gMV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA3NTogY2FzZSA3NjogY2FzZSA3NzogY2FzZSA3ODogY2FzZSA3OToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1ByZWZpeCcsIHByZWZpeDogJCRbJDAgLSAxXSwgdmFsdWU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDg0OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnU2ltcGxlRXhwclBhcmVudGhlc2VzJywgdmFsdWU6ICQkWyQwIC0gMV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA4NToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1NpbXBsZUV4cHJQYXJlbnRoZXNlcycsIHZhbHVlOiAkJFskMCAtIDJdLCBoYXNSb3c6IHRydWUgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA4NjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1N1YlF1ZXJ5JywgdmFsdWU6ICQkWyQwIC0gMV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA4NzoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1N1YlF1ZXJ5JywgdmFsdWU6ICQkWyQwIC0gMV0sIGhhc0V4aXN0czogdHJ1ZSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDg4OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnSWRlbnRpZmllckV4cHInLCBpZGVudGlmaWVyOiAkJFskMCAtIDJdLCB2YWx1ZTogJCRbJDAgLSAxXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDkxOgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQml0RXhwcmVzc2lvbicsIG9wZXJhdG9yOiAnfCcsIGxlZnQ6ICQkWyQwIC0gMl0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA5MjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0JpdEV4cHJlc3Npb24nLCBvcGVyYXRvcjogJyYnLCBsZWZ0OiAkJFskMCAtIDJdLCByaWdodDogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgOTM6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdCaXRFeHByZXNzaW9uJywgb3BlcmF0b3I6ICc8PCcsIGxlZnQ6ICQkWyQwIC0gMl0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA5NDoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0JpdEV4cHJlc3Npb24nLCBvcGVyYXRvcjogJz4+JywgbGVmdDogJCRbJDAgLSAyXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDk1OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQml0RXhwcmVzc2lvbicsIG9wZXJhdG9yOiAnKycsIGxlZnQ6ICQkWyQwIC0gMl0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA5NjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0JpdEV4cHJlc3Npb24nLCBvcGVyYXRvcjogJy0nLCBsZWZ0OiAkJFskMCAtIDJdLCByaWdodDogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgOTc6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdCaXRFeHByZXNzaW9uJywgb3BlcmF0b3I6ICcqJywgbGVmdDogJCRbJDAgLSAyXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDk4OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQml0RXhwcmVzc2lvbicsIG9wZXJhdG9yOiAnLycsIGxlZnQ6ICQkWyQwIC0gMl0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA5OToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0JpdEV4cHJlc3Npb24nLCBvcGVyYXRvcjogJ0RJVicsIGxlZnQ6ICQkWyQwIC0gMl0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMDA6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdCaXRFeHByZXNzaW9uJywgb3BlcmF0b3I6ICdNT0QnLCBsZWZ0OiAkJFskMCAtIDJdLCByaWdodDogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTAxOgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQml0RXhwcmVzc2lvbicsIG9wZXJhdG9yOiAnJScsIGxlZnQ6ICQkWyQwIC0gMl0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMDI6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdCaXRFeHByZXNzaW9uJywgb3BlcmF0b3I6ICdeJywgbGVmdDogJCRbJDAgLSAyXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEwODoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0luU3ViUXVlcnlQcmVkaWNhdGUnLCBoYXNOb3Q6ICQkWyQwIC0gNF0sIGxlZnQ6ICQkWyQwIC0gNV0sIHJpZ2h0OiAkJFskMCAtIDFdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTA5OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnSW5FeHByZXNzaW9uTGlzdFByZWRpY2F0ZScsIGhhc05vdDogJCRbJDAgLSA0XSwgbGVmdDogJCRbJDAgLSA1XSwgcmlnaHQ6ICQkWyQwIC0gMV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMTA6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdCZXR3ZWVuUHJlZGljYXRlJywgaGFzTm90OiAkJFskMCAtIDRdLCBsZWZ0OiAkJFskMCAtIDVdLCByaWdodDogeyBsZWZ0OiAkJFskMCAtIDJdLCByaWdodDogJCRbJDBdIH0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMTE6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdTb3VuZHNMaWtlUHJlZGljYXRlJywgaGFzTm90OiBmYWxzZSwgbGVmdDogJCRbJDAgLSAzXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDExMjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0xpa2VQcmVkaWNhdGUnLCBoYXNOb3Q6ICQkWyQwIC0gM10sIGxlZnQ6ICQkWyQwIC0gNF0sIHJpZ2h0OiAkJFskMCAtIDFdLCBlc2NhcGU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDExMzoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1JlZ2V4cFByZWRpY2F0ZScsIGhhc05vdDogJCRbJDAgLSAyXSwgbGVmdDogJCRbJDAgLSAzXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEyNDoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0lzTnVsbEJvb2xlYW5QcmltYXJ5JywgaGFzTm90OiAkJFskMCAtIDFdLCB2YWx1ZTogJCRbJDAgLSAzXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEyNToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0NvbXBhcmlzb25Cb29sZWFuUHJpbWFyeScsIGxlZnQ6ICQkWyQwIC0gMl0sIG9wZXJhdG9yOiAkJFskMCAtIDFdLCByaWdodDogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTI2OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQ29tcGFyaXNvblN1YlF1ZXJ5Qm9vbGVhblByaW1hcnknLCBvcGVyYXRvcjogJCRbJDAgLSA0XSwgc3ViUXVlcnlPcHQ6ICQkWyQwIC0gM10sIGxlZnQ6ICQkWyQwIC0gNV0sIHJpZ2h0OiAkJFskMCAtIDFdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTI4OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnQm9vbGVhbkV4dHJhJywgdmFsdWU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEzMDoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0lzRXhwcmVzc2lvbicsIGhhc05vdDogJCRbJDAgLSAxXSwgbGVmdDogJCRbJDAgLSAzXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEzMToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ05vdEV4cHJlc3Npb24nLCB2YWx1ZTogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTMyOiBjYXNlIDEzNToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0FuZEV4cHJlc3Npb24nLCBvcGVyYXRvcjogJCRbJDAgLSAxXSwgbGVmdDogJCRbJDAgLSAyXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEzMzogY2FzZSAxMzQ6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdPckV4cHJlc3Npb24nLCBvcGVyYXRvcjogJCRbJDAgLSAxXSwgbGVmdDogJCRbJDAgLSAyXSwgcmlnaHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDEzNjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1hPUkV4cHJlc3Npb24nLCBsZWZ0OiAkJFskMCAtIDJdLCByaWdodDogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTM3OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnRXhwcmVzc2lvbkxpc3QnLCB2YWx1ZTogWyQkWyQwXV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMzg6IGNhc2UgMjEzOgogICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTsgdGhpcy4kLnZhbHVlLnB1c2goJCRbJDBdKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTQ1OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnR3JvdXBCeScsIHZhbHVlOiAkJFskMCAtIDFdLCByb2xsVXA6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE0ODoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ09yZGVyQnknLCB2YWx1ZTogJCRbJDAgLSAxXSwgcm9sbFVwOiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxNDk6IGNhc2UgMTk1OgogICAgICAgICAgdGhpcy4kID0gWyQkWyQwXV0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTUwOgogICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTsgJCRbJDAgLSAyXS5wdXNoKCQkWyQwXSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE1MToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0dyb3VwQnlPcmRlckJ5SXRlbScsIHZhbHVlOiAkJFskMCAtIDFdLCBzb3J0T3B0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxNTc6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdMaW1pdCcsIHZhbHVlOiBbJCRbJDBdXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE1ODoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0xpbWl0JywgdmFsdWU6IFskJFskMCAtIDJdLCAkJFskMF1dIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTU5OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnTGltaXQnLCB2YWx1ZTogWyQkWyQwXSwgJCRbJDAgLSAyXV0sIG9mZnNldE1vZGU6IHRydWUgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxNjY6CiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdICsgJyAnICsgJCRbJDBdCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE2NzoKICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM10gKyAnICcgKyAkJFskMCAtIDJdICsgJyAnICsgJCRbJDAgLSAxXSArICcgJyArICQkWyQwXQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxNjg6CiAgICAgICAgICB0aGlzLiQgPSB7fQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxNjk6CiAgICAgICAgICB0aGlzLiQgPSB7IGZyb206ICQkWyQwIC0gOF0sIHBhcnRpdGlvbjogJCRbJDAgLSA3XSwgd2hlcmU6ICQkWyQwIC0gNl0sIGdyb3VwQnk6ICQkWyQwIC0gNV0sIGhhdmluZzogJCRbJDAgLSA0XSwgb3JkZXJCeTogJCRbJDAgLSAzXSwgbGltaXQ6ICQkWyQwIC0gMl0sIHByb2NlZHVyZTogJCRbJDAgLSAxXSwgdXBkYXRlTG9ja01vZGU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE3MDoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1RhYmxlUmVmZXJlbmNlcycsIHZhbHVlOiBbJCRbJDBdXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE3MjoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1RhYmxlUmVmZXJlbmNlJywgdmFsdWU6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE3MzoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1RhYmxlUmVmZXJlbmNlJywgaGFzT2o6IHRydWUsIHZhbHVlOiAkJFskMCAtIDFdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTgxOgogICAgICAgICAgdGhpcy4kID0geyBsZWZ0UmlnaHQ6IG51bGwsIG91dE9wdDogbnVsbCB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE4MjoKICAgICAgICAgIHRoaXMuJCA9IHsgbGVmdFJpZ2h0OiAkJFskMCAtIDFdLCBvdXRPcHQ6ICQkWyQwXSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE4MzoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0lubmVyQ3Jvc3NKb2luVGFibGUnLCBpbm5lckNyb3NzT3B0OiAkJFskMCAtIDJdLCBsZWZ0OiAkJFskMCAtIDNdLCByaWdodDogJCRbJDBdLCBjb25kaXRpb246IG51bGwgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxODQ6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdJbm5lckNyb3NzSm9pblRhYmxlJywgaW5uZXJDcm9zc09wdDogJCRbJDAgLSAzXSwgbGVmdDogJCRbJDAgLSA0XSwgcmlnaHQ6ICQkWyQwIC0gMV0sIGNvbmRpdGlvbjogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTg1OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnU3RyYWlnaHRKb2luVGFibGUnLCBsZWZ0OiAkJFskMCAtIDNdLCByaWdodDogJCRbJDAgLSAxXSwgY29uZGl0aW9uOiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxODY6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdMZWZ0UmlnaHRKb2luVGFibGUnLCBsZWZ0UmlnaHQ6ICQkWyQwIC0gNF0sIG91dE9wdDogJCRbJDAgLSAzXSwgbGVmdDogJCRbJDAgLSA1XSwgcmlnaHQ6ICQkWyQwIC0gMV0sIGNvbmRpdGlvbjogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTg3OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnTmF0dXJhbEpvaW5UYWJsZScsIGxlZnRSaWdodDogJCRbJDAgLSAyXS5sZWZ0UmlnaHQsIG91dE9wdDogJCRbJDAgLSAyXS5vdXRPcHQsIGxlZnQ6ICQkWyQwIC0gNF0sIHJpZ2h0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxOTA6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdPbkpvaW5Db25kaXRpb24nLCB2YWx1ZTogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTkyOgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnVXNpbmdKb2luQ29uZGl0aW9uJywgdmFsdWU6ICQkWyQwIC0gMV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxOTY6CiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdOyAkJFskMCAtIDJdLnB1c2goJCRbJDBdKQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxOTg6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdQYXJ0aXRpb25zJywgdmFsdWU6ICQkWyQwIC0gMV0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMDA6CiAgICAgICAgICB0aGlzLiQgPSB7IGhhc0FzOiB0cnVlLCBhbGlhczogJCRbJDBdIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjAxOgogICAgICAgICAgdGhpcy4kID0geyBoYXNBczogZmFsc2UsIGFsaWFzOiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMDU6IGNhc2UgMjA2OiBjYXNlIDIwNzoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0Zvck9wdEluZGV4SGludCcsIHZhbHVlOiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMTI6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdJbmRleEhpbnRMaXN0JywgdmFsdWU6IFskJFskMF1dIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjE0OgogICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnVXNlSW5kZXhIaW50JywgdmFsdWU6ICQkWyQwIC0gMV0sIGZvck9wdDogJCRbJDAgLSAzXSwgaW5kZXhPcktleTogJCRbJDAgLSA0XSB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDIxNToKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0lnbm9yZUluZGV4SGludCcsIHZhbHVlOiAkJFskMCAtIDFdLCBmb3JPcHQ6ICQkWyQwIC0gM10sIGluZGV4T3JLZXk6ICQkWyQwIC0gNF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMTY6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdGb3JjZUluZGV4SGludCcsIHZhbHVlOiAkJFskMCAtIDFdLCBmb3JPcHQ6ICQkWyQwIC0gM10sIGluZGV4T3JLZXk6ICQkWyQwIC0gNF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMTc6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdUYWJsZUZhY3RvcicsIHZhbHVlOiAkJFskMCAtIDNdLCBwYXJ0aXRpb246ICQkWyQwIC0gMl0sIGFsaWFzOiAkJFskMCAtIDFdLmFsaWFzLCBoYXNBczogJCRbJDAgLSAxXS5oYXNBcywgaW5kZXhIaW50T3B0OiAkJFskMF0gfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMTg6CiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdUYWJsZUZhY3RvcicsIHZhbHVlOiB7IHR5cGU6ICdTdWJRdWVyeScsIHZhbHVlOiAkJFskMCAtIDJdIH0sIGFsaWFzOiAkJFskMF0uYWxpYXMsIGhhc0FzOiAkJFskMF0uaGFzQXMgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyMTk6CiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdOyB0aGlzLiQuaGFzUGFyZW50aGVzZXMgPSB0cnVlCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDIyMDoKICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ1BsYWNlSG9sZGVyJywgdmFsdWU6ICQkWyQwXSwgcGFyYW06ICQkWyQwXS5zbGljZSgyLCAtMSkgfQogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0sCiAgICB0YWJsZTogW3sgMzogMSwgNDogMiwgNzogMywgOTogNSwgMTA6IDYsIDEzOiA3LCAxNjogJFYwLCAxODogJFYxIH0sIHsgMTogWzNdIH0sIHsgNTogOSwgNjogJFYyLCA4OiAkVjMsIDE0OiAkVjQgfSwgeyA1OiAxMiwgNjogJFYyLCA4OiAkVjMgfSwgbyhbMTYsIDMyLCAzMywgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0NSwgNDYsIDUwLCA1MSwgNTQsIDU1LCA1NywgNTgsIDYwLCA3NiwgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCAxMDEsIDE5NV0sICRWNSwgeyAxNTogMTMsIDI5OiAkVjYsIDMwOiAkVjcsIDMxOiAkVjggfSksIG8oJFY5LCBbMiwgNV0pLCBvKFs2LCA4LCAxNDZdLCAkVmEsIHsgMTE6IDE3LCAxMzc6IDE4LCAxMzg6ICRWYiB9KSwgeyAxNDogJFZjIH0sIHsgNDogMjEsIDE4OiAkVjEgfSwgeyA2OiBbMSwgMjJdIH0sIHsgMTU6IDIzLCAxODogJFY1LCAyOTogJFY2LCAzMDogJFY3LCAzMTogJFY4IH0sIHsgNjogWzIsIDNdIH0sIHsgNjogWzEsIDI0XSB9LCBvKCRWZCwgWzIsIDE4XSwgeyAxOTogMjUsIDMyOiBbMSwgMjZdIH0pLCBvKCRWZSwgWzIsIDEzXSksIG8oJFZlLCBbMiwgMTRdKSwgbygkVmUsIFsyLCAxNV0pLCBvKCRWOSwgJFZmLCB7IDEyOiAyNywgMTQ1OiAyOCwgMTQ2OiAkVmcgfSksIG8oJFZoLCBbMiwgMTQ3XSksIHsgMTY6ICRWaSwgMzU6ICRWaiwgNDc6IDMyLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTM2OiAzMCwgMTM5OiAzMSwgMTk1OiAkVkIgfSwgeyAxNTogNjcsIDE2OiAkVjUsIDI5OiAkVjYsIDMwOiAkVjcsIDMxOiAkVjggfSwgeyAxNzogWzEsIDY4XSB9LCB7IDE6IFsyLCAxXSB9LCB7IDQ6IDY5LCA5OiA3MCwgMTg6ICRWMSB9LCB7IDE6IFsyLCAyXSB9LCBvKCRWQywgWzIsIDIwXSwgeyAyMDogNzEsIDMzOiBbMSwgNzJdIH0pLCBvKCRWZCwgWzIsIDE3XSksIG8oJFY5LCBbMiwgNl0pLCBvKCRWRCwgWzIsIDE2MV0pLCB7IDM1OiBbMSwgNzNdIH0sIG8oJFZoLCAkVkUsIHsgMTMyOiA3NCwgNDM6ICRWRiwgMTMzOiAkVkcgfSksIG8oJFZILCBbMiwgMTQ5XSksIG8oJFZILCBbMiwgMTUyXSwgeyAxNDA6IDc3LCAxMDc6ICRWSSwgMTI0OiAkVkosIDEyNTogJFZLLCAxMjY6ICRWTCwgMTI3OiAkVk0sIDE0MTogWzEsIDgzXSwgMTQyOiBbMSwgODRdIH0pLCBvKCRWTiwgWzIsIDEyOV0sIHsgMTExOiA4NiwgMzQ6IFsxLCA4N10sIDExMjogWzEsIDg4XSwgMTEzOiBbMSwgODldLCAxMTQ6IFsxLCA5MF0sIDExNTogWzEsIDkxXSwgMTE2OiBbMSwgOTJdLCAxMTc6IFsxLCA5M10sIDEyMTogWzEsIDg1XSB9KSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogOTQsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKCRWTywgWzIsIDEyM10pLCBvKCRWTywgWzIsIDEwN10sIHsgMTAwOiA5NSwgNDU6ICRWUCwgNzk6ICRWUSwgODE6ICRWUiwgOTE6ICRWUywgOTI6ICRWVCwgOTM6ICRWVSwgOTQ6ICRWViwgOTU6ICRWVywgOTY6ICRWWCwgOTc6ICRWWSwgOTg6ICRWWiwgOTk6ICRWXywgMTAxOiAkViQsIDEwNTogJFYwMSwgMTA2OiAkVjAxLCAxMDk6ICRWMDEsIDExMDogJFYwMSwgMTA4OiBbMSwgOTZdIH0pLCBvKCRWMTEsIFsyLCA5MF0pLCBvKCRWMjEsIFsyLCA4MF0pLCBvKCRWMjEsIFsyLCA4MV0sIHsgNjc6ICRWMzEgfSksIG8oJFYyMSwgWzIsIDgyXSksIG8oJFYyMSwgWzIsIDgzXSksIHsgNDogMTEyLCAxNjogJFZpLCAxODogJFYxLCAzNTogJFZqLCA0NzogMTEzLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODU6IDExMSwgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyAxNjogWzEsIDExNF0gfSwgeyAxNjogWzEsIDExNV0gfSwgeyA1MDogJFY0MSwgNjY6IDExNiB9LCBvKCRWMjEsIFsyLCA4OV0pLCBvKCRWMjEsIFsyLCA1MV0pLCBvKCRWMjEsIFsyLCA1Ml0pLCBvKCRWMjEsIFsyLCA1M10pLCBvKCRWMjEsIFsyLCA1NF0pLCBvKCRWMjEsIFsyLCA1NV0pLCBvKFs2LCA4LCAxNCwgMTcsIDM0LCAzNiwgNDMsIDQ1LCA0OSwgNTAsIDUxLCA2NywgNzEsIDcyLCA3NCwgNzcsIDc5LCA4MSwgODksIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMSwgMTAzLCAxMDUsIDEwNiwgMTA3LCAxMDgsIDEwOSwgMTEwLCAxMTIsIDExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMjEsIDEyNCwgMTI1LCAxMjYsIDEyNywgMTI5LCAxMzMsIDEzNSwgMTM4LCAxNDEsIDE0MiwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTQsIDE1NywgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTc5LCAxODAsIDE4Ml0sICRWNTEsIHsgMTY6ICRWNjEgfSksIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMTE5LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCAxOTU6ICRWQiB9LCB7IDE2OiAkVmksIDM1OiAkVmosIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDEyMCwgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAxMjEsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMTIyLCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCAxOTU6ICRWQiB9LCB7IDE2OiAkVmksIDM1OiAkVmosIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDEyMywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTI1LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNjk6IDEyNCwgNzE6IFsyLCA2OF0sIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAzNiwgMTAxOiAkVkEsIDEwNDogMzUsIDEyMDogMzMsIDE5NTogJFZCIH0sIG8oJFYyMSwgWzIsIDQ0XSksIG8oJFYyMSwgWzIsIDQ1XSksIG8oJFYyMSwgWzIsIDQ2XSksIG8oJFYyMSwgWzIsIDQ3XSksIG8oJFYyMSwgWzIsIDQ4XSksIG8oJFYyMSwgWzIsIDQ5XSksIG8oJFYyMSwgWzIsIDUwXSksIG8oJFYyMSwgWzIsIDIyMF0pLCB7IDEwOiAxMjcsIDEzOiAxMjYsIDE2OiAkVjAgfSwgbyhbNiwgOCwgMTQsIDEzOCwgMTQ2XSwgWzIsIDldKSwgbygkVjksIFsyLCAxMF0sIHsgMTQ6ICRWNCB9KSwgbygkVjksIFsyLCAxMV0pLCBvKCRWNzEsIFsyLCAyMl0sIHsgMjE6IDEyOCwgMzY6IFsxLCAxMjldIH0pLCB7IDM0OiBbMSwgMTMwXSB9LCBvKCRWRCwgWzIsIDE1N10sIHsgNDM6IFsxLCAxMzFdLCAxNDc6IFsxLCAxMzJdIH0pLCBvKCRWaCwgWzIsIDE0OF0pLCB7IDE2OiAkVmksIDM1OiAkVmosIDQ3OiAzMiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAzNiwgMTAxOiAkVkEsIDEwNDogMzUsIDEyMDogMzMsIDEzOTogMTMzLCAxOTU6ICRWQiB9LCB7IDEzNDogWzEsIDEzNF0gfSwgbygkVkgsIFsyLCAxNTFdKSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTM1LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTM2LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTM3LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTM4LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTM5LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgbygkVkgsIFsyLCAxNTNdKSwgbygkVkgsIFsyLCAxNTRdKSwgbyhbNTcsIDU4LCA2MCwgMTIzXSwgJFYwMSwgeyAxMDA6IDE0MCwgMTAxOiAkViQgfSksIHsgMTY6ICRWaSwgMjk6IFsxLCAxNDNdLCAzNTogJFZqLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDQ6IDE0MSwgMTE4OiAxNDIsIDExOTogWzEsIDE0NF0sIDE5NTogJFZCIH0sIG8oJFY4MSwgWzIsIDExNF0pLCBvKCRWODEsIFsyLCAxMTVdKSwgbygkVjgxLCBbMiwgMTE2XSksIG8oJFY4MSwgWzIsIDExN10pLCBvKCRWODEsIFsyLCAxMThdKSwgbygkVjgxLCBbMiwgMTE5XSksIG8oJFY4MSwgWzIsIDEyMF0pLCBvKCRWTiwgWzIsIDEzMV0pLCB7IDEwNTogWzEsIDE0NV0sIDEwNjogWzEsIDE0Nl0sIDEwOTogWzEsIDE0N10sIDExMDogWzEsIDE0OF0gfSwgeyAxMDk6IFsxLCAxNDldIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTAsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTEsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTIsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTMsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTQsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTUsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTYsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTcsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTgsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNTksIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNjAsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxNjEsIDE5NTogJFZCIH0sIG8oWzU3LCA1OCwgNjAsIDEwNSwgMTA2LCAxMDksIDExMCwgMTIzXSwgWzIsIDEwNF0pLCB7IDUwOiBbMSwgMTYyXSB9LCB7IDE3OiBbMSwgMTYzXSwgNDM6ICRWOTEgfSwgeyAxNzogWzEsIDE2NV0gfSwgbygkVmExLCBbMiwgMTM3XSwgeyAxMDc6ICRWSSwgMTI0OiAkVkosIDEyNTogJFZLLCAxMjY6ICRWTCwgMTI3OiAkVk0gfSksIHsgMTY6ICRWaSwgMzU6ICRWaiwgNDc6IDExMywgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg1OiAxNjYsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAzNiwgMTAxOiAkVkEsIDEwNDogMzUsIDEyMDogMzMsIDE5NTogJFZCIH0sIHsgNDogMTY3LCAxODogJFYxIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNDc6IDE2OCwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDY3OiAkVjMxLCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKFs2LCA4LCAxNCwgMTYsIDE3LCAzNSwgMzYsIDQzLCA0OSwgNTAsIDUxLCA1NCwgNTUsIDU3LCA1OCwgNjAsIDY3LCA3NiwgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCA4OSwgMTAxLCAxMjksIDEzNSwgMTM4LCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NCwgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTc5LCAxODAsIDE4MiwgMTkyLCAxOTMsIDE5NCwgMTk1XSwgJFY1MSksIG8oJFZhMSwgJFZiMSwgeyAxMjA6IDMzLCAxMDQ6IDM1LCA5MDogMzYsIDgwOiAzNywgNjE6IDM4LCA2NjogMzksIDYzOiA0MCwgNzg6IDQxLCA3NTogNDYsIDUyOiA0NywgNTM6IDQ4LCA1NjogNDksIDU5OiA1MCwgNjI6IDUxLCA2NDogMTY5LCA2NTogMTcwLCA0NzogMTc0LCAxNjogJFZpLCAzMDogJFZjMSwgMzU6ICRWaiwgNDU6ICRWZDEsIDQ2OiAkVmUxLCA1MDogJFZrLCA1MTogJFZsLCA1NDogJFZtLCA1NTogJFZuLCA1NzogJFZvLCA1ODogJFZwLCA2MDogJFZxLCA3NjogJFZyLCA3OTogJFZzLCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCAxMDE6ICRWQSwgMTk1OiAkVkIgfSksIG8oJFYyMSwgWzIsIDc1XSksIG8oJFYyMSwgWzIsIDc2XSksIG8oJFYyMSwgWzIsIDc3XSksIG8oJFYyMSwgWzIsIDc4XSksIG8oJFYyMSwgWzIsIDc5XSksIHsgNzA6IDE3NSwgNzE6IFsxLCAxNzZdIH0sIHsgNzE6IFsyLCA2OV0sIDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9LCBvKCRWZjEsIFsyLCA3XSwgeyAxNDogJFZjIH0pLCBvKCRWZjEsIFsyLCA4XSksIG8oJFZnMSwgWzIsIDI0XSwgeyAyMjogMTc3LCAzNzogWzEsIDE3OF0gfSksIG8oJFY3MSwgWzIsIDIxXSksIHsgMzU6IFsxLCAxNzldIH0sIHsgMzU6IFsxLCAxODBdIH0sIHsgMzU6IFsxLCAxODFdIH0sIG8oJFZILCBbMiwgMTUwXSksIG8oJFZoMSwgWzIsIDE0NF0pLCBvKCRWTiwgWzIsIDEzMl0pLCBvKCRWaTEsIFsyLCAxMzNdLCB7IDEwNzogJFZJLCAxMjQ6ICRWSiB9KSwgbygkVmkxLCBbMiwgMTM0XSwgeyAxMDc6ICRWSSwgMTI0OiAkVkogfSksIG8oJFZOLCBbMiwgMTM1XSksIG8oJFZpMSwgWzIsIDEzNl0sIHsgMTA3OiAkVkksIDEyNDogJFZKIH0pLCB7IDU2OiAxODQsIDU3OiAkVm8sIDU4OiAkVnAsIDYwOiBbMSwgMTgzXSwgMTIyOiAxODIsIDEyMzogWzEsIDE4NV0gfSwgbygkVk8sIFsyLCAxMjVdKSwgeyAxNjogWzEsIDE4Nl0gfSwgeyAxNjogWzIsIDEyMV0gfSwgeyAxNjogWzIsIDEyMl0gfSwgeyAxNjogWzEsIDE4N10gfSwgeyAxNjogJFZpLCAzNTogJFZqLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDE4OCwgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAxODksIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxOTAsIDE5NTogJFZCIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAxOTEsIDE5NTogJFZCIH0sIG8oWzYsIDgsIDE0LCAxNywgMzQsIDM2LCA0MywgNDksIDUwLCA1MSwgNzEsIDcyLCA3NCwgNzcsIDg5LCA5MSwgMTAxLCAxMDUsIDEwNiwgMTA3LCAxMDgsIDEwOSwgMTEwLCAxMTIsIDExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMjEsIDEyNCwgMTI1LCAxMjYsIDEyNywgMTI5LCAxMzMsIDEzNSwgMTM4LCAxNDEsIDE0MiwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTQsIDE1NywgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTc5LCAxODAsIDE4Ml0sIFsyLCA5MV0sIHsgNDU6ICRWUCwgNzk6ICRWUSwgODE6ICRWUiwgOTI6ICRWVCwgOTM6ICRWVSwgOTQ6ICRWViwgOTU6ICRWVywgOTY6ICRWWCwgOTc6ICRWWSwgOTg6ICRWWiwgOTk6ICRWXyB9KSwgbyhbNiwgOCwgMTQsIDE3LCAzNCwgMzYsIDQzLCA0OSwgNTAsIDUxLCA3MSwgNzIsIDc0LCA3NywgODksIDkxLCA5MiwgOTksIDEwMSwgMTA1LCAxMDYsIDEwNywgMTA4LCAxMDksIDExMCwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNywgMTIxLCAxMjQsIDEyNSwgMTI2LCAxMjcsIDEyOSwgMTMzLCAxMzUsIDEzOCwgMTQxLCAxNDIsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNTcsIDE2NCwgMTY1LCAxNjcsIDE2OCwgMTczLCAxNzcsIDE3OSwgMTgwLCAxODJdLCBbMiwgOTJdLCB7IDQ1OiAkVlAsIDc5OiAkVlEsIDgxOiAkVlIsIDkzOiAkVlUsIDk0OiAkVlYsIDk1OiAkVlcsIDk2OiAkVlgsIDk3OiAkVlksIDk4OiAkVlogfSksIG8oJFZqMSwgWzIsIDkzXSwgeyA0NTogJFZQLCA3OTogJFZRLCA4MTogJFZSLCA5NTogJFZXLCA5NjogJFZYLCA5NzogJFZZLCA5ODogJFZaIH0pLCBvKCRWajEsIFsyLCA5NF0sIHsgNDU6ICRWUCwgNzk6ICRWUSwgODE6ICRWUiwgOTU6ICRWVywgOTY6ICRWWCwgOTc6ICRWWSwgOTg6ICRWWiB9KSwgbygkVmsxLCBbMiwgOTVdLCB7IDQ1OiAkVlAsIDk1OiAkVlcsIDk2OiAkVlgsIDk3OiAkVlksIDk4OiAkVlogfSksIG8oJFZrMSwgWzIsIDk2XSwgeyA0NTogJFZQLCA5NTogJFZXLCA5NjogJFZYLCA5NzogJFZZLCA5ODogJFZaIH0pLCBvKCRWMTEsIFsyLCA5N10pLCBvKCRWMTEsIFsyLCA5OF0pLCBvKCRWMTEsIFsyLCA5OV0pLCBvKCRWMTEsIFsyLCAxMDBdKSwgbygkVjExLCBbMiwgMTAxXSksIG8oWzYsIDgsIDE0LCAxNywgMzQsIDM2LCA0MywgNDksIDUwLCA1MSwgNzEsIDcyLCA3NCwgNzcsIDg5LCA5MSwgOTksIDEwMSwgMTA1LCAxMDYsIDEwNywgMTA4LCAxMDksIDExMCwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNywgMTIxLCAxMjQsIDEyNSwgMTI2LCAxMjcsIDEyOSwgMTMzLCAxMzUsIDEzOCwgMTQxLCAxNDIsIDE0NCwgMTQ2LCAxNTAsIDE1MiwgMTU0LCAxNTcsIDE2NCwgMTY1LCAxNjcsIDE2OCwgMTczLCAxNzcsIDE3OSwgMTgwLCAxODJdLCBbMiwgMTAyXSwgeyA0NTogJFZQLCA3OTogJFZRLCA4MTogJFZSLCA5MjogJFZULCA5MzogJFZVLCA5NDogJFZWLCA5NTogJFZXLCA5NjogJFZYLCA5NzogJFZZLCA5ODogJFZaIH0pLCBvKFs2LCA4LCAxNCwgMTYsIDE3LCAzNCwgMzUsIDM2LCA0MywgNDUsIDQ5LCA1MCwgNTEsIDU0LCA1NSwgNTcsIDU4LCA2MCwgNjcsIDcxLCA3MiwgNzQsIDc2LCA3NywgNzksIDgxLCA4MiwgODMsIDg0LCA4NiwgODcsIDg4LCA4OSwgOTEsIDkyLCA5MywgOTQsIDk1LCA5NiwgOTcsIDk4LCA5OSwgMTAxLCAxMDMsIDEwNSwgMTA2LCAxMDcsIDEwOCwgMTA5LCAxMTAsIDExMiwgMTEzLCAxMTQsIDExNSwgMTE2LCAxMTcsIDEyMSwgMTI0LCAxMjUsIDEyNiwgMTI3LCAxMjksIDEzMywgMTM1LCAxMzgsIDE0MSwgMTQyLCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NCwgMTU3LCAxNjQsIDE2NSwgMTY3LCAxNjgsIDE3MywgMTc3LCAxNzksIDE4MCwgMTgyLCAxOTIsIDE5MywgMTk0LCAxOTVdLCBbMiwgNjVdKSwgbygkVjIxLCBbMiwgODRdKSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMTkyLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgbygkVjIxLCBbMiwgODZdKSwgeyAxNzogWzEsIDE5M10sIDQzOiAkVjkxIH0sIHsgMTc6IFsxLCAxOTRdIH0sIHsgODk6IFsxLCAxOTVdLCAxMDc6ICRWSSwgMTI0OiAkVkosIDEyNTogJFZLLCAxMjY6ICRWTCwgMTI3OiAkVk0gfSwgeyAxNzogWzEsIDE5Nl0sIDQzOiBbMSwgMTk3XSB9LCBvKCRWYTEsIFsyLCA1OF0pLCBvKCRWYTEsIFsyLCA2MF0pLCBvKCRWYTEsIFsyLCA2MV0pLCB7IDE2OiAkVmksIDM1OiAkVmosIDQ3OiAxOTgsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKCRWYTEsIFsyLCA2M10sIHsgMTA3OiAkVkksIDEyNDogJFZKLCAxMjU6ICRWSywgMTI2OiAkVkwsIDEyNzogJFZNIH0pLCB7IDcxOiBbMSwgMjAwXSwgNzM6IDE5OSwgNzQ6IFsxLCAyMDFdLCA3NzogWzIsIDcyXSB9LCB7IDE2OiAkVmksIDM1OiAkVmosIDQ3OiAyMDIsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKCRWbDEsIFsyLCAyNl0sIHsgMjM6IDIwMywgMzg6IFsxLCAyMDRdIH0pLCBvKCRWZzEsIFsyLCAyM10pLCBvKCRWQywgWzIsIDE5XSksIG8oJFZELCBbMiwgMTU4XSksIG8oJFZELCBbMiwgMTU5XSksIG8oJFZOLCBbMiwgMTMwXSksIG8oJFZPLCBbMiwgMTI0XSksIG8oJFZOLCBbMiwgMTI3XSksIG8oJFZOLCBbMiwgMTI4XSksIHsgNDogMjA1LCAxODogJFYxIH0sIHsgNDogMjA2LCAxNjogJFZpLCAxODogJFYxLCAzNTogJFZqLCA0NzogMTEzLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODU6IDIwNywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyA0NTogJFZQLCA3OTogJFZRLCA4MTogJFZSLCA5MTogJFZTLCA5MjogJFZULCA5MzogJFZVLCA5NDogJFZWLCA5NTogJFZXLCA5NjogJFZYLCA5NzogJFZZLCA5ODogJFZaLCA5OTogJFZfLCAxMDc6IFsxLCAyMDhdIH0sIG8oJFZPLCBbMiwgMTA1XSwgeyAxMDI6IDIwOSwgMTAzOiBbMSwgMjEwXSB9KSwgbygkVk8sIFsyLCAxMTNdLCB7IDQ1OiAkVlAsIDc5OiAkVlEsIDgxOiAkVlIsIDkxOiAkVlMsIDkyOiAkVlQsIDkzOiAkVlUsIDk0OiAkVlYsIDk1OiAkVlcsIDk2OiAkVlgsIDk3OiAkVlksIDk4OiAkVlosIDk5OiAkVl8gfSksIG8oJFZPLCBbMiwgMTExXSwgeyA0NTogJFZQLCA3OTogJFZRLCA4MTogJFZSLCA5MTogJFZTLCA5MjogJFZULCA5MzogJFZVLCA5NDogJFZWLCA5NTogJFZXLCA5NjogJFZYLCA5NzogJFZZLCA5ODogJFZaLCA5OTogJFZfIH0pLCBvKCRWYTEsIFsyLCAxMzhdLCB7IDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9KSwgbygkVjIxLCBbMiwgODVdKSwgbygkVjIxLCBbMiwgODddKSwgbygkVjIxLCBbMiwgODhdKSwgbygkVjIxLCBbMiwgNTZdKSwgbygkVmExLCAkVmIxLCB7IDEyMDogMzMsIDEwNDogMzUsIDkwOiAzNiwgODA6IDM3LCA2MTogMzgsIDY2OiAzOSwgNjM6IDQwLCA3ODogNDEsIDc1OiA0NiwgNTI6IDQ3LCA1MzogNDgsIDU2OiA0OSwgNTk6IDUwLCA2MjogNTEsIDQ3OiAxNzQsIDY1OiAyMTEsIDE2OiAkVmksIDMwOiAkVmMxLCAzNTogJFZqLCA0NTogJFZkMSwgNDY6ICRWZTEsIDUwOiAkVmssIDUxOiAkVmwsIDU0OiAkVm0sIDU1OiAkVm4sIDU3OiAkVm8sIDU4OiAkVnAsIDYwOiAkVnEsIDc2OiAkVnIsIDc5OiAkVnMsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDEwMTogJFZBLCAxOTU6ICRWQiB9KSwgbygkVmExLCBbMiwgNjJdLCB7IDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9KSwgeyA3NzogWzEsIDIxMl0gfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMjEzLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMjE0LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgeyA3MjogWzEsIDIxNV0sIDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9LCBvKCRWbTEsIFsyLCAyOF0sIHsgMjQ6IDIxNiwgMzk6IFsxLCAyMTddIH0pLCBvKCRWbDEsIFsyLCAyNV0pLCB7IDE3OiBbMSwgMjE4XSB9LCB7IDE3OiBbMSwgMjE5XSB9LCB7IDE3OiBbMSwgMjIwXSwgNDM6ICRWOTEgfSwgeyAxNjogJFZpLCAzNTogJFZqLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDQ6IDIyMSwgMTk1OiAkVkIgfSwgbygkVk8sIFsyLCAxMTJdKSwgeyAxNjogJFZpLCAzNTogJFZqLCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAyMjIsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDE5NTogJFZCIH0sIG8oJFZhMSwgWzIsIDU3XSksIG8oJFYyMSwgWzIsIDc0XSksIHsgNzI6IFsxLCAyMjNdLCAxMDc6ICRWSSwgMTI0OiAkVkosIDEyNTogJFZLLCAxMjY6ICRWTCwgMTI3OiAkVk0gfSwgeyA3NzogWzIsIDczXSwgMTA3OiAkVkksIDEyNDogJFZKLCAxMjU6ICRWSywgMTI2OiAkVkwsIDEyNzogJFZNIH0sIHsgMTY6ICRWaSwgMzU6ICRWaiwgNDc6IDIyNCwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAzNiwgMTAxOiAkVkEsIDEwNDogMzUsIDEyMDogMzMsIDE5NTogJFZCIH0sIG8oJFZuMSwgWzIsIDI5XSwgeyAyNTogMjI1LCA0MDogWzEsIDIyNl0sIDQxOiBbMSwgMjI3XSB9KSwgbygkVm0xLCBbMiwgMjddKSwgbygkVk8sIFsyLCAxMjZdKSwgbygkVk8sIFsyLCAxMDhdKSwgbygkVk8sIFsyLCAxMDldKSwgbygkVk8sIFsyLCAxMTBdKSwgbygkVk8sIFsyLCAxMDZdKSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMjI4LCA1MDogJFZrLCA1MTogJFZsLCA1MjogNDcsIDUzOiA0OCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6IDQ5LCA1NzogJFZvLCA1ODogJFZwLCA1OTogNTAsIDYwOiAkVnEsIDYxOiAzOCwgNjI6IDUxLCA2MzogNDAsIDY2OiAzOSwgNzU6IDQ2LCA3NjogJFZyLCA3ODogNDEsIDc5OiAkVnMsIDgwOiAzNywgODE6ICRWdCwgODI6ICRWdSwgODM6ICRWdiwgODQ6ICRWdywgODY6ICRWeCwgODc6ICRWeSwgODg6ICRWeiwgOTA6IDM2LCAxMDE6ICRWQSwgMTA0OiAzNSwgMTIwOiAzMywgMTk1OiAkVkIgfSwgbygkVm8xLCBbMiwgNzBdLCB7IDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9KSwgbygkVnAxLCBbMiwgMzNdLCB7IDI2OiAyMjksIDQyOiBbMSwgMjMwXSB9KSwgbygkVm4xLCBbMiwgMzBdKSwgbygkVm4xLCBbMiwgMzFdKSwgbygkVm8xLCBbMiwgNzFdLCB7IDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9KSwgeyAxNjogJFZpLCAyNzogMjMxLCAzNTogJFZqLCA0NDogMjMyLCA0NTogJFZxMSwgNDY6ICRWcjEsIDQ3OiAyMzUsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKCRWcDEsIFsyLCAzMl0pLCBvKCRWczEsIFsyLCAxNjhdLCB7IDI4OiAyMzYsIDQzOiBbMSwgMjM3XSwgMTU3OiBbMSwgMjM4XSB9KSwgbygkVnQxLCBbMiwgMzVdKSwgbygkVnQxLCBbMiwgMzZdKSwgbygkVnQxLCBbMiwgMzddKSwgbygkVnQxLCBbMiwgMzldLCB7IDQ4OiAyMzksIDQ5OiBbMSwgMjQwXSwgNTA6IFsxLCAyNDFdLCA1MTogWzEsIDI0Ml0sIDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9KSwgbygkVnMxLCBbMiwgMTJdKSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NDogMjQzLCA0NTogJFZxMSwgNDY6ICRWcjEsIDQ3OiAyMzUsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCB7IDE2OiAkVnUxLCA1MDogJFY0MSwgNjY6IDI1MCwgODg6ICRWdjEsIDE1ODogMjQ0LCAxNjA6IDI0NSwgMTYxOiAyNDYsIDE3MjogMjQ5LCAxNzQ6IDI0OCB9LCBvKCRWdDEsIFsyLCAzOF0pLCB7IDUwOiBbMSwgMjUyXSwgNTE6IFsxLCAyNTNdIH0sIG8oJFZ0MSwgWzIsIDQxXSksIG8oJFZ0MSwgWzIsIDQzXSksIG8oJFZ0MSwgWzIsIDM0XSksIG8oWzYsIDgsIDE0LCAxNywgMTI5LCAxMzUsIDEzOCwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTRdLCAkVncxLCB7IDE1OTogMjU0LCA0MzogJFZ4MSwgMTgyOiAkVnkxIH0pLCBvKCRWejEsIFsyLCAxNzBdKSwgbygkVnoxLCBbMiwgMTcyXSwgeyAxNjM6IDI1NywgMTY2OiAyNTksIDM2OiAkVkExLCAxNjQ6ICRWQjEsIDE2NTogJFZDMSwgMTY3OiAkVkQxLCAxNjg6ICRWRTEsIDE3MzogJFZGMSwgMTc3OiAkVkcxIH0pLCB7IDE2MjogWzEsIDI2NV0gfSwgbygkVkgxLCBbMiwgMTkzXSksIG8oJFZIMSwgWzIsIDE5NF0pLCBvKFs2LCA4LCAxNCwgMTcsIDM2LCA0MywgNDksIDUwLCA4OSwgMTI5LCAxMzUsIDEzOCwgMTQ0LCAxNDYsIDE1MCwgMTUyLCAxNTQsIDE2NCwgMTY1LCAxNjcsIDE2OCwgMTczLCAxNzcsIDE3OSwgMTgwLCAxOTIsIDE5MywgMTk0XSwgJFZ3MSwgeyAxNTk6IDI2NiwgNjc6ICRWMzEsIDE4MjogJFZ5MSB9KSwgeyA0OiAyNjcsIDE2OiAkVnUxLCAxODogJFYxLCA1MDogJFY0MSwgNjY6IDI1MCwgODg6ICRWdjEsIDE1ODogMjY4LCAxNjA6IDI0NSwgMTYxOiAyNDYsIDE3MjogMjQ5LCAxNzQ6IDI0OCB9LCBvKCRWdDEsIFsyLCA0MF0pLCBvKCRWdDEsIFsyLCA0Ml0pLCBvKCRWSTEsIFsyLCAxMzldLCB7IDEyODogMjY5LCAxMjk6IFsxLCAyNzBdIH0pLCB7IDE2OiAkVnUxLCA1MDogJFY0MSwgNjY6IDI1MCwgODg6ICRWdjEsIDE2MDogMjcxLCAxNjE6IDI0NiwgMTcyOiAyNDksIDE3NDogMjQ4IH0sIHsgMTY6IFsxLCAyNzJdIH0sIHsgMTczOiBbMSwgMjczXSB9LCB7IDE2OiAkVnUxLCA1MDogJFY0MSwgNjY6IDI1MCwgMTc0OiAyNzQgfSwgeyAxNjk6IDI3NSwgMTcwOiAkVkoxLCAxNzM6ICRWSzEgfSwgeyAxNjY6IDI3OCwgMTY3OiAkVkQxLCAxNjg6ICRWRTEsIDE3MTogMjc3LCAxNzM6IFsyLCAxODFdIH0sIHsgMTczOiBbMiwgMTc1XSB9LCB7IDE3MzogWzIsIDE3Nl0gfSwgbygkVkwxLCBbMiwgMTc3XSksIG8oJFZMMSwgWzIsIDE3OF0pLCB7IDE2OiAkVnUxLCA1MDogJFY0MSwgNjY6IDI1MCwgMTYxOiAyNzksIDE3MjogMjQ5LCAxNzQ6IDI0OCB9LCBvKCRWTTEsICRWTjEsIHsgMTgzOiAyODAsIDY2OiAyODIsIDQ5OiAkVk8xLCA1MDogJFY0MSB9KSwgeyAxNzogWzEsIDI4M10gfSwgeyAxNzogWzEsIDI4NF0sIDQzOiAkVngxIH0sIG8oJFZoMSwgWzIsIDE0MV0sIHsgMTMwOiAyODUsIDEzMTogMjg2LCAxMzU6IFsxLCAyODddIH0pLCB7IDE2OiAkVmksIDM1OiAkVmosIDQ3OiAyODgsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKCRWejEsIFsyLCAxNzFdKSwgeyA1MDogJFY0MSwgNjY6IDI5MCwgMTgxOiAyODkgfSwgeyAxNjogJFZ1MSwgNTA6ICRWNDEsIDY2OiAyNTAsIDE3NDogMjkxIH0sIHsgMTc2OiAyOTIsIDE3OTogJFZQMSB9LCB7IDE3MzogWzEsIDI5NF0gfSwgeyAxNzM6IFsyLCAxODBdIH0sIHsgMTczOiBbMSwgMjk1XSB9LCB7IDE2OTogMjk2LCAxNzA6ICRWSjEsIDE3MzogJFZLMSB9LCB7IDM2OiAkVkExLCA4OTogWzEsIDI5N10sIDE2MzogMjU3LCAxNjQ6ICRWQjEsIDE2NTogJFZDMSwgMTY2OiAyNTksIDE2NzogJFZEMSwgMTY4OiAkVkUxLCAxNzM6ICRWRjEsIDE3NzogJFZHMSB9LCBvKCRWSDEsIFsyLCAyMTBdLCB7IDE4OTogMjk4LCAxOTA6IDI5OSwgMTkxOiAzMDAsIDE5MjogJFZRMSwgMTkzOiAkVlIxLCAxOTQ6ICRWUzEgfSksIHsgNTA6ICRWNDEsIDY2OiAzMDQgfSwgbygkVk0xLCBbMiwgMjAxXSwgeyA2NzogJFYzMSB9KSwgbygkVkgxLCAkVk4xLCB7IDY2OiAyODIsIDE4MzogMzA1LCA0OTogJFZPMSwgNTA6ICRWNDEgfSksIG8oJFZIMSwgWzIsIDIxOV0pLCBvKCRWVDEsIFsyLCAxNTVdLCB7IDE0MzogMzA2LCAxNDQ6IFsxLCAzMDddIH0pLCBvKCRWaDEsIFsyLCAxNDJdKSwgeyAxNjogJFZpLCAzNTogJFZqLCA0NzogMzIsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxMzY6IDMwOCwgMTM5OiAzMSwgMTk1OiAkVkIgfSwgbygkVkkxLCBbMiwgMTQwXSwgeyAxMDc6ICRWSSwgMTI0OiAkVkosIDEyNTogJFZLLCAxMjY6ICRWTCwgMTI3OiAkVk0gfSksIHsgMTc6IFsxLCAzMDldLCA0MzogWzEsIDMxMF0gfSwgbygkVmExLCBbMiwgMTk1XSwgeyA2NzogJFYzMSB9KSwgbyhbNiwgOCwgMTQsIDE3LCAzNiwgNDMsIDg5LCAxMjksIDEzNSwgMTM4LCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NCwgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTgyXSwgWzIsIDE4M10sIHsgMTc1OiAzMTEsIDE3NjogMzEyLCAxNzk6ICRWUDEsIDE4MDogJFZVMSB9KSwgbygkVkgxLCBbMiwgMTg1XSksIHsgMTY6ICRWaSwgMzU6ICRWaiwgNDc6IDMxNCwgNTA6ICRWaywgNTE6ICRWbCwgNTI6IDQ3LCA1MzogNDgsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiA0OSwgNTc6ICRWbywgNTg6ICRWcCwgNTk6IDUwLCA2MDogJFZxLCA2MTogMzgsIDYyOiA1MSwgNjM6IDQwLCA2NjogMzksIDc1OiA0NiwgNzY6ICRWciwgNzg6IDQxLCA3OTogJFZzLCA4MDogMzcsIDgxOiAkVnQsIDgyOiAkVnUsIDgzOiAkVnYsIDg0OiAkVncsIDg2OiAkVngsIDg3OiAkVnksIDg4OiAkVnosIDkwOiAzNiwgMTAxOiAkVkEsIDEwNDogMzUsIDEyMDogMzMsIDE5NTogJFZCIH0sIHsgMTY6ICRWdTEsIDUwOiAkVjQxLCA2NjogMjUwLCAxNjE6IDMxNSwgMTcyOiAyNDksIDE3NDogMjQ4IH0sIHsgMTY6ICRWdTEsIDUwOiAkVjQxLCA2NjogMjUwLCAxNzQ6IDMxNiB9LCB7IDE3MzogWzIsIDE4Ml0gfSwgbygkVnoxLCBbMiwgMTczXSksIG8oJFZIMSwgWzIsIDIxN10pLCBvKCRWSDEsIFsyLCAyMTFdKSwgbygkVkgxLCBbMiwgMjEyXSksIHsgMTg0OiAzMTgsIDE4NTogJFZWMSwgMTg2OiAkVlcxIH0sIHsgMTg0OiAzMjEsIDE4NTogJFZWMSwgMTg2OiAkVlcxIH0sIHsgMTg0OiAzMjIsIDE4NTogJFZWMSwgMTg2OiAkVlcxIH0sIG8oJFZNMSwgWzIsIDIwMF0sIHsgNjc6ICRWMzEgfSksIG8oJFZIMSwgWzIsIDIxOF0pLCBvKCRWaCwgJFZhLCB7IDEzNzogMTgsIDExOiAzMjMsIDEzODogJFZiIH0pLCB7IDE2OiAkVmksIDM1OiAkVmosIDQ3OiAzMjQsIDUwOiAkVmssIDUxOiAkVmwsIDUyOiA0NywgNTM6IDQ4LCA1NDogJFZtLCA1NTogJFZuLCA1NjogNDksIDU3OiAkVm8sIDU4OiAkVnAsIDU5OiA1MCwgNjA6ICRWcSwgNjE6IDM4LCA2MjogNTEsIDYzOiA0MCwgNjY6IDM5LCA3NTogNDYsIDc2OiAkVnIsIDc4OiA0MSwgNzk6ICRWcywgODA6IDM3LCA4MTogJFZ0LCA4MjogJFZ1LCA4MzogJFZ2LCA4NDogJFZ3LCA4NjogJFZ4LCA4NzogJFZ5LCA4ODogJFZ6LCA5MDogMzYsIDEwMTogJFZBLCAxMDQ6IDM1LCAxMjA6IDMzLCAxOTU6ICRWQiB9LCBvKCRWaDEsICRWRSwgeyAxMzI6IDMyNSwgNDM6ICRWRiwgMTMzOiAkVkcgfSksIG8oWzYsIDgsIDE0LCAxNywgMzYsIDQzLCA0OSwgNTAsIDg5LCAxMjksIDEzNSwgMTM4LCAxNDQsIDE0NiwgMTUwLCAxNTIsIDE1NCwgMTY0LCAxNjUsIDE2NywgMTY4LCAxNzMsIDE3NywgMTc5LCAxODAsIDE4MiwgMTkyLCAxOTMsIDE5NF0sIFsyLCAxOThdKSwgeyA1MDogJFY0MSwgNjY6IDMyNiB9LCBvKCRWSDEsIFsyLCAxODRdKSwgbygkVkgxLCBbMiwgMTkxXSksIHsgMTY6IFsxLCAzMjddIH0sIG8oJFZIMSwgWzIsIDE5MF0sIHsgMTA3OiAkVkksIDEyNDogJFZKLCAxMjU6ICRWSywgMTI2OiAkVkwsIDEyNzogJFZNIH0pLCB7IDM2OiAkVkExLCAxNjM6IDI1NywgMTY0OiAkVkIxLCAxNjU6ICRWQzEsIDE2NjogMjU5LCAxNjc6ICRWRDEsIDE2ODogJFZFMSwgMTczOiAkVkYxLCAxNzU6IDMyOCwgMTc2OiAzMTIsIDE3NzogJFZHMSwgMTc5OiAkVlAxLCAxODA6ICRWVTEgfSwgbygkVkgxLCBbMiwgMTg3XSksIHsgMTkxOiAzMjksIDE5MjogJFZRMSwgMTkzOiAkVlIxLCAxOTQ6ICRWUzEgfSwgeyAxNjogJFZYMSwgMTUyOiAkVlkxLCAxODc6IDMzMCB9LCBvKCRWWjEsIFsyLCAyMDJdKSwgbygkVloxLCBbMiwgMjAzXSksIHsgMTY6ICRWWDEsIDE1MjogJFZZMSwgMTg3OiAzMzIgfSwgeyAxNjogJFZYMSwgMTUyOiAkVlkxLCAxODc6IDMzMyB9LCBvKCRWRCwgJFZmLCB7IDE0NTogMjgsIDEyOiAzMzQsIDE0NjogJFZnIH0pLCBvKCRWVDEsIFsyLCAxNTZdLCB7IDEwNzogJFZJLCAxMjQ6ICRWSiwgMTI1OiAkVkssIDEyNjogJFZMLCAxMjc6ICRWTSB9KSwgbygkVmgxLCBbMiwgMTQ1XSksIG8oJFZhMSwgWzIsIDE5Nl0sIHsgNjc6ICRWMzEgfSksIHsgNTA6ICRWNDEsIDY2OiAzMzYsIDY4OiAzMzUgfSwgbygkVkgxLCBbMiwgMTg2XSksIG8oJFZIMSwgWzIsIDIxM10pLCB7IDE2OiBbMSwgMzM3XSB9LCB7IDEzNTogWzEsIDM0MF0sIDEzODogWzEsIDMzOV0sIDE3MzogWzEsIDMzOF0gfSwgeyAxNjogWzEsIDM0MV0gfSwgeyAxNjogWzEsIDM0Ml0gfSwgbygkVl8xLCBbMiwgMTYyXSwgeyAxNDg6IDM0MywgMTQ5OiAzNDQsIDE1MDogWzEsIDM0NV0gfSksIHsgMTc6IFsxLCAzNDZdLCA0MzogJFYkMSB9LCBvKCRWYTEsIFsyLCA2Nl0sIHsgNjc6ICRWMzEgfSksIHsgMTc6IFsyLCAyMDhdLCA1MDogJFY0MSwgNjY6IDMzNiwgNjg6IDM0OSwgMTg4OiAzNDggfSwgeyAxNjogWzIsIDIwNV0gfSwgeyAxNjogWzIsIDIwNl0gfSwgeyAxNjogWzIsIDIwN10gfSwgeyA1MDogJFY0MSwgNjY6IDMzNiwgNjg6IDM1MCB9LCB7IDUwOiAkVjQxLCA2NjogMzM2LCA2ODogMzUxIH0sIG8oJFZzMSwgWzIsIDE2NV0sIHsgMTUxOiAzNTIsIDE1MjogWzEsIDM1M10sIDE1NDogWzEsIDM1NF0gfSksIG8oJFZfMSwgWzIsIDE2M10pLCB7IDUwOiBbMSwgMzU2XSwgNjM6IDM1NSB9LCBvKCRWSDEsIFsyLCAxOTJdKSwgeyA1MDogJFY0MSwgNjY6IDM1NyB9LCB7IDE3OiBbMSwgMzU4XSB9LCB7IDE3OiBbMiwgMjA5XSwgNDM6ICRWJDEgfSwgeyAxNzogWzEsIDM1OV0sIDQzOiAkViQxIH0sIHsgMTc6IFsxLCAzNjBdLCA0MzogJFYkMSB9LCBvKCRWczEsIFsyLCAxNjldKSwgeyAxNTM6IFsxLCAzNjFdIH0sIHsgMTA1OiBbMSwgMzYyXSB9LCBvKCRWXzEsIFsyLCAxNjRdKSwgeyAxNjogJFY2MSB9LCBvKCRWYTEsIFsyLCA2N10sIHsgNjc6ICRWMzEgfSksIG8oJFZIMSwgWzIsIDIxNF0pLCBvKCRWSDEsIFsyLCAyMTVdKSwgbygkVkgxLCBbMiwgMjE2XSksIG8oJFZzMSwgWzIsIDE2Nl0pLCB7IDE1NTogWzEsIDM2M10gfSwgeyAxNTY6IFsxLCAzNjRdIH0sIG8oJFZzMSwgWzIsIDE2N10pXSwKICAgIGRlZmF1bHRBY3Rpb25zOiB7IDExOiBbMiwgM10sIDIyOiBbMiwgMV0sIDI0OiBbMiwgMl0sIDE0MzogWzIsIDEyMV0sIDE0NDogWzIsIDEyMl0sIDI2MTogWzIsIDE3NV0sIDI2MjogWzIsIDE3Nl0sIDI3NjogWzIsIDE4MF0sIDI5NjogWzIsIDE4Ml0sIDMzODogWzIsIDIwNV0sIDMzOTogWzIsIDIwNl0sIDM0MDogWzIsIDIwN10gfSwKICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7CiAgICAgIGlmIChoYXNoLnJlY292ZXJhYmxlKSB7CiAgICAgICAgdGhpcy50cmFjZShzdHIpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihzdHIpOwogICAgICAgIGVycm9yLmhhc2ggPSBoYXNoOwogICAgICAgIHRocm93IGVycm9yOwogICAgICB9CiAgICB9LAogICAgcGFyc2U6IGZ1bmN0aW9uIHBhcnNlKGlucHV0KSB7CiAgICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9ICcnLCB5eWxpbmVubyA9IDAsIHl5bGVuZyA9IDAsIHJlY292ZXJpbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxOwogICAgICB2YXIgYXJncyA9IGxzdGFjay5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7CiAgICAgIHZhciBsZXhlciA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7CiAgICAgIHZhciBzaGFyZWRTdGF0ZSA9IHsgeXk6IHt9IH07CiAgICAgIGZvciAodmFyIGsgaW4gdGhpcy55eSkgewogICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHsKICAgICAgICAgIHNoYXJlZFN0YXRlLnl5W2tdID0gdGhpcy55eVtrXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbGV4ZXIuc2V0SW5wdXQoaW5wdXQsIHNoYXJlZFN0YXRlLnl5KTsKICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjsKICAgICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpczsKICAgICAgaWYgKHR5cGVvZiBsZXhlci55eWxsb2MgPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICBsZXhlci55eWxsb2MgPSB7fTsKICAgICAgfQogICAgICB2YXIgeXlsb2MgPSBsZXhlci55eWxsb2M7CiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTsKICAgICAgdmFyIHJhbmdlcyA9IGxleGVyLm9wdGlvbnMgJiYgbGV4ZXIub3B0aW9ucy5yYW5nZXM7CiAgICAgIGlmICh0eXBlb2Ygc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvciA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHRoaXMucGFyc2VFcnJvciA9IHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3I7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcG9wU3RhY2sobikgewogICAgICAgIHN0YWNrLmxlbmd0aCA9IHN0YWNrLmxlbmd0aCAtIDIgKiBuOwogICAgICAgIHZzdGFjay5sZW5ndGggPSB2c3RhY2subGVuZ3RoIC0gbjsKICAgICAgICBsc3RhY2subGVuZ3RoID0gbHN0YWNrLmxlbmd0aCAtIG47CiAgICAgIH0KICAgICAgX3Rva2VuX3N0YWNrOgogICAgICB2YXIgbGV4ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciB0b2tlbjsKICAgICAgICB0b2tlbiA9IGxleGVyLmxleCgpIHx8IEVPRjsKICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSAnbnVtYmVyJykgewogICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICB9OwogICAgICB2YXIgc3ltYm9sLCBwcmVFcnJvclN5bWJvbCwgc3RhdGUsIGFjdGlvbiwgYSwgciwgeXl2YWwgPSB7fSwgcCwgbGVuLCBuZXdTdGF0ZSwgZXhwZWN0ZWQ7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTsKICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV0pIHsKICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoc3ltYm9sID09PSBudWxsIHx8IHR5cGVvZiBzeW1ib2wgPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7CiAgICAgICAgICB9CiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSAndW5kZWZpbmVkJyB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7CiAgICAgICAgICB2YXIgZXJyU3RyID0gJyc7CiAgICAgICAgICBleHBlY3RlZCA9IFtdOwogICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkgewogICAgICAgICAgICBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiBURVJST1IpIHsKICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKCdcJycgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyAnXCcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGxleGVyLnNob3dQb3NpdGlvbikgewogICAgICAgICAgICBlcnJTdHIgPSAnUGFyc2UgZXJyb3Igb24gbGluZSAnICsgKHl5bGluZW5vICsgMSkgKyAnOlxuJyArIGxleGVyLnNob3dQb3NpdGlvbigpICsgJ1xuRXhwZWN0aW5nICcgKyBleHBlY3RlZC5qb2luKCcsICcpICsgJywgZ290IFwnJyArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgJ1wnJzsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVyclN0ciA9ICdQYXJzZSBlcnJvciBvbiBsaW5lICcgKyAoeXlsaW5lbm8gKyAxKSArICc6IFVuZXhwZWN0ZWQgJyArIChzeW1ib2wgPT0gRU9GID8gJ2VuZCBvZiBpbnB1dCcgOiAnXCcnICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyAnXCcnKTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHsKICAgICAgICAgICAgdGV4dDogbGV4ZXIubWF0Y2gsCiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wsCiAgICAgICAgICAgIGxpbmU6IGxleGVyLnl5bGluZW5vLAogICAgICAgICAgICBsb2M6IHl5bG9jLAogICAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWQKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6ICcgKyBzdGF0ZSArICcsIHRva2VuOiAnICsgc3ltYm9sKTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpOwogICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlci55eXRleHQpOwogICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlci55eWxsb2MpOwogICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7CiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7CiAgICAgICAgICAgIGlmICghcHJlRXJyb3JTeW1ib2wpIHsKICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlci55eWxlbmc7CiAgICAgICAgICAgICAgeXl0ZXh0ID0gbGV4ZXIueXl0ZXh0OwogICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIueXlsaW5lbm87CiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlci55eWxsb2M7CiAgICAgICAgICAgICAgaWYgKHJlY292ZXJpbmcgPiAwKSB7CiAgICAgICAgICAgICAgICByZWNvdmVyaW5nLS07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN5bWJvbCA9IHByZUVycm9yU3ltYm9sOwogICAgICAgICAgICAgIHByZUVycm9yU3ltYm9sID0gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTsKICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTsKICAgICAgICAgICAgeXl2YWwuXyQgPSB7CiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLAogICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsCiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2NvbHVtbiwKICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtbgogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAocmFuZ2VzKSB7CiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbCiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLAogICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5yYW5nZVsxXQogICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh5eXZhbCwgWwogICAgICAgICAgICAgIHl5dGV4dCwKICAgICAgICAgICAgICB5eWxlbmcsCiAgICAgICAgICAgICAgeXlsaW5lbm8sCiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksCiAgICAgICAgICAgICAgYWN0aW9uWzFdLAogICAgICAgICAgICAgIHZzdGFjaywKICAgICAgICAgICAgICBsc3RhY2sKICAgICAgICAgICAgXS5jb25jYXQoYXJncykpOwogICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGxlbikgewogICAgICAgICAgICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4gKiAyKTsKICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pOwogICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTsKICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7CiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTsKICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dOwogICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9OwogIC8qIGdlbmVyYXRlZCBieSBqaXNvbi1sZXggMC4zLjQgKi8KICB2YXIgbGV4ZXIgPSAoZnVuY3Rpb24gKCkgewogICAgdmFyIGxleGVyID0gKHsKCiAgICAgIEVPRjogMSwKCiAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7CiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7CiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpOwogICAgICAgIH0KICAgICAgfSwKCiAgICAgIC8vIHJlc2V0cyB0aGUgbGV4ZXIsIHNldHMgbmV3IGlucHV0CiAgICAgIHNldElucHV0OiBmdW5jdGlvbiAoaW5wdXQsIHl5KSB7CiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307CiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDsKICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fYmFja3RyYWNrID0gdGhpcy5kb25lID0gZmFsc2U7CiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDsKICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSAnJzsKICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gWydJTklUSUFMJ107CiAgICAgICAgdGhpcy55eWxsb2MgPSB7CiAgICAgICAgICBmaXJzdF9saW5lOiAxLAogICAgICAgICAgZmlyc3RfY29sdW1uOiAwLAogICAgICAgICAgbGFzdF9saW5lOiAxLAogICAgICAgICAgbGFzdF9jb2x1bW46IDAKICAgICAgICB9OwogICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7CiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFswLCAwXTsKICAgICAgICB9CiAgICAgICAgdGhpcy5vZmZzZXQgPSAwOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9LAoKICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXQKICAgICAgaW5wdXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTsKICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDsKICAgICAgICB0aGlzLnl5bGVuZysrOwogICAgICAgIHRoaXMub2Zmc2V0Kys7CiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDsKICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7CiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/OlxyXG4/fFxuKS4qL2cpOwogICAgICAgIGlmIChsaW5lcykgewogICAgICAgICAgdGhpcy55eWxpbmVubysrOwogICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7CiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrOwogICAgICAgIH0KCiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTsKICAgICAgICByZXR1cm4gY2g7CiAgICAgIH0sCgogICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0CiAgICAgIHVucHV0OiBmdW5jdGlvbiAoY2gpIHsKICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoOwogICAgICAgIHZhciBsaW5lcyA9IGNoLnNwbGl0KC8oPzpcclxuP3xcbikvZyk7CgogICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDsKICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pOwogICAgICAgIC8vdGhpcy55eWxlbmcgLT0gbGVuOwogICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjsKICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcclxuP3xcbikvZyk7CiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7CiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7CgogICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICB0aGlzLnl5bGluZW5vIC09IGxpbmVzLmxlbmd0aCAtIDE7CiAgICAgICAgfQogICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7CgogICAgICAgIHRoaXMueXlsbG9jID0gewogICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSwKICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsCiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiwKICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/CiAgICAgICAgICAgIChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApCiAgICAgICAgICAgICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOgogICAgICAgICAgICB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW4KICAgICAgICB9OwoKICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykgewogICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTsKICAgICAgICB9CiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0sCgogICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvbgogICAgICBtb3JlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0sCgogICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLgogICAgICByZWplY3Q6IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikgewogICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcignTGV4aWNhbCBlcnJvciBvbiBsaW5lICcgKyAodGhpcy55eWxpbmVubyArIDEpICsgJy4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxuJyArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHsKICAgICAgICAgICAgdGV4dDogIiIsCiAgICAgICAgICAgIHRva2VuOiBudWxsLAogICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vCiAgICAgICAgICB9KTsKCiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9LAoKICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2gKICAgICAgbGVzczogZnVuY3Rpb24gKG4pIHsKICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpOwogICAgICB9LAoKICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlcwogICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTsKICAgICAgICByZXR1cm4gKHBhc3QubGVuZ3RoID4gMjAgPyAnLi4uJyA6ICcnKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXG4vZywgIiIpOwogICAgICB9LAoKICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzCiAgICAgIHVwY29taW5nSW5wdXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7CiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHsKICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gJy4uLicgOiAnJykpLnJlcGxhY2UoL1xuL2csICIiKTsKICAgICAgfSwKCiAgICAgIC8vIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gd2hlcmUgdGhlIGxleGluZyBlcnJvciBvY2N1cnJlZCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXMKICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7CiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oIi0iKTsKICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyAiXG4iICsgYyArICJeIjsKICAgICAgfSwKCiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlbgogICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbiAobWF0Y2gsIGluZGV4ZWRfcnVsZSkgewogICAgICAgIHZhciB0b2tlbiwKICAgICAgICAgIGxpbmVzLAogICAgICAgICAgYmFja3VwOwoKICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikgewogICAgICAgICAgLy8gc2F2ZSBjb250ZXh0CiAgICAgICAgICBiYWNrdXAgPSB7CiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLAogICAgICAgICAgICB5eWxsb2M6IHsKICAgICAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLAogICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsCiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sCiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsCiAgICAgICAgICAgIG1hdGNoOiB0aGlzLm1hdGNoLAogICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsCiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCwKICAgICAgICAgICAgeXlsZW5nOiB0aGlzLnl5bGVuZywKICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCwKICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsCiAgICAgICAgICAgIF9pbnB1dDogdGhpcy5faW5wdXQsCiAgICAgICAgICAgIHl5OiB0aGlzLnl5LAogICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSwKICAgICAgICAgICAgZG9uZTogdGhpcy5kb25lCiAgICAgICAgICB9OwogICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHsKICAgICAgICAgICAgYmFja3VwLnl5bGxvYy5yYW5nZSA9IHRoaXMueXlsbG9jLnJhbmdlLnNsaWNlKDApOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XHJcbj98XG4pLiovZyk7CiAgICAgICAgaWYgKGxpbmVzKSB7CiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDsKICAgICAgICB9CiAgICAgICAgdGhpcy55eWxsb2MgPSB7CiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsCiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLAogICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiwKICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/CiAgICAgICAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9ccj9cbj8vKVswXS5sZW5ndGggOgogICAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aAogICAgICAgIH07CiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07CiAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTsKICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDsKICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDsKICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykgewogICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlOwogICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlOwogICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTsKICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07CiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7CiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkgewogICAgICAgICAgdGhpcy5kb25lID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmICh0b2tlbikgewogICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7CiAgICAgICAgICAvLyByZWNvdmVyIGNvbnRleHQKICAgICAgICAgIGZvciAodmFyIGsgaW4gYmFja3VwKSB7CiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIHJ1bGUgYWN0aW9uIGNhbGxlZCByZWplY3QoKSBpbXBseWluZyB0aGUgbmV4dCBydWxlIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC4KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9LAoKICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXQKICAgICAgbmV4dDogZnVuY3Rpb24gKCkgewogICAgICAgIGlmICh0aGlzLmRvbmUpIHsKICAgICAgICAgIHJldHVybiB0aGlzLkVPRjsKICAgICAgICB9CiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkgewogICAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHZhciB0b2tlbiwKICAgICAgICAgIG1hdGNoLAogICAgICAgICAgdGVtcE1hdGNoLAogICAgICAgICAgaW5kZXg7CiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7CiAgICAgICAgICB0aGlzLnl5dGV4dCA9ICcnOwogICAgICAgICAgdGhpcy5tYXRjaCA9ICcnOwogICAgICAgIH0KICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB0ZW1wTWF0Y2ggPSB0aGlzLl9pbnB1dC5tYXRjaCh0aGlzLnJ1bGVzW3J1bGVzW2ldXSk7CiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHsKICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7CiAgICAgICAgICAgIGluZGV4ID0gaTsKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHsKICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTsKICAgICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHsKICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gcnVsZSBhY3Rpb24gY2FsbGVkIHJlamVjdCgpIGltcGx5aW5nIGEgcnVsZSBNSVNtYXRjaC4KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gZWxzZTogdGhpcyBpcyBhIGxleGVyIHJ1bGUgd2hpY2ggY29uc3VtZXMgaW5wdXQgd2l0aG91dCBwcm9kdWNpbmcgYSB0b2tlbiAoZS5nLiB3aGl0ZXNwYWNlKQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAobWF0Y2gpIHsKICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pOwogICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkgewogICAgICAgICAgICByZXR1cm4gdG9rZW47CiAgICAgICAgICB9CiAgICAgICAgICAvLyBlbHNlOiB0aGlzIGlzIGEgbGV4ZXIgcnVsZSB3aGljaCBjb25zdW1lcyBpbnB1dCB3aXRob3V0IHByb2R1Y2luZyBhIHRva2VuIChlLmcuIHdoaXRlc3BhY2UpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gIiIpIHsKICAgICAgICAgIHJldHVybiB0aGlzLkVPRjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcignTGV4aWNhbCBlcnJvciBvbiBsaW5lICcgKyAodGhpcy55eWxpbmVubyArIDEpICsgJy4gVW5yZWNvZ25pemVkIHRleHQuXG4nICsgdGhpcy5zaG93UG9zaXRpb24oKSwgewogICAgICAgICAgICB0ZXh0OiAiIiwKICAgICAgICAgICAgdG9rZW46IG51bGwsCiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm8KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKCiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW4KICAgICAgbGV4OiBmdW5jdGlvbiBsZXgoKSB7CiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTsKICAgICAgICBpZiAocikgewogICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpOwogICAgICAgIH0KICAgICAgfSwKCiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spCiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHsKICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTsKICAgICAgfSwKCiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrCiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHsKICAgICAgICB2YXIgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMTsKICAgICAgICBpZiAobiA+IDApIHsKICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTsKICAgICAgICB9CiAgICAgIH0sCgogICAgICAvLyBwcm9kdWNlIHRoZSBsZXhlciBydWxlIHNldCB3aGljaCBpcyBhY3RpdmUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZQogICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkgewogICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHsKICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdXS5ydWxlczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1siSU5JVElBTCJdLnJ1bGVzOwogICAgICAgIH0KICAgICAgfSwKCiAgICAgIC8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGUKICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHsKICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTsKICAgICAgICBpZiAobiA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuICJJTklUSUFMIjsKICAgICAgICB9CiAgICAgIH0sCgogICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKQogICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHsKICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7CiAgICAgIH0sCgogICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFjawogICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoOwogICAgICB9LAogICAgICBvcHRpb25zOiB7ICJjYXNlLWluc2Vuc2l0aXZlIjogdHJ1ZSB9LAogICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHsKICAgICAgICB2YXIgWVlTVEFURSA9IFlZX1NUQVJUOwogICAgICAgIHN3aXRjaCAoJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykgewogICAgICAgICAgY2FzZSAwOi8qIHNraXAgY29tbWVudHMgKi8KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE6Lyogc2tpcCBzcWwgY29tbWVudHMgKi8KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI6Lyogc2tpcCBzcWwgY29tbWVudHMgKi8KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDM6Lyogc2tpcCB3aGl0ZXNwYWNlICovCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0OiByZXR1cm4gMTk1CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1OiByZXR1cm4gNTAKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDY6IHJldHVybiA1MAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNzogcmV0dXJuIDUwCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4OiByZXR1cm4gMTgKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDk6IHJldHVybiAyOQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTA6IHJldHVybiAxMTkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDExOiByZXR1cm4gMzAKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEyOiByZXR1cm4gMzEKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEzOiByZXR1cm4gMzIKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE0OiByZXR1cm4gMzMKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE1OiByZXR1cm4gMzYKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE2OiByZXR1cm4gMzcKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE3OiByZXR1cm4gMzgKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE4OiByZXR1cm4gMzkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE5OiByZXR1cm4gNDAKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIwOiByZXR1cm4gNDEKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIxOiByZXR1cm4gNDIKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIyOiByZXR1cm4gNDYKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIzOiByZXR1cm4gNDkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI0OiByZXR1cm4gNTcKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI1OiByZXR1cm4gNTgKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI2OiByZXR1cm4gNjAKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI3OiByZXR1cm4gJ0NPTExBVEUnCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyODogcmV0dXJuIDg0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyOTogcmV0dXJuIDg2CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMDogcmV0dXJuIDg3CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMTogcmV0dXJuIDc2CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMjogcmV0dXJuIDcxCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMzogcmV0dXJuIDcyCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzNDogcmV0dXJuIDc0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzNTogcmV0dXJuIDc3CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzNjogcmV0dXJuIDk2CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzNzogcmV0dXJuIDk3CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzODogcmV0dXJuIDEwMQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMzk6IHJldHVybiAxMDYKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDQwOiByZXR1cm4gMTA1CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0MTogcmV0dXJuIDEwOAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNDI6IHJldHVybiAxMDkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDQzOiByZXR1cm4gMTAzCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0NDogcmV0dXJuIDExMAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNDU6IHJldHVybiAxMjEKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDQ2OiByZXR1cm4gMTIzCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0NzogcmV0dXJuIDEwNwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNDg6IHJldHVybiAxMjYKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDQ5OiByZXR1cm4gMTI3CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1MDogcmV0dXJuIDE1NwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNTE6IHJldHVybiAxODIKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDUyOiByZXR1cm4gMTkyCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1MzogcmV0dXJuIDE4NQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNTQ6IHJldHVybiAxODYKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDU1OiByZXR1cm4gMTUyCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1NjogcmV0dXJuIDE3MwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNTc6IHJldHVybiAxMzgKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDU4OiByZXR1cm4gMTM1CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1OTogcmV0dXJuIDE5MwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNjA6IHJldHVybiAxOTQKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDYxOiByZXR1cm4gMTY0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA2MjogcmV0dXJuIDE2NQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNjM6IHJldHVybiAxNzkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDY0OiByZXR1cm4gMTgwCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA2NTogcmV0dXJuIDE2NwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNjY6IHJldHVybiAxNjgKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDY3OiByZXR1cm4gMTcwCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA2ODogcmV0dXJuIDE3NwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNjk6IHJldHVybiAxMjkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDcwOiByZXR1cm4gMTQxCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA3MTogcmV0dXJuIDE0MgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNzI6IHJldHVybiAxMzMKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDczOiByZXR1cm4gMTM0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA3NDogcmV0dXJuIDE0NAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNzU6IHJldHVybiAxNDcKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDc2OiByZXR1cm4gMTUwCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA3NzogcmV0dXJuIDE1MwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNzg6IHJldHVybiAxNTQKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDc5OiByZXR1cm4gMTU1CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4MDogcmV0dXJuIDE1NgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgODE6IHJldHVybiAxNjIKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDgyOiByZXR1cm4gMTQ2CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4MzogcmV0dXJuIDE0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4NDogcmV0dXJuIDQzCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4NTogcmV0dXJuIDM0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4NjogcmV0dXJuIDE2CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4NzogcmV0dXJuIDE3CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4ODogcmV0dXJuIDgyCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4OTogcmV0dXJuIDExNwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTA6IHJldHVybiA4MwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTE6IHJldHVybiA5MQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTI6IHJldHVybiA5MgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTM6IHJldHVybiA3OQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTQ6IHJldHVybiA4MQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTU6IHJldHVybiA0NQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTY6IHJldHVybiA5NQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTc6IHJldHVybiA5OAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTg6IHJldHVybiA5OQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgOTk6IHJldHVybiA5NAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTAwOiByZXR1cm4gMTEyCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMDE6IHJldHVybiAxMTMKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEwMjogcmV0dXJuIDkzCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMDM6IHJldHVybiAnPD0+JwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTA0OiByZXR1cm4gMTE0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMDU6IHJldHVybiAxMTYKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDExNQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTA3OiByZXR1cm4gODgKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEwODogcmV0dXJuIDg5CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMDk6IHJldHVybiA4CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMTA6IHJldHVybiA1MQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTExOiByZXR1cm4gNTEKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDExMjogcmV0dXJuIDU1CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMTM6IHJldHVybiAzNQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTE0OiByZXR1cm4gNTQKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDExNTogcmV0dXJuIDUwCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMTY6IHJldHVybiA2NwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTE3OiByZXR1cm4gNTEKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDExODogcmV0dXJuIDUxCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMTk6IHJldHVybiA1MAogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTIwOiByZXR1cm4gNgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTIxOiByZXR1cm4gJ0lOVkFMSUQnCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcnVsZXM6IFsvXig/OlsvXVsqXSgufFxuKSo/WypdWy9dKS9pLCAvXig/OlstXVstXVxzLipcbikvaSwgL14oPzpbI11ccy4qXG4pL2ksIC9eKD86XHMrKS9pLCAvXig/OlskXVt7XSguKj8pW31dKS9pLCAvXig/OltgXVthLXpBLVpfXHU0ZTAwLVx1OWZhNV1bYS16QS1aMC05X1x1NGUwMC1cdTlmYTVdKltgXSkvaSwgL14oPzpbXHddK1tcdTRlMDAtXHU5ZmE1XStbMC05YS16QS1aX1x1NGUwMC1cdTlmYTVdKikvaSwgL14oPzpbXHU0ZTAwLVx1OWZhNV1bMC05YS16QS1aX1x1NGUwMC1cdTlmYTVdKikvaSwgL14oPzpTRUxFQ1RcYikvaSwgL14oPzpBTExcYikvaSwgL14oPzpBTllcYikvaSwgL14oPzpESVNUSU5DVFxiKS9pLCAvXig/OkRJU1RJTkNUUk9XXGIpL2ksIC9eKD86SElHSF9QUklPUklUWVxiKS9pLCAvXig/Ok1BWF9TVEFURU1FTlRfVElNRVxiKS9pLCAvXig/OlNUUkFJR0hUX0pPSU5cYikvaSwgL14oPzpTUUxfU01BTExfUkVTVUxUXGIpL2ksIC9eKD86U1FMX0JJR19SRVNVTFRcYikvaSwgL14oPzpTUUxfQlVGRkVSX1JFU1VMVFxiKS9pLCAvXig/OlNRTF9DQUNIRVxiKS9pLCAvXig/OlNRTF9OT19DQUNIRVxiKS9pLCAvXig/OlNRTF9DQUxDX0ZPVU5EX1JPV1NcYikvaSwgL14oPzooW2EtekEtWl9cdTRlMDAtXHU5ZmE1XVthLXpBLVowLTlfXHU0ZTAwLVx1OWZhNV0qXC4pezEsMn1cKikvaSwgL14oPzpBU1xiKS9pLCAvXig/OlRSVUVcYikvaSwgL14oPzpGQUxTRVxiKS9pLCAvXig/Ok5VTExcYikvaSwgL14oPzpDT0xMQVRFXGIpL2ksIC9eKD86QklOQVJZXGIpL2ksIC9eKD86Uk9XXGIpL2ksIC9eKD86RVhJU1RTXGIpL2ksIC9eKD86Q0FTRVxiKS9pLCAvXig/OldIRU5cYikvaSwgL14oPzpUSEVOXGIpL2ksIC9eKD86RUxTRVxiKS9pLCAvXig/OkVORFxiKS9pLCAvXig/OkRJVlxiKS9pLCAvXig/Ok1PRFxiKS9pLCAvXig/Ok5PVFxiKS9pLCAvXig/OkJFVFdFRU5cYikvaSwgL14oPzpJTlxiKS9pLCAvXig/OlNPVU5EU1xiKS9pLCAvXig/OkxJS0VcYikvaSwgL14oPzpFU0NBUEVcYikvaSwgL14oPzpSRUdFWFBcYikvaSwgL14oPzpJU1xiKS9pLCAvXig/OlVOS05PV05cYikvaSwgL14oPzpBTkRcYikvaSwgL14oPzpPUlxiKS9pLCAvXig/OlhPUlxiKS9pLCAvXig/OkZST01cYikvaSwgL14oPzpQQVJUSVRJT05cYikvaSwgL14oPzpVU0VcYikvaSwgL14oPzpJTkRFWFxiKS9pLCAvXig/OktFWVxiKS9pLCAvXig/OkZPUlxiKS9pLCAvXig/OkpPSU5cYikvaSwgL14oPzpPUkRFUlxzK0JZXGIpL2ksIC9eKD86R1JPVVBccytCWVxiKS9pLCAvXig/OklHTk9SRVxiKS9pLCAvXig/OkZPUkNFXGIpL2ksIC9eKD86SU5ORVJcYikvaSwgL14oPzpDUk9TU1xiKS9pLCAvXig/Ok9OXGIpL2ksIC9eKD86VVNJTkdcYikvaSwgL14oPzpMRUZUXGIpL2ksIC9eKD86UklHSFRcYikvaSwgL14oPzpPVVRFUlxiKS9pLCAvXig/Ok5BVFVSQUxcYikvaSwgL14oPzpXSEVSRVxiKS9pLCAvXig/OkFTQ1xiKS9pLCAvXig/OkRFU0NcYikvaSwgL14oPzpXSVRIXGIpL2ksIC9eKD86Uk9MTFVQXGIpL2ksIC9eKD86SEFWSU5HXGIpL2ksIC9eKD86T0ZGU0VUXGIpL2ksIC9eKD86UFJPQ0VEVVJFXGIpL2ksIC9eKD86VVBEQVRFXGIpL2ksIC9eKD86TE9DS1xiKS9pLCAvXig/OlNIQVJFXGIpL2ksIC9eKD86TU9ERVxiKS9pLCAvXig/Ok9KXGIpL2ksIC9eKD86TElNSVRcYikvaSwgL14oPzpVTklPTlxiKS9pLCAvXig/OiwpL2ksIC9eKD86PSkvaSwgL14oPzpcKCkvaSwgL14oPzpcKSkvaSwgL14oPzp+KS9pLCAvXig/OiE9KS9pLCAvXig/OiEpL2ksIC9eKD86XHwpL2ksIC9eKD86JikvaSwgL14oPzpcKykvaSwgL14oPzotKS9pLCAvXig/OlwqKS9pLCAvXig/OlwvKS9pLCAvXig/OiUpL2ksIC9eKD86XF4pL2ksIC9eKD86Pj4pL2ksIC9eKD86Pj0pL2ksIC9eKD86PikvaSwgL14oPzo8PCkvaSwgL14oPzo8PT4pL2ksIC9eKD86PD0pL2ksIC9eKD86PD4pL2ksIC9eKD86PCkvaSwgL14oPzpceykvaSwgL14oPzpcfSkvaSwgL14oPzo7KS9pLCAvXig/OlsnXShcXC58W14nXSkqWyddKS9pLCAvXig/OlsiXShcXC58W14iXSkqWyJdKS9pLCAvXig/OlswXVt4XVswLTlhLWZBLUZdKykvaSwgL14oPzpbLV0/WzAtOV0rKFwuWzAtOV0rKT8pL2ksIC9eKD86Wy1dP1swLTldKyhcLlswLTldKyk/W2VFXVstXVswLTldKyhcLlswLTldKyk/KS9pLCAvXig/OlthLXpBLVpfXHU0ZTAwLVx1OWZhNV1bYS16QS1aMC05X1x1NGUwMC1cdTlmYTVdKikvaSwgL14oPzpcLikvaSwgL14oPzpbIl1bYS16QS1aX1x1NGUwMC1cdTlmYTVdW2EtekEtWjAtOV9cdTRlMDAtXHU5ZmE1XSpbIl0pL2ksIC9eKD86WyddW2EtekEtWl9cdTRlMDAtXHU5ZmE1XVthLXpBLVowLTlfXHU0ZTAwLVx1OWZhNV0qWyddKS9pLCAvXig/OihbYF0pKD86KD89KFxcPykpXDIuKSo/XDEpL2ksIC9eKD86JCkvaSwgL14oPzouKS9pXSwKICAgICAgY29uZGl0aW9uczogeyAiSU5JVElBTCI6IHsgInJ1bGVzIjogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMCwgMTAxLCAxMDIsIDEwMywgMTA0LCAxMDUsIDEwNiwgMTA3LCAxMDgsIDEwOSwgMTEwLCAxMTEsIDExMiwgMTEzLCAxMTQsIDExNSwgMTE2LCAxMTcsIDExOCwgMTE5LCAxMjAsIDEyMV0sICJpbmNsdXNpdmUiOiB0cnVlIH0gfQogICAgfSk7CiAgICByZXR1cm4gbGV4ZXI7CiAgfSkoKTsKICBwYXJzZXIubGV4ZXIgPSBsZXhlcjsKICBmdW5jdGlvbiBQYXJzZXIoKSB7CiAgICB0aGlzLnl5ID0ge307CiAgfQogIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXI7IHBhcnNlci5QYXJzZXIgPSBQYXJzZXI7CiAgcmV0dXJuIG5ldyBQYXJzZXI7Cn0pKCk7IGlmICghc3FsUGFyc2VyKSB7CiAgc3FsUGFyc2VyID0ge307Cn0KCmZ1bmN0aW9uIFNxbCgpIHsKICB0aGlzLmJ1ZmZlciA9ICcnOwp9CgpzcWxQYXJzZXIuc3RyaW5naWZ5ID0gZnVuY3Rpb24gKGFzdCkgewogIHZhciBzcWwgPSBuZXcgU3FsKCk7CiAgc3FsLnRyYXZlbE1haW4oYXN0KTsKICByZXR1cm4gc3FsLmJ1ZmZlcjsKfTsKClNxbC5wcm90b3R5cGUudHJhdmVsID0gZnVuY3Rpb24gKGFzdCkgewogIGlmICghYXN0KSByZXR1cm47CgogIGlmICh0eXBlb2YgYXN0ID09PSAnc3RyaW5nJykgewogICAgcmV0dXJuIHRoaXMuYXBwZW5kKGFzdCk7CiAgfQoKICB2YXIgcHJvY2Vzc29yID0gdGhpc1sndHJhdmVsJyArIGFzdC50eXBlXTsKICBwcm9jZXNzb3IuY2FsbCh0aGlzLCBhc3QpOwp9OwoKdmFyIG5vU3VmZml4RmxhZyA9IGZhbHNlOwpTcWwucHJvdG90eXBlLmFwcGVuZEtleXdvcmQgPSBmdW5jdGlvbiAoa2V5d29yZCwgbm9QcmVmaXgsIG5vU3VmZml4KSB7CiAgaWYgKG5vU3VmZml4RmxhZykgewogICAgbm9QcmVmaXggPSB0cnVlOwogICAgbm9TdWZmaXhGbGFnID0gZmFsc2U7CiAgfQogIGlmIChub1ByZWZpeCkgewogICAgdGhpcy5idWZmZXIgKz0ga2V5d29yZC50b1VwcGVyQ2FzZSgpOwogIH0gZWxzZSB7CiAgICB0aGlzLmJ1ZmZlciArPSAnICcgKyBrZXl3b3JkLnRvVXBwZXJDYXNlKCk7CiAgfQoKICBpZiAobm9TdWZmaXgpIHsKICAgIG5vU3VmZml4RmxhZyA9IHRydWU7CiAgfQp9OwpTcWwucHJvdG90eXBlLmFwcGVuZCA9IGZ1bmN0aW9uICh3b3JkLCBub1ByZWZpeCwgbm9TdWZmaXgpIHsKICBpZiAobm9TdWZmaXhGbGFnKSB7CiAgICBub1ByZWZpeCA9IHRydWU7CiAgICBub1N1ZmZpeEZsYWcgPSBmYWxzZTsKICB9CiAgaWYgKG5vUHJlZml4KSB7CiAgICB0aGlzLmJ1ZmZlciArPSB3b3JkOwogIH0gZWxzZSB7CiAgICB0aGlzLmJ1ZmZlciArPSAnICcgKyB3b3JkOwogIH0KCiAgaWYgKG5vU3VmZml4KSB7CiAgICBub1N1ZmZpeEZsYWcgPSB0cnVlOwogIH0KfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxNYWluID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7CiAgaWYgKGFzdC5oYXNTZW1pY29sb24pIHsKICAgIHRoaXMuYXBwZW5kKCc7JywgdHJ1ZSk7CiAgfQp9OwpTcWwucHJvdG90eXBlLnRyYXZlbFNlbGVjdCA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ3NlbGVjdCcpOwogIGlmIChhc3QuZGlzdGluY3RPcHQpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZChhc3QuZGlzdGluY3RPcHQpOwogIH0KICBpZiAoYXN0LmhpZ2hQcmlvcml0eU9wdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5oaWdoUHJpb3JpdHlPcHQpOwogIH0KICBpZiAoYXN0Lm1heFN0YXRlTWVudFRpbWVPcHQpIHsKICAgIHRoaXMuYXBwZW5kKCdNQVhfU1RBVEVNRU5UX1RJTUUgPSAnICsgYXN0Lm1heFN0YXRlTWVudFRpbWVPcHQpOwogIH0KICBpZiAoYXN0LnN0cmFpZ2h0Sm9pbk9wdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5zdHJhaWdodEpvaW5PcHQpOwogIH0KICBpZiAoYXN0LnNxbFNtYWxsUmVzdWx0T3B0KSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoYXN0LnNxbFNtYWxsUmVzdWx0T3B0KTsKICB9CiAgaWYgKGFzdC5zcWxCaWdSZXN1bHRPcHQpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZChhc3Quc3FsQmlnUmVzdWx0T3B0KTsKICB9CiAgaWYgKGFzdC5zcWxCdWZmZXJSZXN1bHRPcHQpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZChhc3Quc3FsQnVmZmVyUmVzdWx0T3B0KTsKICB9CiAgaWYgKGFzdC5zcWxDYWNoZU9wdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5zcWxDYWNoZU9wdCk7CiAgfQogIGlmIChhc3Quc3FsQ2FsY0ZvdW5kUm93c09wdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5zcWxDYWxjRm91bmRSb3dzT3B0KTsKICB9CiAgaWYgKGFzdC5zZWxlY3RJdGVtcykgewogICAgdGhpcy50cmF2ZWxTZWxlY3RFeHByKGFzdC5zZWxlY3RJdGVtcyk7CiAgfQogIGlmIChhc3QuZnJvbSkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdmcm9tJyk7CiAgICB0aGlzLnRyYXZlbChhc3QuZnJvbSk7CiAgfQogIGlmIChhc3QucGFydGl0aW9uKSB7CiAgICB0aGlzLnRyYXZlbChhc3QucGFydGl0aW9uKTsKICB9CiAgaWYgKGFzdC53aGVyZSkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCd3aGVyZScpOwogICAgdGhpcy50cmF2ZWwoYXN0LndoZXJlKTsKICB9CiAgaWYgKGFzdC5ncm91cEJ5KSB7CiAgICB0aGlzLnRyYXZlbChhc3QuZ3JvdXBCeSk7CiAgfQogIGlmIChhc3QuaGF2aW5nKSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoJ2hhdmluZycpOwogICAgdGhpcy50cmF2ZWwoYXN0LmhhdmluZyk7CiAgfQogIGlmIChhc3Qub3JkZXJCeSkgewogICAgdGhpcy50cmF2ZWwoYXN0Lm9yZGVyQnkpOwogIH0KICBpZiAoYXN0LmxpbWl0KSB7CiAgICB0aGlzLnRyYXZlbChhc3QubGltaXQpOwogIH0KICBpZiAoYXN0LnByb2NlZHVyZSkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdwcm9jZWR1cmUnKTsKICAgIHRoaXMudHJhdmVsKGFzdC5wcm9jZWR1cmUpOwogIH0KICBpZiAoYXN0LnVwZGF0ZUxvY2tNb2RlKSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoYXN0LnVwZGF0ZUxvY2tNb2RlKTsKICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsU2VsZWN0RXhwciA9IGZ1bmN0aW9uIChhc3QpIHsKICB2YXIgZXhwckxpc3QgPSBhc3QudmFsdWU7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHByTGlzdC5sZW5ndGg7IGkrKykgewogICAgaWYgKHR5cGVvZiBhc3QgPT09ICdzdHJpbmcnKSB7CiAgICAgIHRoaXMuYXBwZW5kKGV4cHJMaXN0W2ldKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMudHJhdmVsKGV4cHJMaXN0W2ldKTsKICAgICAgaWYgKGV4cHJMaXN0W2ldLmFsaWFzKSB7CiAgICAgICAgaWYgKGV4cHJMaXN0W2ldLmhhc0FzKSB7CiAgICAgICAgICB0aGlzLmFwcGVuZEtleXdvcmQoJ2FzJyk7CiAgICAgICAgfQogICAgICAgIHRoaXMudHJhdmVsKGV4cHJMaXN0W2ldLmFsaWFzKTsKICAgICAgfQogICAgfQogICAgaWYgKGkgIT09IGV4cHJMaXN0Lmxlbmd0aCAtIDEpIHsKICAgICAgdGhpcy5hcHBlbmQoJywnLCB0cnVlKTsKICAgIH0KICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsSXNFeHByZXNzaW9uID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ2luJyk7CiAgaWYgKGFzdC5oYXNOb3QpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgnbm90Jyk7CiAgfQogIHRoaXMuYXBwZW5kKGFzdC5yaWdodCk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsTm90RXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ25vdCcpOwogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsT3JFeHByZXNzaW9uID0gU3FsLnByb3RvdHlwZS50cmF2ZWxBbmRFeHByZXNzaW9uID0gU3FsLnByb3RvdHlwZS50cmF2ZWxYT1JFeHByZXNzaW9uID0gZnVuY3Rpb24gKAogIGFzdAopIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5vcGVyYXRvcik7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0KTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxOdWxsID0gU3FsLnByb3RvdHlwZS50cmF2ZWxCb29sZWFuID0gU3FsLnByb3RvdHlwZS50cmF2ZWxCb29sZWFuRXh0cmEgPSBmdW5jdGlvbiAoCiAgYXN0CikgewogIHRoaXMuYXBwZW5kS2V5d29yZChhc3QudmFsdWUpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbE51bWJlciA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZChhc3QudmFsdWUpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbFN0cmluZyA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZChhc3QudmFsdWUpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbEZ1bmN0aW9uQ2FsbCA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZChhc3QubmFtZSk7CiAgdGhpcy5hcHBlbmQoJygnLCB0cnVlLCB0cnVlKTsKICB2YXIgcGFyYW1zID0gYXN0LnBhcmFtczsKICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykgewogICAgdmFyIHBhcmFtID0gcGFyYW1zW2ldOwogICAgdGhpcy50cmF2ZWwocGFyYW0pOwogICAgaWYgKGkgIT09IHBhcmFtcy5sZW5ndGggLSAxKSB7CiAgICAgIHRoaXMuYXBwZW5kKCcsJywgdHJ1ZSk7CiAgICB9CiAgfQogIHRoaXMuYXBwZW5kKCcpJywgdHJ1ZSk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsRnVuY3Rpb25DYWxsUGFyYW0gPSBmdW5jdGlvbiAoYXN0KSB7CiAgaWYgKGFzdC5kaXN0aW5jdE9wdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5kaXN0aW5jdE9wdCk7CiAgfQogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsSWRlbnRpZmllciA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZChhc3QudmFsdWUpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbElkZW50aWZpZXJMaXN0ID0gZnVuY3Rpb24gKGFzdCkgewogIHZhciBsaXN0ID0gYXN0LnZhbHVlOwogIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgewogICAgdGhpcy50cmF2ZWwobGlzdFtpXSk7CiAgICBpZiAoaSAhPT0gbGlzdC5sZW5ndGggLSAxKSB7CiAgICAgIHRoaXMuYXBwZW5kKCcsJywgdHJ1ZSk7CiAgICB9CiAgfQp9OwpTcWwucHJvdG90eXBlLnRyYXZlbFdoZW5UaGVuTGlzdCA9IGZ1bmN0aW9uIChhc3QpIHsKICB2YXIgbGlzdCA9IGFzdC52YWx1ZTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgnd2hlbicpOwogICAgdGhpcy50cmF2ZWwobGlzdFtpXS53aGVuKTsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgndGhlbicpOwogICAgdGhpcy50cmF2ZWwobGlzdFtpXS50aGVuKTsKICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsQ2FzZVdoZW4gPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdjYXNlJyk7CiAgaWYgKGFzdC5jYXNlRXhwck9wdCkgewogICAgdGhpcy50cmF2ZWwoYXN0LmNhc2VFeHByT3B0KTsKICB9CiAgdGhpcy50cmF2ZWwoYXN0LndoZW5UaGVuTGlzdCk7CiAgaWYgKGFzdC5lbHNlKSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoJ2Vsc2UnKTsKICAgIHRoaXMudHJhdmVsKGFzdC5lbHNlKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdlbmQnKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxQcmVmaXggPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5wcmVmaXgpOwogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsU2ltcGxlRXhwclBhcmVudGhlc2VzID0gZnVuY3Rpb24gKGFzdCkgewogIGlmIChhc3QuaGFzUm93KSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoJ3JvdycpOwogIH0KICB0aGlzLmFwcGVuZCgnKCcsIGZhbHNlLCB0cnVlKTsKICB0aGlzLnRyYXZlbChhc3QudmFsdWUpOwogIHRoaXMuYXBwZW5kKCcpJywgdHJ1ZSk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsU3ViUXVlcnkgPSBmdW5jdGlvbiAoYXN0KSB7CiAgaWYgKGFzdC5oYXNFeGlzdHMpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgnZXhpc3RzJyk7CiAgfQogIHRoaXMuYXBwZW5kKCcoJywgZmFsc2UsIHRydWUpOwogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7CiAgdGhpcy5hcHBlbmQoJyknLCB0cnVlKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxJZGVudGlmaWVyRXhwciA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZCgneycpOwogIHRoaXMudHJhdmVsKGFzdC5pZGVudGlmaWVyKTsKICB0aGlzLnRyYXZlbChhc3QudmFsdWUpOwogIHRoaXMuYXBwZW5kKCd9Jyk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsQml0RXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5vcGVyYXRvcik7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0KTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxJblN1YlF1ZXJ5UHJlZGljYXRlID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICBpZiAoYXN0Lmhhc05vdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdub3QnKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdpbicpOwogIHRoaXMuYXBwZW5kKCcoJywgZmFsc2UsIHRydWUpOwogIHRoaXMudHJhdmVsKGFzdC5yaWdodCk7CiAgdGhpcy5hcHBlbmQoJyknKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxJbkV4cHJlc3Npb25MaXN0UHJlZGljYXRlID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICBpZiAoYXN0Lmhhc05vdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdub3QnKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdpbicpOwogIHRoaXMuYXBwZW5kKCcoJywgZmFsc2UsIHRydWUpOwogIHRoaXMudHJhdmVsKGFzdC5yaWdodCk7CiAgdGhpcy5hcHBlbmQoJyknKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxCZXR3ZWVuUHJlZGljYXRlID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICBpZiAoYXN0Lmhhc05vdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdub3QnKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdiZXR3ZWVuJyk7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0LmxlZnQpOwogIHRoaXMuYXBwZW5kS2V5d29yZCgnYW5kJyk7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0LnJpZ2h0KTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxTb3VuZHNMaWtlUHJlZGljYXRlID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ3NvdW5kcycpOwogIHRoaXMuYXBwZW5kS2V5d29yZCgnbGlrZScpOwogIHRoaXMudHJhdmVsKGFzdC5yaWdodCk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsTGlrZVByZWRpY2F0ZSA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgaWYgKGFzdC5oYXNOb3QpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgnbm90Jyk7CiAgfQogIHRoaXMuYXBwZW5kS2V5d29yZCgnbGlrZScpOwogIHRoaXMudHJhdmVsKGFzdC5yaWdodCk7CiAgaWYgKGFzdC5lc2NhcGUpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgnZXNjYXBlJyk7CiAgICB0aGlzLnRyYXZlbChhc3QuZXNjYXBlKTsKICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsUmVnZXhwUHJlZGljYXRlID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICBpZiAoYXN0Lmhhc05vdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdub3QnKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdyZWdleHAnKTsKICB0aGlzLnRyYXZlbChhc3QucmlnaHQpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbElzTnVsbEJvb2xlYW5QcmltYXJ5ID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdpcycpOwogIGlmIChhc3QuaGFzTm90KSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoJ25vdCcpOwogIH0KICB0aGlzLmFwcGVuZEtleXdvcmQoJ251bGwnKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxDb21wYXJpc29uQm9vbGVhblByaW1hcnkgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy50cmF2ZWwoYXN0LmxlZnQpOwogIHRoaXMuYXBwZW5kKGFzdC5vcGVyYXRvcik7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0KTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxDb21wYXJpc29uU3ViUXVlcnlCb29sZWFuUHJpbWFyeSA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgdGhpcy5hcHBlbmQoYXN0Lm9wZXJhdG9yKTsKICB0aGlzLmFwcGVuZEtleXdvcmQoYXN0LnN1YlF1ZXJ5T3B0KTsKICB0aGlzLmFwcGVuZCgnKCcsIGZhbHNlLCB0cnVlKTsKICB0aGlzLnRyYXZlbChhc3QucmlnaHQpOwogIHRoaXMuYXBwZW5kKCcpJyk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsRXhwcmVzc2lvbkxpc3QgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdmFyIGxpc3QgPSBhc3QudmFsdWU7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7CiAgICB0aGlzLnRyYXZlbChsaXN0W2ldKTsKICAgIGlmIChpICE9PSBsaXN0Lmxlbmd0aCAtIDEpIHsKICAgICAgdGhpcy5hcHBlbmQoJywnLCB0cnVlKTsKICAgIH0KICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsR3JvdXBCeSA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ2dyb3VwIGJ5Jyk7CiAgdmFyIGxpc3QgPSBhc3QudmFsdWU7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7CiAgICB0aGlzLnRyYXZlbChsaXN0W2ldKTsKICAgIGlmIChpICE9PSBsaXN0Lmxlbmd0aCAtIDEpIHsKICAgICAgdGhpcy5hcHBlbmQoJywnLCB0cnVlKTsKICAgIH0KICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsT3JkZXJCeSA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ29yZGVyIGJ5Jyk7CiAgdmFyIGxpc3QgPSBhc3QudmFsdWU7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7CiAgICB0aGlzLnRyYXZlbChsaXN0W2ldKTsKICAgIGlmIChpICE9PSBsaXN0Lmxlbmd0aCAtIDEpIHsKICAgICAgdGhpcy5hcHBlbmQoJywnLCB0cnVlKTsKICAgIH0KICB9CiAgaWYgKGFzdC5yb2xsVXApIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZCgnd2l0aCByb2xsdXAnKTsKICB9Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsR3JvdXBCeU9yZGVyQnlJdGVtID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7CiAgaWYgKGFzdC5zb3J0T3B0KSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoYXN0LnNvcnRPcHQpOwogIH0KfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxMaW1pdCA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ2xpbWl0Jyk7CiAgdmFyIGxpc3QgPSBhc3QudmFsdWU7CiAgaWYgKGxpc3QubGVuZ3RoID09PSAxKSB7CiAgICB0aGlzLmFwcGVuZChsaXN0WzBdKTsKICB9IGVsc2UgaWYgKGxpc3QubGVuZ3RoID09PSAyKSB7CiAgICBpZiAoYXN0Lm9mZnNldE1vZGUpIHsKICAgICAgdGhpcy5hcHBlbmQobGlzdFsxXSk7CiAgICAgIHRoaXMuYXBwZW5kKCdvZmZzZXQnKTsKICAgICAgdGhpcy5hcHBlbmQobGlzdFswXSk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmFwcGVuZChsaXN0WzBdKTsKICAgICAgdGhpcy5hcHBlbmQoJywnLCB0cnVlKTsKICAgICAgdGhpcy5hcHBlbmQobGlzdFsxXSk7CiAgICB9CiAgfQp9OwpTcWwucHJvdG90eXBlLnRyYXZlbFRhYmxlUmVmZXJlbmNlcyA9IGZ1bmN0aW9uIChhc3QpIHsKICB2YXIgbGlzdCA9IGFzdC52YWx1ZTsKICBpZiAoYXN0LlRhYmxlUmVmZXJlbmNlcykgewogICAgdGhpcy5hcHBlbmQoJygnLCBmYWxzZSwgdHJ1ZSk7CiAgfQogIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgewogICAgdGhpcy50cmF2ZWwobGlzdFtpXSk7CiAgICBpZiAoaSAhPT0gbGlzdC5sZW5ndGggLSAxKSB7CiAgICAgIHRoaXMuYXBwZW5kKCcsJywgdHJ1ZSk7CiAgICB9CiAgfQogIGlmIChhc3QuVGFibGVSZWZlcmVuY2VzKSB7CiAgICB0aGlzLmFwcGVuZCgnKScpOwogIH0KfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxUYWJsZVJlZmVyZW5jZSA9IGZ1bmN0aW9uIChhc3QpIHsKICBpZiAoYXN0Lmhhc09qKSB7CiAgICB0aGlzLmFwcGVuZCgneycpOwogICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdvaicpOwogICAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICAgIHRoaXMuYXBwZW5kKCd9Jyk7CiAgfSBlbHNlIHsKICAgIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7CiAgfQp9OwpTcWwucHJvdG90eXBlLnRyYXZlbElubmVyQ3Jvc3NKb2luVGFibGUgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy50cmF2ZWwoYXN0LmxlZnQpOwogIGlmIChhc3QuaW5uZXJDcm9zc09wdCkgewogICAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5pbm5lckNyb3NzT3B0KTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdqb2luJyk7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0KTsKICBpZiAoYXN0LmNvbmRpdGlvbikgewogICAgdGhpcy50cmF2ZWwoYXN0LmNvbmRpdGlvbik7CiAgfQp9OwpTcWwucHJvdG90eXBlLnRyYXZlbFN0cmFpZ2h0Sm9pblRhYmxlID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ3N0cmFpZ2h0X2pvaW4nKTsKICB0aGlzLnRyYXZlbChhc3QucmlnaHQpOwogIHRoaXMudHJhdmVsKGFzdC5jb25kaXRpb24pOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbExlZnRSaWdodEpvaW5UYWJsZSA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKGFzdC5sZWZ0UmlnaHQpOwogIGlmIChhc3Qub3V0T3B0KSB7CiAgICB0aGlzLmFwcGVuZEtleXdvcmQoYXN0Lm91dE9wdCk7CiAgfQogIHRoaXMuYXBwZW5kS2V5d29yZCgnam9pbicpOwogIHRoaXMudHJhdmVsKGFzdC5yaWdodCk7CiAgdGhpcy50cmF2ZWwoYXN0LmNvbmRpdGlvbik7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsTmF0dXJhbEpvaW5UYWJsZSA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCduYXR1cmFsJyk7CiAgaWYgKGFzdC5sZWZ0UmlnaHQpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZChhc3QubGVmdFJpZ2h0KTsKICB9CiAgaWYgKGFzdC5vdXRPcHQpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZChhc3Qub3V0T3B0KTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdqb2luJyk7CiAgdGhpcy50cmF2ZWwoYXN0LnJpZ2h0KTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxPbkpvaW5Db25kaXRpb24gPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdvbicpOwogIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsVXNpbmdKb2luQ29uZGl0aW9uID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMuYXBwZW5kS2V5d29yZCgndXNpbmcnKTsKICB0aGlzLmFwcGVuZEtleXdvcmQoJygnLCBmYWxzZSwgdHJ1ZSk7CiAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICB0aGlzLmFwcGVuZEtleXdvcmQoJyknKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxQYXJ0aXRpb25zID0gZnVuY3Rpb24gKGFzdCkgewogIHRoaXMuYXBwZW5kS2V5d29yZCgncGFydGl0aW9uJyk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCcoJywgZmFsc2UsIHRydWUpOwogIHZhciBsaXN0ID0gYXN0LnZhbHVlOwogIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgewogICAgdGhpcy50cmF2ZWwobGlzdFtpXSk7CiAgICBpZiAoaSAhPT0gbGlzdC5sZW5ndGggLSAxKSB7CiAgICAgIHRoaXMuYXBwZW5kKCcsJywgdHJ1ZSk7CiAgICB9CiAgfQogIHRoaXMuYXBwZW5kS2V5d29yZCgnKScpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbEZvck9wdEluZGV4SGludCA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ2ZvcicpOwogIHRoaXMuYXBwZW5kS2V5d29yZChhc3QudmFsdWUpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbEluZGV4TGlzdCA9IGZ1bmN0aW9uIChhc3QpIHsKICB2YXIgbGlzdCA9IGFzdC52YWx1ZTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKICAgIHRoaXMudHJhdmVsKGxpc3RbaV0pOwogICAgaWYgKGkgIT09IGxpc3QubGVuZ3RoIC0gMSkgewogICAgICB0aGlzLmFwcGVuZCgnLCcsIHRydWUpOwogICAgfQogIH0KfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxVc2VJbmRleEhpbnQgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCd1c2UnKTsKICB0aGlzLmFwcGVuZEtleXdvcmQoYXN0LmluZGV4T3JLZXkpOwogIGlmIChhc3QuZm9yT3B0KSB7CiAgICB0aGlzLnRyYXZlbChhc3QuZm9yT3B0KTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCcoJywgZmFsc2UsIHRydWUpOwogIGlmIChhc3QudmFsdWUpIHsKICAgIHRoaXMudHJhdmVsKGFzdC52YWx1ZSk7CiAgfQogIHRoaXMuYXBwZW5kS2V5d29yZCgnKScpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbElnbm9yZUluZGV4SGludCA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLmFwcGVuZEtleXdvcmQoJ2lnbm9yZScpOwogIHRoaXMuYXBwZW5kS2V5d29yZChhc3QuaW5kZXhPcktleSk7CiAgaWYgKGFzdC5mb3JPcHQpIHsKICAgIHRoaXMudHJhdmVsKGFzdC5mb3JPcHQpOwogIH0KICB0aGlzLmFwcGVuZEtleXdvcmQoJygnLCBmYWxzZSwgdHJ1ZSk7CiAgaWYgKGFzdC52YWx1ZSkgewogICAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCcpJyk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsRm9yY2VJbmRleEhpbnQgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdmb3JjZScpOwogIHRoaXMuYXBwZW5kS2V5d29yZChhc3QuaW5kZXhPcktleSk7CiAgaWYgKGFzdC5mb3JPcHQpIHsKICAgIHRoaXMudHJhdmVsKGFzdC5mb3JPcHQpOwogIH0KICB0aGlzLmFwcGVuZEtleXdvcmQoJygnLCBmYWxzZSwgdHJ1ZSk7CiAgaWYgKGFzdC52YWx1ZSkgewogICAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICB9CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCcpJyk7Cn07ClNxbC5wcm90b3R5cGUudHJhdmVsVGFibGVGYWN0b3IgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICBpZiAoYXN0LnBhcnRpdGlvbikgewogICAgdGhpcy50cmF2ZWwoYXN0LnBhcnRpdGlvbik7CiAgfQogIGlmIChhc3QuYWxpYXMpIHsKICAgIGlmIChhc3QuaGFzQXMpIHsKICAgICAgdGhpcy5hcHBlbmRLZXl3b3JkKCdhcycpOwogICAgfQogICAgdGhpcy50cmF2ZWwoYXN0LmFsaWFzKTsKICB9CiAgaWYgKGFzdC5pbmRleEhpbnRPcHQpIHsKICAgIHRoaXMudHJhdmVsKGFzdC5pbmRleEhpbnRPcHQpOwogIH0KfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxVbmlvbiA9IGZ1bmN0aW9uIChhc3QpIHsKICB0aGlzLnRyYXZlbChhc3QubGVmdCk7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCdVTklPTicpOwogIGlmIChhc3QuZGlzdGluY3RPcHQpIHsKICAgIHRoaXMuYXBwZW5kS2V5d29yZChhc3QuZGlzdGluY3RPcHQpOwogIH0KICB0aGlzLnRyYXZlbChhc3QucmlnaHQpOwp9OwpTcWwucHJvdG90eXBlLnRyYXZlbFNlbGVjdFBhcmVudGhlc2l6ZWQgPSBmdW5jdGlvbiAoYXN0KSB7CiAgdGhpcy5hcHBlbmRLZXl3b3JkKCcoJyk7CiAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICB0aGlzLmFwcGVuZEtleXdvcmQoJyknKTsKfTsKU3FsLnByb3RvdHlwZS50cmF2ZWxQbGFjZUhvbGRlciA9IGZ1bmN0aW9uIChhc3QpIHsKICBpZiAoYXN0LmxlZnQpIHsKICAgIHRoaXMudHJhdmVsKGFzdC5sZWZ0KTsKICB9CgogIGlmIChhc3Qub3BlcmF0b3IpIHsKICAgIHRoaXMuYXBwZW5kKGFzdC5vcGVyYXRvcik7CiAgfQoKICBpZiAoYXN0LnJpZ2h0KSB7CiAgICB0aGlzLmFwcGVuZChhc3QucmlnaHQpOwogIH0KCiAgaWYgKGFzdC52YWx1ZSkgewogICAgdGhpcy50cmF2ZWwoYXN0LnZhbHVlKTsKICB9Cn07IHZhciByb290ID0gdGhpcwovLyBBTUQgLyBSZXF1aXJlSlMKaWYgKHR5cGVvZiBkZWZpbmUgIT09ICd1bmRlZmluZWQnICYmIGRlZmluZS5hbWQpIHsKICBkZWZpbmUoW10sIGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiBzcWxQYXJzZXI7CiAgfSk7Cn0KLy8gTm9kZS5qcwplbHNlIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykgewogIG1vZHVsZS5leHBvcnRzID0gc3FsUGFyc2VyOwp9Ci8vIGluY2x1ZGVkIGRpcmVjdGx5IHZpYSA8c2NyaXB0PiB0YWcKZWxzZSB7CiAgcm9vdC5zcWxQYXJzZXIgPSBzcWxQYXJzZXI7Cn0KCg==
person
navigate_before Table of Contents expand_more navigate_next
Loading Page hourglass_empty