{"testsCollection":{"name":"Chapter - 15.3_Function_Objects","numTests":"167","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4xX0ExX1QxIiwKCnBhdGg6ICIxNS4zLjEiLAoKZGVzY3JpcHRpb246ICJDcmVhdGUgc2ltcGxlIGZ1bmN0aW9ucyBhbmQgY2hlY2sgcmV0dXJuZWQgdmFsdWVzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZiA9IEZ1bmN0aW9uKCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpOwoKLy9DSEVDSyMxCmlmICghKGYgaW5zdGFuY2VvZiBGdW5jdGlvbikpewogICRFUlJPUignIzE6IGYgaW5zdGFuY2VvZiBGdW5jdGlvbicpOwp9CgovL0NIRUNLIzIKaWYgKGYoMSkgIT09IDEpIHsKICAkRVJST1IoJyMyOiBmKDEpICE9PSAxJyk7Cn0KCnZhciBnID0gbmV3IEZ1bmN0aW9uKCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpOwoKCi8vQ0hFQ0sjMwppZiAoIShnIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7CiAgJEVSUk9SKCcjMzogZyBpbnN0YW5jZW9mIEZ1bmN0aW9uJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoZygiQSIpICE9PSAiQSIpIHsKICAkRVJST1IoJyM0OiBnKCJBIikgIT09ICJBIicpOwp9CgovL0NIRUNLIzUKaWYgKGcoIkEiKSAhPT0gZigiQSIpKSB7CiAgJEVSUk9SKCcjNTogZygiQSIpICE9PSBmKCJBIiknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMSIsCgpwYXRoOiAiMTUuMyIsCgpkZXNjcmlwdGlvbjogIkNvbXBhcmUgRnVuY3Rpb24gd2l0aCB0aGlzLkZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gRnVuY3Rpb247Cgp2YXIgdGhpc29iaiA9IHRoaXMuRnVuY3Rpb247CgppZiAob2JqICE9PSB0aGlzb2JqKSB7CiAgJEVSUk9SKCdGdW5jdGlvbiBpcyB0aGUgcHJvcGVydHkgb2YgZ2xvYmFsJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMl9UMSIsCgpwYXRoOiAiMTUuMywgMTAuMi4zLCAxNS4zLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGluZyBcIkZ1bmN0aW9uLmNhbGwodGhpcywgXCJ2YXIgeCAvID0gMTtcIilcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdHJ5ewogIEZ1bmN0aW9uLmNhbGwodGhpcywgInZhciB4IC8gPSAxOyIpOwp9IGNhdGNoKGUpewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMTogZnVuY3Rpb24gYm9keSBtdXN0IGJlIHZhbGlkJyk7CiAgfQp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMl9UMiIsCgpwYXRoOiAiMTUuMywgMTAuMi4zLCAxNS4zLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGluZyBcIkZ1bmN0aW9uLmNhbGwodGhpcywgXCJ2YXIgI3ggID0gMTtcIilcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdHJ5ewogIEZ1bmN0aW9uLmNhbGwodGhpcywgInZhciAjeCAgPSAxOyIpOwp9IGNhdGNoKGUpewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMTogZnVuY3Rpb24gYm9keSBtdXN0IGJlIHZhbGlkJyk7CiAgfQp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIGlzIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgNzt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDc7fX0KCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKGJvZHkpOwogICRGQUlMKCcjMTogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcCBhcmUgdGFrZW46IGNhbGwgVG9TdHJpbmcoYm9keSknKTsKfSBjYXRjaCAoZSkgewogIGlmIChlICE9PSA3KSB7CiAgCSRFUlJPUignIzEuMTogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcCBhcmUgdGFrZW46IGNhbGwgVG9TdHJpbmcoYm9keSknKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEwIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCBpcyBcIm51bGxcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24obnVsbCk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbHMgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDExIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCBpcyBcInVuZGVmaW5lZFwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbih1bmRlZmluZWQpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A1_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEyIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCBpcyBcInZvaWQgMFwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbih2b2lkIDApOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEzIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCBpcyBcInt9XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHt9KTsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBib2R5IGlzIG5vdCBwYXJzYWJsZSBhcyBGdW5jdGlvbkJvZHkgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A1_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDIiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIGlzIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFwicmV0dXJuIDE7XCI7fX1cIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHk9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJyZXR1cm4gMTsiO319OwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oYm9keSk7CQp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09MSkgewogICRFUlJPUignIzM6IGhlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDMiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIDEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKDEpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDQiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIHgsIHdoZXJlIHggaXMgc3BlY2lmaWVkIHdpdGggXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oeCk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKdmFyIHg7CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDUiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwiT2JqZWN0KFwicmV0dXJuIFxcXCdBXFxcJ1wiKVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9IE9iamVjdCgicmV0dXJuIFwnQVwnIik7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PSJcdTAwNDEiKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDYiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIHRoZSBzdHJpbmcgXCJyZXR1cm4gdHJ1ZTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiB0cnVlOyIpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoIShmKCkpKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDciLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwiT2JqZWN0KDEpXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gbmV3IE9iamVjdCgxKTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDgiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwidmFyIDE9MTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAidmFyIDE9MTsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBib2R5IGlzIG5vdCBwYXJzYWJsZSBhcyBGdW5jdGlvbkJvZHkgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IElmIGJvZHkgaXMgbm90IHBhcnNhYmxlIGFzIEZ1bmN0aW9uQm9keSB0aGVuIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDkiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwicmV0dXJuIGFyZ3VtZW50c1swXTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiBhcmd1bWVudHNbMF07Iik7CgovL0NIRUNLIzEKaWYgKCEoZiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKLy9DSEVDSyMyCmlmIChmKCJBIikgIT09ICJBIikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A1_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDEiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMVwiLCBcImFyZzJcIiwgXCJhcmczXCIsIFwicmV0dXJuIGFyZzErYXJnMithcmczO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKCJhcmcxIiwgImFyZzIiLCAiYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSwyLDMpICE9PSA2KSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDIiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMSwgYXJnMlwiLCBcImFyZzNcIiwgXCJyZXR1cm4gYXJnMSthcmcyK2FyZzM7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gRnVuY3Rpb24oImFyZzEsIGFyZzIiLCAiYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoIkFCIiwiQkEiLDEpICE9PSAiQUJCQTEiKSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDMiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMSwgYXJnMiwgYXJnM1wiLCBcInJldHVybiBhcmcxK2FyZzIrYXJnMztcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBGdW5jdGlvbigiYXJnMSwgYXJnMiwgYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSwxLCJBQkJBIikgIT09ICIyQUJCQSIpIHsKICAkRVJST1IoJyMzOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDQiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBpPTA7Cgp2YXIgcD17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gImFyZyIrKCsraSk7fX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHAsIHAsIHAsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoNCwiMiIsIlFVRVNUSU9OIikgIT09ICI0MlFVRVNUSU9OIikgewogICRFUlJPUignIzM6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KICAKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDUiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMgYW5kIGEgY29uY290ZW5hdGlvbiBvZiBzdHJpbmdzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgaT0wOwoKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhcmciKygrK2kpfX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHArIiwiK3AscCwgInJldHVybiBhcmcxK2FyZzIrYXJnMzsiKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQnKTsKfQoKLy9DSEVDSyMyCmlmICghKGYgaW5zdGFuY2VvZiBGdW5jdGlvbikpewogICRFUlJPUignIzI6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigiIiwxLDIpICE9PSAiMTIiKSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDYiLAoKcGF0aDogIjE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMgYW5kIGEgY29uY290ZW5hdGlvbiBvZiBzdHJpbmdzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgaT0wOwoKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhcmciKygrK2kpfX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHArIiwiK3ArIiwiK3AsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoIiIsMSxwKSAhPT0gIjFhcmc0IikgewogICRFUlJPUignIzM6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgMTt9fVwiIGFuZCBcInt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IFwnYm9keVwnO319XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0ge3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgMTt9fTsKdmFyIGJvZHkgPSB7dG9TdHJpbmc6ZnVuY3Rpb24oKXt0aHJvdyAiYm9keSI7fX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLGJvZHkpOwogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQnKTsKfSBjYXRjaCAoZSkgewogIGlmIChlICE9PSAxKSB7CiAgCSRFUlJPUignIzEuMTogaSkgTGV0IFJlc3VsdChpKSBiZSB0aGUgZmlyc3QgYXJndW1lbnQ7IGlpKSBMZXQgUCBiZSBUb1N0cmluZyhSZXN1bHQoaSkpJyk7CiAgfQp9CgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEwIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBcIno7eFwifX1cIiBhbmQgXCJyZXR1cm4gdGhpcztcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIHRoaXM7IjsKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJ6O3gifX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLGJvZHkpOwogICRGQUlMKCcjMTogSWYgUCBpcyBub3QgcGFyc2FibGUgYXMgYSBGb3JtYWxQYXJhbWV0ZXJMaXN0X29wdCB0aGVuIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogSWYgUCBpcyBub3QgcGFyc2FibGUgYXMgYSBGb3JtYWxQYXJhbWV0ZXJMaXN0X29wdCB0aGVuIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDExIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcImEsYixjXCIgYW5kIFwidm9pZCAwXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0gImEsYixjIjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsIHZvaWQgMCk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEyIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcImEsYixjXCIgYW5kIFwidW5kZWZpbmVkXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0gImEsYixjIjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsIHVuZGVmaW5lZCk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEzIiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcImEsYixjXCIgYW5kIFwibnVsbFwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9ICJhLGIsYyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLCBudWxsKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDE0IiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcImEsYixjXCIgYW5kIGFuIHVuZGVmaW5lZCB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIHAgPSAiYSxiLGMiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgYm9keSk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKdmFyIGJvZHk7CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDE1IiwKCnBhdGg6ICIxNS4zLjIuMSwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBhcmUgdHdvIGVtcHR5IHN0cmluZ3MiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKCIiLCAiIik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDIiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFwnYVwnO319XCIgYW5kIFwicmV0dXJuIGE7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0ge3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhIjt9fTsKdmFyIGJvZHkgPSAicmV0dXJuIGE7IjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZig0MikhPT00MikgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCgoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDMiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cD0xO3JldHVybiBcImFcIjt9fVwiIGFuZCBcInt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IFwiYm9keVwiO319XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0ge3RvU3RyaW5nOmZ1bmN0aW9uKCl7cD0xO3JldHVybiAiYSI7fX07CnZhciBib2R5ID0ge3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgImJvZHkiO319OwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCxib2R5KTsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gImJvZHkiKSB7CiAgCSRFUlJPUignIzEuMTogaSkgTGV0IFJlc3VsdChpKSBiZSB0aGUgZmlyc3QgYXJndW1lbnQ7IGlpKSBMZXQgUCBiZSBUb1N0cmluZyhSZXN1bHQoaSkpJyk7CiAgfQp9CgovL0NIRUNLIzIKaWYgKHAgIT09IDEpIHsKICAkRVJST1IoJyMyOiBpKSBMZXQgUmVzdWx0KGkpIGJlIHRoZSBmaXJzdCBhcmd1bWVudDsgaWkpIExldCBQIGJlIFRvU3RyaW5nKFJlc3VsdChpKSknKTsKfQoKCgoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDQiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIGFuIHVuZGVmaW5lZCB2YXJpYWJsZSBhbmQgXCJyZXR1cm4gMS4xO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gMS4xOyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09MS4xKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCnZhciBwOwogfQp9KTsKCg==","id":"S15.3.2.1_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDUiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwidm9pZCAwXCIgYW5kIFwicmV0dXJuIFxcXCJBXFxcIjtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIFwiQVwiOyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbih2b2lkIDAsYm9keSk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT0nXHUwMDQxJykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDYiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwibnVsbFwiIGFuZCBcInJldHVybiB0cnVlO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdHJ1ZTsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24obnVsbCxib2R5KTsKICAkRkFJTCgnIzE6IElmIFAgaXMgbm90IHBhcnNhYmxlIGFzIGEgRm9ybWFsUGFyYW1ldGVyTGlzdF9vcHQgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IElmIFAgaXMgbm90IHBhcnNhYmxlIGFzIGEgRm9ybWFsUGFyYW1ldGVyTGlzdF9vcHQgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwogIH0KfQogfQp9KTsKCg==","id":"S15.3.2.1_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDciLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiT2JqZWN0KFwiYVwiKVwiIGFuZCBcInJldHVybiBhO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gYTsiOwoKdmFyIHA9T2JqZWN0KCJhIik7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLCBib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSkhPT0xKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDgiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwidW5kZWZpbmVkXCIgYW5kIFwicmV0dXJuIHRoaXM7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gInJldHVybiB0aGlzOyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbih1bmRlZmluZWQsYm9keSk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT10aGlzKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCgoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDkiLAoKcGF0aDogIjE1LjMuMi4xLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiMSwxXCIgYW5kIFwicmV0dXJuIHRoaXM7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gInJldHVybiB0aGlzOyI7CnZhciBwPSIxLDEiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCxib2R5KTsKICAkRkFJTCgnIzE6IElmIFAgaXMgbm90IHBhcnNhYmxlIGFzIGEgRm9ybWFsUGFyYW1ldGVyTGlzdF9vcHQgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IElmIFAgaXMgbm90IHBhcnNhYmxlIGFzIGEgRm9ybWFsUGFyYW1ldGVyTGlzdF9vcHQgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yX0ExIiwKCnBhdGg6ICIxNS4zLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB0aGUgY29uc3R1Y3RvciBvZiB0aGUgb2JqZWN0IHRoYXQgaXMgY3JlYXRlZCBhcyBhIG5ldyBGdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBuZXcgRnVuY3Rpb247CgovL0NIRUNLIzEKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMTogV2hlbiBGdW5jdGlvbiBpcyBjYWxsZWQgYXMgcGFydCBvZiBhIG5ldyBleHByZXNzaW9uLCBpdCBpcyBhIGNvbnN0cnVjdG9yOiBpdCBpbml0aWFsaXNlcyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QnKTsKfQoKLy9DSEVDSyMyCmlmIChmID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMyOiBXaGVuIEZ1bmN0aW9uIGlzIGNhbGxlZCBhcyBwYXJ0IG9mIGEgbmV3IGV4cHJlc3Npb24sIGl0IGlzIGEgY29uc3RydWN0b3I6IGl0IGluaXRpYWxpc2VzIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.2_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0ExIiwKCnBhdGg6ICIxNS4zLjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHByb3BlcnR5IFwicHJvdG90eXBlXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGlmKCFGdW5jdGlvbi5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIikpewogICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBoYXMgdGhlIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EyX1QxIiwKCnBhdGg6ICIxNS4zLjMsIDE1LjMuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHByb3RvdHlwZSBvZiBGdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKEZ1bmN0aW9uKSkpIHsKICAkRVJST1IoJyMxOiB0aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EyX1QyIiwKCnBhdGg6ICIxNS4zLjMsIDE1LjMuNCIsCgpkZXNjcmlwdGlvbjogIkFkZCBuZXcgcHJvcGVydHkgdG8gRnVuY3Rpb24ucHJvdG90eXBlIGFuZCBjaGVjayBpdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmluZGljYXRvciA9IDE7CgovL0NIRUNLIwppZiAoRnVuY3Rpb24uaW5kaWNhdG9yICE9IDEpIHsKICAkRVJST1IoJyMxOiB0aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EzIiwKCnBhdGg6ICIxNS4zLjMsIDE1LjMuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIEZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghRnVuY3Rpb24uaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKXsKICAkRVJST1IoJyMxOiBGdW5jdGlvbiBjb25zdHJ1Y3RvciBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoRnVuY3Rpb24ubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMjogRnVuY3Rpb24gY29uc3RydWN0b3IgbGVuZ3RoIHByb3BlcnR5IHZhbHVlIGlzIDEnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.3_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTEiLAoKcGF0aDogIjE1LjMuMy4xLCAxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBGdW5jdGlvbi5wcm90b3R5cGU7CkZ1bmN0aW9uLnByb3RvdHlwZSA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUgIT09IG9iaikgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBpZihGdW5jdGlvbi5wcm90b3R5cGUoKSE9PXVuZGVmaW5lZCl7CiAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7CiAgfQp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMi4xOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seTogJytlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.3.1_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTIiLAoKcGF0aDogIjE1LjMuMy4xLCAxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm9wZXJ0eUlzRW51bWVyYWJsZSgncHJvdG90eXBlJykpIHsKICAkRVJST1IoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCnZhciBjb3VudD0wOwoKZm9yIChwIGluIEZ1bmN0aW9uKXsKICBpZiAocD09PSJwcm90b3R5cGUiKSBjb3VudCsrOwp9CgppZiAoY291bnQgIT09IDApIHsKICAkRVJST1IoJyMyOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.3.1_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTMiLAoKcGF0aDogIjE1LjMuMy4xLCAxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBkZWxldGUgRnVuY3Rpb24ucHJvdG90eXBlOwoKLy9DSEVDSyMxCmlmICghKEZ1bmN0aW9uLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSkpIHsKICAkRVJST1IoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.3.1_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjFfQTFfVDEiLAoKcGF0aDogIjE1LjMuNC4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMxOiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlIGJ1aWx0LWluIEZ1bmN0aW9uIGNvbnN0cnVjdG9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0ExIiwKCnBhdGg6ICIxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJmaXJzdCB3ZSBkZWxldGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGNhdXNlIGl0IG92ZXJyaWRlcyBPYmplY3QgcHJvdG90eXBlIHRvU3RyaW5nLiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZGVsZXRlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzsKCi8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nKCkgIT09ICJbb2JqZWN0ICIrIkZ1bmN0aW9uIisiXSIpIHsKICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgKGl0cyBbW0NsYXNzXV0gaXMgIkZ1bmN0aW9uIiknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QxIiwKCnBhdGg6ICIxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZSgpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICBpZiAoRnVuY3Rpb24ucHJvdG90eXBlKCkgIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgaXRzZWxmIGEgRnVuY3Rpb24gb2JqZWN0IHRoYXQsIHdoZW4gaW52b2tlZCwgYWNjZXB0cyBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5zIHVuZGVmaW5lZCcpOwogIH0KfSBjYXRjaCAoZSkgewogICRFUlJPUignIzEuMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgaXRzZWxmIGEgRnVuY3Rpb24gb2JqZWN0IHRoYXQsIHdoZW4gaW52b2tlZCwgYWNjZXB0cyBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5zIHVuZGVmaW5lZDogJytlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QyIiwKCnBhdGg6ICIxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZShudWxsLHZvaWQgMCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGlmIChGdW5jdGlvbi5wcm90b3R5cGUobnVsbCx2b2lkIDApICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQnKTsKICB9Cn0gY2F0Y2ggKGUpIHsKICAkRVJST1IoJyMxLjE6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQ6ICcrZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QzIiwKCnBhdGg6ICIxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZSh4KSwgd2hlcmUgeCBpcyB1bmRlZmluZWQgdmFyaWFibGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGlmIChGdW5jdGlvbi5wcm90b3R5cGUoeCkgIT09IHVuZGVmaW5lZCkgewogICAgdmFyIHg7CiAgICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCwgd2hlbiBpbnZva2VkLCBhY2NlcHRzIGFueSBhcmd1bWVudHMgYW5kIHJldHVybnMgdW5kZWZpbmVkJyk7CiAgfQp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMS4xOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCwgd2hlbiBpbnZva2VkLCBhY2NlcHRzIGFueSBhcmd1bWVudHMgYW5kIHJldHVybnMgdW5kZWZpbmVkOiAnK2UpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EzX1QyIiwKCnBhdGg6ICIxNS4zLjQsIDE1LjMuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQWRkIG5ldyBwcm9wZXJ0eSB0byBPYmplY3QucHJvdG90eXBlIGFuZCBjaGVjayBpdCBhdCBGdW5jdGlvbi5wcm90b3R5cGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIE9iamVjdC5wcm90b3R5cGUuaW5kaWNhdG9yID0gMTsKCi8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmluZGljYXRvciE9PTEpIHsKICAkRVJST1IoJyMxOiBUaGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgdGhlIE9iamVjdCBwcm90b3R5cGUgb2JqZWN0ICgxNS4zLjIuMSknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0E0IiwKCnBhdGg6ICIxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB2YWx1ZU9mIHByb3BlcnR5IGF0IEZ1bmN0aW9uLnByb3RvdHlwZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInZhbHVlT2YiKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgdmFsdWVPZiBwcm9wZXJ0eSBvZiBpdHMgb3duJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZS52YWx1ZU9mID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGhvd2V2ZXIsIGl0IGluaGVyaXRzIHRoZSB2YWx1ZU9mIHByb3BlcnR5IGZyb20gdGhlIE9iamVjdCBwcm90b3R5cGUgT2JqZWN0Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoRnVuY3Rpb24ucHJvdG90eXBlLnZhbHVlT2YgIT09IE9iamVjdC5wcm90b3R5cGUudmFsdWVPZikgewogICRFUlJPUignIzM6IGhvd2V2ZXIsIGl0IGluaGVyaXRzIHRoZSB2YWx1ZU9mIHByb3BlcnR5IGZyb20gdGhlIE9iamVjdCBwcm90b3R5cGUgT2JqZWN0Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0E1IiwKCnBhdGg6ICIxNS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUgb2JqZWN0XCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnRyeSB7CiAgdmFyIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGU7CiAgJEZBSUwoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBbW2NyZWF0ZV1dIHByb3BlcnR5OiAnK2UpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKCIjMS4xOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBbW2NyZWF0ZV1dIHByb3BlcnR5ICIrZSk7Cgp9CgogfQp9KTsKCg==","id":"S15.3.4_A5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTEwIiwKCnBhdGg6ICIxNS4zLjQuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpvYmogPSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoOwoKRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoICE9PSBvYmopIHsKICAkRVJST1IoJyMyOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHkuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTExIiwKCnBhdGg6ICIxNS4zLjQuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGgiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgaGFzIHRoZSBsZW5ndGggcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoICE9PSAwKSB7CiAgJEVSUk9SKCcjMjogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgdG9TdHJpbmcgbWV0aG9kIGlzIDAnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.2_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTYiLAoKcGF0aDogIjE1LjMuNC4yLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLnByb3RvdHlwZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTciLAoKcGF0aDogIjE1LjMuNC4yLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBGQUNUT1JZID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nOwoKdHJ5IHsKICB2YXIgaW5zdGFuY2UgPSBuZXcgRkFDVE9SWTsKICAkRkFJTCgnIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBjYW5cJ3QgYmUgdXNlZCBhcyBjb25zdHJ1Y3RvcicpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKGUpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTgiLAoKcGF0aDogIjE1LjMuNC4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgoKLy8gQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSkgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCmZvciAocCBpbiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTkiLAoKcGF0aDogIjE1LjMuNC4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGgpIHsKICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEwIiwKCnBhdGg6ICIxNS4zLjQuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggPSBmdW5jdGlvbigpe3JldHVybiAic2hpZnRlZCI7fTsKCi8vQ0hFQ0sjMgppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTExIiwKCnBhdGg6ICIxNS4zLjQuMyIsCgpkZXNjcmlwdGlvbjogIlRDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSB7CiAgJEVSUk9SKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yICh2YXIgcCBpbiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEyIiwKCnBhdGg6ICIxNS4zLjQuMywgMTMuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIG9idGFpbmluZyB0aGUgcHJvdG90eXBlIHByb3BlcnR5IG9mIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkucHJvdG90eXBlICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgaGFzIG5vdCBwcm90b3R5cGUgcHJvcGVydHknK0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5wcm90b3R5cGUpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTFfVDEiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImFwcGx5XCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcHJvdG89RnVuY3Rpb24oKTsKCmZ1bmN0aW9uIEZBQ1RPUlkoKXt9OwoKRkFDVE9SWS5wcm90b3R5cGU9cHJvdG87Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmouYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCnRyeSB7CiAgb2JqLmFwcGx5KCk7CiAgJEZBSUwoJyMyOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMi4xOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTFfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImFwcGx5XCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7fTsKCkZBQ1RPUlkucHJvdG90eXBlPUZ1bmN0aW9uLnByb3RvdHlwZTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai5hcHBseSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGFwcGx5IG1ldGhvZCBhY2Nlc3NlZCcpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBvYmouYXBwbHkoKTsKICAkRkFJTCgnIzI6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMyLjE6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTJfVDEiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5ICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogYXBwbHkgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCA9PT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBsZW5ndGggcHJvcGVydHkgb2YgYXBwbHkgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoICE9PSAyKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgYXBwbHkgbWV0aG9kIGlzIDInKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTJfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZi5hcHBseS5sZW5ndGgsIHdoZXJlIGYgaXMgbmV3IEZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZj1uZXcgRnVuY3Rpb247CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBmLmFwcGx5ICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogYXBwbHkgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIGYuYXBwbHkubGVuZ3RoID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGxlbmd0aCBwcm9wZXJ0eSBvZiBhcHBseSBtZXRob2QgZGVmaW5lZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYuYXBwbHkubGVuZ3RoICE9PSAyKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgYXBwbHkgbWV0aG9kIGlzIDInKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDEiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiTm90IGFueSBhcmd1bWVudHMgYXQgYXBwbHkgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwic3RyYXdiZXJyeVwiIikuYXBwbHkoKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gInN0cmF3YmVycnkiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDEwIiwKCnBhdGg6ICIxNS4zLjQuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGJ5IHVzaW5nIGV2YWwsIG5vIGFueSBhcmd1bWVudHMgYXQgYXBwbHkgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGV2YWwoIiAoZnVuY3Rpb24oKXt0aGlzLmZlYXQ9MX0pLmFwcGx5KCkiKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgbnVsbCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oInRoaXMuZmllbGQ9XCJncmVlblwiIikuYXBwbHkobnVsbCk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZpZWxkIl0gIT09ICJncmVlbiIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDMiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgdm9pZCAwIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cImJhdHRsZVwiIikuYXBwbHkodm9pZCAwKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gImJhdHRsZSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDQiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgdW5kZWZpbmVkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cIm9pbFwiIikuYXBwbHkodW5kZWZpbmVkKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gIm9pbCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDUiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiTm8gYW55IGFyZ3VtZW50cyBhdCBhcHBseSBmdW5jdGlvbiBhbmQgaXQgY2FsbGVkIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJ0aGlzLmZlYXQ9XCJpbiBkYSBoYXVzXCIiKS5hcHBseSgpOwp9OwoKdmFyIG9iaiA9IG5ldyBGQUNUT1JZOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJpbiBkYSBoYXVzIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai5mZWF0ICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDYiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgbnVsbCBhbmQgaXQgY2FsbGVkIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIChmdW5jdGlvbigpe3RoaXMuZmVhdD0ia2Ftb24gYmV5YmEifSkuYXBwbHkobnVsbCk7Cn07Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gImthbW9uIGJleWJhIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai5mZWF0ICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDciLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgdm9pZCAwIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJ0aGlzLmZlYXQ9XCJpbiBkYSBoYXVzXCIiKS5hcHBseSh2b2lkIDApOwp9KSgpOwoKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAiaW4gZGEgaGF1cyIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDgiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgdW5kZWZpbmVkIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gRkFDVE9SWSgpewogIChmdW5jdGlvbigpe3RoaXMuZmVhdD0ia2Ftb24gYmV5YmEifSkuYXBwbHkodW5kZWZpbmVkKTsKfSkoKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDkiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYnkgdXNpbmcgZXZhbCwgYXJndW1lbnQgYXQgYXBwbHkgZnVuY3Rpb24gaXMgdm9pZCAwIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBldmFsKCAiIEZ1bmN0aW9uKFwidGhpcy5mZWF0PTFcIikuYXBwbHkodm9pZCAwKSAiICk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gMSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDEiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBudW1iZXIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9MTsKCnZhciByZXRvYmogPSBGdW5jdGlvbigidGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczsiKS5hcHBseShvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqLnRvdWNoZWQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEocmV0b2JqWyJ0b3VjaGVkIl0pKSB7CiAgJEVSUk9SKCcjMjogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CiB9Cn0pOwoK","id":"S15.3.4.3_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBib29sZWFuIHRydWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9dHJ1ZTsKCnZhciByZXRvYmogPSBuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai50b3VjaGVkICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDMiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBzdHJpbmciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9InNvYXAiOwoKdmFyIHJldG9iaiA9ICggZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzO30gKS5hcHBseShvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqLnRvdWNoZWQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEocmV0b2JqWyJ0b3VjaGVkIl0pKSB7CiAgJEVSUk9SKCcjMjogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.3_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDQiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSB0aGF0IHJldHVybiB0aGlzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzO307CgpyZXRvYmogPSBmLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmogIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEocmV0b2JqWyJ0b3VjaGVkIl0pKSB7CiAgJEVSUk9SKCcjMjogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9Cgp2YXIgb2JqOwoKIH0KfSk7Cgo=","id":"S15.3.4.3_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDUiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9OwoKdmFyIG9iaj17fTsKCmYuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAoIShvYmoudG91Y2hlZCkpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDYiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgU3RyaW5nKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IFN0cmluZygic29hcCIpOwoKKCBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9KS5hcHBseShvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A5_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDciLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgTnVtYmVyKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IE51bWJlcigxKTsKCkZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IikuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAoIShvYmoudG91Y2hlZCkpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDgiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBGdW5jdGlvbigpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPUZ1bmN0aW9uKCk7CgpuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAoIShvYmoudG91Y2hlZCkpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTZfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsMSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIEZ1bmN0aW9uKCkuYXBwbHkobnVsbCwxKTsKICAkRkFJTCgnIzE6IGlmIGFyZ0FycmF5IGlzIG5laXRoZXIgYW4gYXJyYXkgbm9yIGFuIGFyZ3VtZW50cyBvYmplY3QgKHNlZSAxMC4xLjgpLCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IGlmIGFyZ0FycmF5IGlzIG5laXRoZXIgYW4gYXJyYXkgbm9yIGFuIGFyZ3VtZW50cyBvYmplY3QgKHNlZSAxMC4xLjgpLCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTZfVDMiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG9iamVjdCxcIjEsMyw0XCIpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBvYmo9e307CgovL0NIRUNLIzEKdHJ5IHsKICBGdW5jdGlvbigpLmFwcGx5KG9iaiwiMSwzLDQiKTsKICAkRkFJTCgnIzE6IGlmIGFyZ0FycmF5IGlzIG5laXRoZXIgYW4gYXJyYXkgbm9yIGFuIGFyZ3VtZW50cyBvYmplY3QgKHNlZSAxMC4xLjgpLCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IGlmIGFyZ0FycmF5IGlzIG5laXRoZXIgYW4gYXJyYXkgbm9yIGFuIGFyZ3VtZW50cyBvYmplY3QgKHNlZSAxMC4xLjgpLCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A6_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDEiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsWzFdKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExOyIpLmFwcGx5KG51bGwsWzFdKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIHRoZSBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlLi4uJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.3_A7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsWzEsMiwzXSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIG5ldyBGdW5jdGlvbigiYTEsYTIiLCJhMyIsInRoaXMuc2hpZnRlZD1hMjsiKS5hcHBseShudWxsLFsxLDIsM10pOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJzaGlmdGVkIl0gIT09IDIpIHsKICAkRVJST1IoJyMxOiBJZiBhcmdBcnJheSBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gYXJndW1lbnRzIG9iamVjdCwgdGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUuLi4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A7_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDUiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExK2EyK2EzOyIpLmFwcGx5KG51bGwsYXJndW1lbnRzKTsKfQoKb2JqPW5ldyBGQUNUT1JZKCIiLDEsMik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouc2hpZnRlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBJZiBhcmdBcnJheSBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gYXJndW1lbnRzIG9iamVjdCwgdGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUuLi4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A7_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDciLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBjYWxsIHdpdGhvdXQgZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgKGZ1bmN0aW9uICgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMSthMithMzsiKS5hcHBseShudWxsLGFyZ3VtZW50cyk7Cn0pKCIiLDEsMik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A7_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDgiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKHRoaXMsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBjYWxsIHdpdGhvdXQgZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgKGZ1bmN0aW9uICgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMSthMithMzsiKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Cn0pKCIiLDQsMik7CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzI6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.3_A7_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDEiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5XCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHRyeSB7CiAgb2JqID0gbmV3IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDIiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5KClcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICBvYmogPSBuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5KCk7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A8_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDMiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24uYXBwbHlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICBvYmogPSBuZXcgRnVuY3Rpb24uYXBwbHk7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A8_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDQiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgKEZ1bmN0aW9uKFwidGhpcy5wMT0xXCIpLmFwcGx5KVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIG9iaiA9IG5ldyAoRnVuY3Rpb24oInRoaXMucDE9MSIpLmFwcGx5KTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDUiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24oXCJ0aGlzLnAxPTFcIikuYXBwbHlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICBGQUNUT1JZID0gRnVuY3Rpb24oInRoaXMucDE9MSIpLmFwcGx5OwogIG9iaiA9IG5ldyBGQUNUT1JZKCk7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A8_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDYiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgKEZ1bmN0aW9uKFwiZnVuY3Rpb24gZigpe3RoaXMucDE9MTt9O3JldHVybiBmXCIpLmFwcGx5KCkpXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIG9iaiA9IG5ldyAoRnVuY3Rpb24oImZ1bmN0aW9uIGYoKXt0aGlzLnAxPTE7fTtyZXR1cm4gZiIpLmFwcGx5KCkpOwp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0KCi8vQ0hFQ0sjMgppZiAob2JqLnAxIT09IDEpIHsKICAkRVJST1IoJyMyOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A8_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTkiLAoKcGF0aDogIjE1LjMuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGgpIHsKICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEwIiwKCnBhdGg6ICIxNS4zLjQuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoOwoKRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoID0gZnVuY3Rpb24oKXtyZXR1cm4gInNoaWZ0ZWQiO307CgovL0NIRUNLIzIKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHkuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTExIiwKCnBhdGg6ICIxNS4zLjQuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGVudW1lcmF0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKCi8vIENIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSkgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yIChwIGluIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsKXsKICBpZiAocD09PSJsZW5ndGgiKQogICAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udEVudW0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEyIiwKCnBhdGg6ICIxNS4zLjQuNCwgMTMuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIG9idGFpbmluZyB0aGUgcHJvdG90eXBlIHByb3BlcnR5IG9mIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgaGFzIG5vdCBwcm90b3R5cGUgcHJvcGVydHknK0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsLnByb3RvdHlwZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTFfVDEiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2FsbCBcImNhbGxcIiBtZXRob2Qgb2YgdGhlIG9iamVjdCB0aGF0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eS4iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwcm90bz1GdW5jdGlvbigpOwoKZnVuY3Rpb24gRkFDVE9SWSgpe307CgpGQUNUT1JZLnByb3RvdHlwZT1wcm90bzsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai5jYWxsICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogY2FsbCBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCnRyeSB7CiAgb2JqLmNhbGwoKTsKICAkRkFJTCgnIzI6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMyLjE6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CiAgICAKIH0KfSk7Cgo=","id":"S15.3.4.4_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTFfVDIiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImNhbGxcIiBtZXRob2Qgb2YgdGhlIG9iamVjdCB0aGF0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eS4iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGZ1bmN0aW9uIEZBQ1RPUlkoKXt9OwoKRkFDVE9SWS5wcm90b3R5cGU9RnVuY3Rpb24ucHJvdG90eXBlOwoKdmFyIG9iaiA9IG5ldyBGQUNUT1JZOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqLmNhbGwgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBjYWxsIG1ldGhvZCBhY2Nlc3NlZCcpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBvYmouY2FsbCgpOwogICRGQUlMKCcjMjogSWYgdGhlIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzIuMTogSWYgdGhlIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTJfVDEiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGxlbmd0aCBwcm9wZXJ0eSBvZiBjYWxsIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgY2FsbCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTJfVDIiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZi5jYWxsLmxlbmd0aCwgd2hlcmUgZiBpcyBuZXcgRnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmPW5ldyBGdW5jdGlvbjsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYuY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIGYuY2FsbC5sZW5ndGggPT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMjogbGVuZ3RoIHByb3BlcnR5IG9mIGNhbGwgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChmLmNhbGwubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgY2FsbCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDEiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiTm90IGFueSBhcmd1bWVudHMgYXQgY2FsbCBmdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oInRoaXMuZmllbGQ9XCJzdHJhd2JlcnJ5XCIiKS5jYWxsKCk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZpZWxkIl0gIT09ICJzdHJhd2JlcnJ5IikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDEwIiwKCnBhdGg6ICIxNS4zLjQuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGJ5IHVzaW5nIGV2YWwsIG5vIGFueSBhcmd1bWVudHMgYXQgY2FsbCBmdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZXZhbCgiIChmdW5jdGlvbigpe3RoaXMuZmVhdD0xfSkuY2FsbCgpIik7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gMSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDIiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyBudWxsIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cImdyZWVuXCIiKS5jYWxsKG51bGwpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAiZ3JlZW4iKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDMiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyB2b2lkIDAiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwiYmF0dGxlXCIiKS5jYWxsKHZvaWQgMCk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZpZWxkIl0gIT09ICJiYXR0bGUiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDQiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyB1bmRlZmluZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwib2lsXCIiKS5jYWxsKHVuZGVmaW5lZCk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZpZWxkIl0gIT09ICJvaWwiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDUiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiTm8gYW55IGFyZ3VtZW50cyBhdCBjYWxsIGZ1bmN0aW9uIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oInRoaXMuZmVhdD1cImluIGRhIGhhdXNcIiIpLmNhbGwoKTsKfTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAiaW4gZGEgaGF1cyIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouZmVhdCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDYiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyBudWxsIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PSJrYW1vbiBiZXliYSJ9KS5jYWxsKG51bGwpOwp9OwoKdmFyIG9iaiA9IG5ldyBGQUNUT1JZOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJrYW1vbiBiZXliYSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouZmVhdCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDciLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyB2b2lkIDAgYW5kIGl0IGNhbGxlZCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oInRoaXMuZmVhdD1cImluIGRhIGhhdXNcIiIpLmNhbGwodm9pZCAwKTsKfSkoKTsKCgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gImluIGRhIGhhdXMiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDgiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyB1bmRlZmluZWQgYW5kIGl0IGNhbGxlZCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiBGQUNUT1JZKCl7CiAgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PSJrYW1vbiBiZXliYSJ9KS5jYWxsKHVuZGVmaW5lZCk7Cn0pKCk7CgoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJrYW1vbiBiZXliYSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDkiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYnkgdXNpbmcgZXZhbCwgYXJndW1lbnQgYXQgY2FsbCBmdW5jdGlvbiBpcyB2b2lkIDAiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGV2YWwoICIgRnVuY3Rpb24oXCJ0aGlzLmZlYXQ9MVwiKS5jYWxsKHZvaWQgMCkgIiApOwoKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDEiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBudW1iZXIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9MTsKCnZhciByZXRvYmogPSBGdW5jdGlvbigidGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczsiKS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDIiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBib29sZWFuIHRydWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9dHJ1ZTsKCnZhciByZXRvYmogPSBuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqLnRvdWNoZWQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEocmV0b2JqWyJ0b3VjaGVkIl0pKSB7CiAgJEVSUk9SKCcjMjogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDMiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBzdHJpbmciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9InNvYXAiOwoKdmFyIHJldG9iaiA9ICggZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzO30gKS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDQiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSB0aGF0IHJldHVybiB0aGlzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZiA9IGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9OwoKdmFyIHJldG9iaiA9IGYuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKdmFyIG9iajsKCiB9Cn0pOwoK","id":"S15.3.4.4_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDUiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9OwoKdmFyIG9iaj17fTsKCmYuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDYiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgU3RyaW5nKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IFN0cmluZygic29hcCIpOwoKKCBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9KS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDciLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgTnVtYmVyKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IE51bWJlcigxKTsKCkZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A5_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDgiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBGdW5jdGlvbigpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPUZ1bmN0aW9uKCk7CgpuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDEiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW5lbXRzIG9mIGNhbGwgZnVuY3Rpb24gaXMgKG51bGwsWzFdKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExOyIpLmNhbGwobnVsbCxbMV0pOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJzaGlmdGVkIl0uY29uc3RydWN0b3IgIT09IEFycmF5KSB7CiAgJEVSUk9SKCcjMTogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAodGhpc1sic2hpZnRlZCJdLmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzI6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgovL0NIRUNLIzMKaWYgKHRoaXNbInNoaWZ0ZWQiXVswXSAhPT0gMSkgewogICRFUlJPUignIzM6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDIiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW5lbXRzIG9mIGNhbGwgZnVuY3Rpb24gaXMgKG51bGwsWzMsMiwxXSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIG5ldyBGdW5jdGlvbigiYTEsYTIiLCJhMyIsInRoaXMuc2hpZnRlZD1hMTsiKS5jYWxsKG51bGwsWzMsMiwxXSk7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXS5sZW5ndGggIT09IDMpIHsKICAkRVJST1IoJyMxOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKLy9DSEVDSyMyCmlmICgodGhpc1sic2hpZnRlZCJdWzBdICE9PSAzKXx8KHRoaXNbInNoaWZ0ZWQiXVsxXSAhPT0gMil8fCh0aGlzWyJzaGlmdGVkIl1bMl0gIT09IDEpKSB7CiAgJEVSUk9SKCcjMjogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDUiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW5lbXRzIG9mIGNhbGwgZnVuY3Rpb24gaXMgKG51bGwsIGFyZ3VtZW50cyxcIlwiLDIpLCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMS5sZW5ndGgrYTIrYTM7IikuY2FsbChudWxsLGFyZ3VtZW50cywiIiwyKTsKfQoKdmFyIG9iaj1uZXcgRkFDVE9SWSgiIiwxLDIsIkEiKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdICE9PSAiNDIiKSB7CiAgJEVSUk9SKCcjMTogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai5zaGlmdGVkICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A6_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDciLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW5lbXRzIG9mIGNhbGwgZnVuY3Rpb24gaXMgKG51bGwsIGFyZ3VtZW50cyxcIlwiLDIpLCBpbnNpZGUgZnVuY3Rpb24gY2FsbCB3aXRob3V0IGRlY2xhcmF0aW9uIHVzZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiAoKXsKICBGdW5jdGlvbigiYTEsYTIsYTMiLCJ0aGlzLnNoaWZ0ZWQ9YTEubGVuZ3RoK2EyK2EzOyIpLmNhbGwobnVsbCxhcmd1bWVudHMsIiIsMik7Cn0pKCIiLDEsMix0cnVlKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdICE9PSAiNDIiKSB7CiAgJEVSUk9SKCcjMTogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A6_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDgiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQXJndW5lbXRzIG9mIGNhbGwgZnVuY3Rpb24gaXMgKHRoaXMsIGFyZ3VtZW50cyxcIlwiLDIpLCBpbnNpZGUgZnVuY3Rpb24gY2FsbCB3aXRob3V0IGRlY2xhcmF0aW9uIHVzZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiAoKXsKICBGdW5jdGlvbigiYTEsYTIsYTMiLCJ0aGlzLnNoaWZ0ZWQ9YTEubGVuZ3RoK2EyK2EzOyIpLmNhbGwodGhpcyxhcmd1bWVudHMsIiIsMik7Cn0pKCIiLDQsMixudWxsKTsKCi8vQ0hFQ0sjMgppZiAodGhpc1sic2hpZnRlZCJdICE9PSAiNDIiKSB7CiAgJEVSUk9SKCcjMjogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A6_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDEiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGxcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgb2JqID0gbmV3IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDIiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwoKVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIHZhciBGQUNUT1JZID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7CiAgdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A7_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDMiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24uY2FsbFwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIHZhciBvYmogPSBuZXcgRnVuY3Rpb24uY2FsbDsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A7_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDQiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgKEZ1bmN0aW9uKFwidGhpcy5wMT0xXCIpLmNhbGwpXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHRyeSB7CiAgdmFyIG9iaiA9IG5ldyAoRnVuY3Rpb24oInRoaXMucDE9MSIpLmNhbGwpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A7_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDUiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24oXCJ0aGlzLnAxPTFcIikuY2FsbFwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIHZhciBGQUNUT1JZID0gRnVuY3Rpb24oInRoaXMucDE9MSIpLmNhbGw7CiAgdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A7_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDYiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgKEZ1bmN0aW9uKFwiZnVuY3Rpb24gZigpe3RoaXMucDE9MTt9O3JldHVybiBmXCIpLmNhbGwoKSlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIG9iaiA9IG5ldyAoRnVuY3Rpb24oImZ1bmN0aW9uIGYoKXt0aGlzLnAxPTE7fTtyZXR1cm4gZiIpLmNhbGwoKSk7Cn0gY2F0Y2ggKGUpIHsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9CgovL0NIRUNLIzIKaWYgKG9iai5wMSE9PSAxKSB7CiAgJEVSUk9SKCcjMjogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A7_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTkiLAoKcGF0aDogIjE1LjMuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzA6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCkgewogICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUnKTsKfQoKLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDEiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIiwgbnVsbCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKLy9DSEVDSyMyCmlmIChmLmxlbmd0aCAhPT0gMykgewogICRFUlJPUignIzI6IFRoZSB2YWx1ZSBvZiB0aGUgbGVuZ3RoIHByb3BlcnR5IGlzIHVzdWFsbHkgYW4gaW50ZWdlciB0aGF0IGluZGljYXRlcyB0aGUgInR5cGljYWwiIG51bWJlciBvZiBhcmd1bWVudHMgZXhwZWN0ZWQgYnkgdGhlIGZ1bmN0aW9uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDIiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzQsYXJnNVwiLCBudWxsKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsImFyZzQsYXJnNSIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IDUpIHsKICAkRVJST1IoJyMyOiBUaGUgdmFsdWUgb2YgdGhlIGxlbmd0aCBwcm9wZXJ0eSBpcyB1c3VhbGx5IGFuIGludGVnZXIgdGhhdCBpbmRpY2F0ZXMgdGhlICJ0eXBpY2FsIiBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDMiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzEsYXJnMlwiLFwiYXJnM1wiLCBudWxsKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmcxLGFyZzIiLCJhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKLy9DSEVDSyMyCmlmIChmLmxlbmd0aCAhPT0gNikgewogICRFUlJPUignIzI6IFRoZSB2YWx1ZSBvZiB0aGUgbGVuZ3RoIHByb3BlcnR5IGlzIHVzdWFsbHkgYW4gaW50ZWdlciB0aGF0IGluZGljYXRlcyB0aGUgInR5cGljYWwiIG51bWJlciBvZiBhcmd1bWVudHMgZXhwZWN0ZWQgYnkgdGhlIGZ1bmN0aW9uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDEiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsIG51bGwpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCi8vQ0hFQ0sjMgppZihkZWxldGUgZi5sZW5ndGgpewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRVJST1IoJyMzOiB0aGUgZnVuY3Rpb24ubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlLicpOwp9CgovL0NIRUNLIzQKaWYgKGYubGVuZ3RoICE9PSAzKSB7CiAgJEVSUk9SKCcjNDogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDIiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmc0LGFyZzVcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnNCxhcmc1IiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZGVsZXRlIGYubGVuZ3RoOwoKLy9DSEVDSyMyCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5sZW5ndGggIT09IDUpIHsKICAkRVJST1IoJyMzOiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnREZWxldGUgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDMiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmcxLGFyZzJcIixcImFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnMSxhcmcyIiwiYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmRlbGV0ZSBmLmxlbmd0aDsKCi8vQ0hFQ0sjMgppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRVJST1IoJyMyOiB0aGUgZnVuY3Rpb24ubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlLicpOwp9CgovL0NIRUNLIzMKaWYgKGYubGVuZ3RoICE9PSA2KSB7CiAgJEVSUk9SKCcjMzogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDEiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzQsYXJnNVwiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpsZW5ndGggPSBmLmxlbmd0aDsKCmYubGVuZ3RoID0gZnVuY3Rpb24oKXt9OwoKLy9DSEVDSyMyCmlmIChmLmxlbmd0aCAhPT0gbGVuZ3RoKSB7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfQoKLy9DSEVDSyMzCnRyeSB7CiAgZi5sZW5ndGgoKTsKICAkRVJST1IoJyMzOiB0aGUgZnVuY3Rpb24ubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seScpOwp9IGNhdGNoIChlKSB7CiAgOwp9CgovL0NIRUNLIzQKaWYgKGYubGVuZ3RoICE9PSA1KSB7CiAgJEVSUk9SKCcjNDogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDIiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKbGVuZ3RoID0gZi5sZW5ndGg7CgpmLmxlbmd0aCA9IGZ1bmN0aW9uKCl7fTsKCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IGxlbmd0aCkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCi8vQ0hFQ0sjMwp0cnkgewogIGYubGVuZ3RoKCk7CiAgJEVSUk9SKCcjMzogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKLy9DSEVDSyM0CmlmIChmLmxlbmd0aCAhPT0gMykgewogICRFUlJPUignIzQ6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgUmVhZE9ubHkgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDMiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzEsYXJnMlwiLFwiYXJnM1wiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmcxLGFyZzIiLCJhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKbGVuZ3RoID0gZi5sZW5ndGg7CgpmLmxlbmd0aCA9IGZ1bmN0aW9uKCl7fTsKCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IGxlbmd0aCkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCi8vQ0hFQ0sjMwp0cnkgewogIGYubGVuZ3RoKCk7CiAgJEVSUk9SKCcjMzogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKLy9DSEVDSyM0CmlmIChmLmxlbmd0aCAhPT0gNikgewogICRFUlJPUignIzQ6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgUmVhZE9ubHkgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDEiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsIG51bGwpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmZvcihrZXkgaW4gZikgICAgCiAgaWYoa2V5PT0ibGVuZ3RoIikKICAgICAgdmFyIGxlbmd0aGVudW1lZD10cnVlOwogICAgICAKLy9DSEVDSyMyCmlmIChsZW5ndGhlbnVtZWQpIHsKICAkRVJST1IoJyMyOiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnRFbnVtIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDIiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmc0LGFyZzVcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnNSxhcmc0IiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZm9yKGtleSBpbiBmKSAgICAKICBpZihrZXk9PSJsZW5ndGgiKQogICAgICB2YXIgbGVuZ3RoZW51bWVkPXRydWU7CiAgICAgIAovL0NIRUNLIzIKaWYgKGxlbmd0aGVudW1lZCkgewogICRFUlJPUignIzI6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udEVudW0gfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDMiLAoKcGF0aDogIjE1LjMuNS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmcxLGFyZzJcIixcImFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnMSxhcmcyIiwiYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmZvcihrZXkgaW4gZikgICAgCiAgaWYoa2V5PT0ibGVuZ3RoIikKICAgIHZhciBsZW5ndGhlbnVtZWQ9dHJ1ZTsKICAgICAgCi8vQ0hFQ0sjMgppZiAobGVuZ3RoZW51bWVkKSB7CiAgJEVSUk9SKCcjMjogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjJfQTFfVDEiLAoKcGF0aDogIjE1LjMuNS4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcIlwiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZnByb3RvID0gZi5wcm90b3R5cGU7CgovL0NIRUNLIzIKaWYgKGRlbGV0ZSBmLnByb3RvdHlwZSkgewogICRFUlJPUignIzI6IHRoZSBwcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udERlbGV0ZSB9Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5wcm90b3R5cGUgIT09IGZwcm90bykgewogICRFUlJPUignIzM6IHRoZSBwcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udERlbGV0ZSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.2_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjJfQTFfVDIiLAoKcGF0aDogIjE1LjMuNS4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBvZiBGdW5jdGlvbih2b2lkIDAsIFwiXCIpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gRnVuY3Rpb24odm9pZCAwLCAiIik7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZnByb3RvID0gZi5wcm90b3R5cGU7CgovL0NIRUNLIzIKaWYgKGRlbGV0ZSBmLnByb3RvdHlwZSkgewogICRFUlJPUignIzI6IHRoZSBwcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udERlbGV0ZSB9Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5wcm90b3R5cGUgIT09IGZwcm90bykgewogICRFUlJPUignIzM6IHRoZSBwcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udERlbGV0ZSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.2_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDEiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIG51bWJlciIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCgxIGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDIiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIHN0cmluZyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCgiMSIgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDMiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIGJvb2xlYW4gdHJ1ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh0cnVlIGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDQiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIGJvb2xlYW4gZmFsc2UiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBGdW5jdGlvbigibmFtZSIsInRoaXMubmFtZT1uYW1lOyIpOwoKLy9DSEVDSyMxCmlmICgoZmFsc2UgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDUiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIHZvaWQgMCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh2b2lkIDAgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDYiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIG51bGwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBGdW5jdGlvbigibmFtZSIsInRoaXMubmFtZT1uYW1lOyIpOwoKLy9DSEVDSyMxCmlmICgobnVsbCBpbnN0YW5jZW9mICBGQUNUT1JZKSE9PWZhbHNlKSB7CiAgJEVSUk9SKCcjMTogQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDciLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIHVuZGVmaW5lZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh1bmRlZmluZWQgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDgiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJWIGlzIHVuZGVmaW5lZCB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh4IGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9Cgp2YXIgeDsKCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDIiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyB1bmRlZmluZWQsIGFuZCBWIGlzIGVtcHR5IG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IG5ldyBGdW5jdGlvbjsKCkZBQ1RPUlkucHJvdG90eXBlID0gdW5kZWZpbmVkOwoKb2JqPXt9OwoKLy9DSEVDSyMxCnRyeSB7CiAgb2JqIGluc3RhbmNlb2YgIEZBQ1RPUlk7CiAgJEZBSUwoJyMxOiBPIGlzIG5vdCBhbiBvYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBPIGlzIG5vdCBhbiBvYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbicpOwogIH0KfQoKCgogfQp9KTsKCg==","id":"S15.3.5.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDUiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyB2b2lkIDAsIGFuZCBWIGlzIG5ldyBGIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gRnVuY3Rpb24oInRoaXMucHJvcD0xOyIpOwoKRkFDVE9SWS5wcm90b3R5cGUubmFtZSA9ICJmYWlyeSI7CgppbnN0YW5jZSA9IG5ldyBGQUNUT1JZOwoKRkFDVE9SWS5wcm90b3R5cGUgPSB2b2lkIDA7CgovLyBDSEVDSyMxCnRyeSB7CiAgaW5zdGFuY2UgaW5zdGFuY2VvZiBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAkRVJST1IoJyMxLjE6IE8gaXMgbm90IGFuIG9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgovLyBDSEVDSyMyCmlmICgoaW5zdGFuY2UuY29uc3RydWN0b3IgIT09IEZBQ1RPUlkpIHx8IChpbnN0YW5jZS5uYW1lICE9PSAiZmFpcnkiKSkgewogICRFUlJPUignIzI6IGluc3RhbmNlLmNvbnN0cnVjdG9yID09PSBGQUNUT1JZJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDYiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyBzdHJpbmcsIGFuZCBWIGlzIGZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gbmV3IEZ1bmN0aW9uOwoKRkFDVE9SWS5wcm90b3R5cGUgPSAiZXJyb3IiOwoKLy8gQ0hFQ0sjMQp0cnkgewogICggZnVuY3Rpb24oKSB7CiAgfSkgaW5zdGFuY2VvZiBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAkRVJST1IoJyMxLjE6IE8gaXMgbm90IGFuIG9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTNfVDEiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZS50eXBlIGlzIDEsIGFuZCBWIGlzIG5ldyBGIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gRnVuY3Rpb24oInRoaXMubmFtZT1cInJvb3RcIiIpOwoKRkFDVE9SWS5wcm90b3R5cGUudHlwZT0xOwoKaW5zdGFuY2UgPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIEZBQ1RPUlkpKSB7CiAgJEVSUk9SKCcjMTogSWYgTyBhbmQgViByZWZlciB0byB0aGUgc2FtZSBvYmplY3Qgb3IgaWYgdGhleSByZWZlciB0byBvYmplY3RzIGpvaW5lZCB0byBlYWNoIG90aGVyICgxMy4xLjIpLCByZXR1cm4gdHJ1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTNfVDIiLAoKcGF0aDogIjE1LjMuNS4zLCAxMS44LjYiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyBPYmplY3QucHJvdG90eXBlLCBhbmQgViBpcyBlbXB0eSBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBS0VGQUNUT1JZID0gRnVuY3Rpb24oKTsKCmZha2VpbnN0YW5jZSA9IHt9OwoKLy9DSEVDSyMxCmlmIChmYWtlaW5zdGFuY2UgaW5zdGFuY2VvZiBGQUtFRkFDVE9SWSkgewogICRFUlJPUignIzE6IElmIE8gYW5kIFYgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IG9yIGlmIHRoZXkgcmVmZXIgdG8gb2JqZWN0cyBqb2luZWQgdG8gZWFjaCBvdGhlciAoMTMuMS4yKSwgcmV0dXJuIHRydWUnKTsKfQoKRkFLRUZBQ1RPUlkucHJvdG90eXBlPU9iamVjdC5wcm90b3R5cGU7CgovL0NIRUNLIzIKaWYgKCEoZmFrZWluc3RhbmNlIGluc3RhbmNlb2YgRkFLRUZBQ1RPUlkpKSB7CiAgJEVSUk9SKCcjMjogSWYgTyBhbmQgViByZWZlciB0byB0aGUgc2FtZSBvYmplY3Qgb3IgaWYgdGhleSByZWZlciB0byBvYmplY3RzIGpvaW5lZCB0byBlYWNoIG90aGVyICgxMy4xLjIpLCByZXR1cm4gdHJ1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EyX1QxIiwKCnBhdGg6ICIxNS4zLjUiLAoKZGVzY3JpcHRpb246ICJGb3IgdGVzdGluZyBjYWxsIEZ1bmN0aW9uKFwidmFyIHggPTE7IHRoaXMueT0yO3JldHVybiBcXFwiT0tcXFwiO1wiKSgpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uKCJ2YXIgeCA9MTsgdGhpcy55PTI7cmV0dXJuIFwiT0tcIjsiKSgpICE9PSAiT0siKSB7CiAgJEVSUk9SKCcjMTogRXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDYWxsXV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgeCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzMKaWYgKHkgIT09IDIpIHsKICAkRVJST1IoJyMzOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EyX1QyIiwKCnBhdGg6ICIxNS4zLjUiLAoKZGVzY3JpcHRpb246ICJGb3IgdGVzdGluZyBjYWxsIChuZXcgRnVuY3Rpb24oXCJhcmcxLGFyZzJcIixcInZhciB4ID1hcmcxOyB0aGlzLnk9YXJnMjtyZXR1cm4gYXJnMSthcmcyO1wiKSkoXCIxXCIsMikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoKG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyIiwidmFyIHggPWFyZzE7IHRoaXMueT1hcmcyO3JldHVybiBhcmcxK2FyZzI7IikpKCIxIiwyKSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IEV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ2FsbF1dIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIHggIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMjogRXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDYWxsXV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMzCmlmICh5ICE9PSAyKSB7CiAgJEVSUk9SKCcjMzogRXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDYWxsXV0gcHJvcGVydHknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EzX1QxIiwKCnBhdGg6ICIxNS4zLjUiLAoKZGVzY3JpcHRpb246ICJBcyBjb25zdHJ1Y3RvciB1c2UgRnVuY3Rpb24oXCJ2YXIgeCA9MTsgdGhpcy55PTI7cmV0dXJuIFxcXCJPS1xcXCI7XCIpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gRnVuY3Rpb24oInZhciB4ID0xOyB0aGlzLnk9MjtyZXR1cm4gXCJPS1wiOyIpOwpvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMxOiBldmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBGQUNUT1JZKSB7CiAgJEVSUk9SKCcjMjogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzMKaWYgKG9iai55ICE9PSAyKSB7CiAgJEVSUk9SKCcjMzogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EzX1QyIiwKCnBhdGg6ICIxNS4zLjUiLAoKZGVzY3JpcHRpb246ICJBcyBjb25zdHJ1Y3RvciB1c2UgbmV3IEZ1bmN0aW9uKFwiYXJnMSxhcmcyXCIsXCJ2YXIgeCA9MTsgdGhpcy55PWFyZzErYXJnMjtyZXR1cm4gXFxcIk9LXFxcIjtcIikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMiIsInZhciB4ID0xOyB0aGlzLnk9YXJnMSthcmcyO3JldHVybiBcIk9LXCI7Iik7Cm9iaiA9IG5ldyBGQUNUT1JZKCIxIiwyKTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMxOiBldmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBGQUNUT1JZKSB7CiAgJEVSUk9SKCcjMjogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzMKaWYgKG9iai55ICE9PSAiMTIiKSB7CiAgJEVSUk9SKCcjMzogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5_A3_T2"}]}}