Ly8vIENvcHlyaWdodCBieSBTeW50YWNvcmUgTExDIKkgMjAxNi0yMDIxLiBTZWUgTElDRU5TRSBmb3IgZGV0YWlscwovLy8gQGZpbGUgICAgICAgPHNjcjFfbWVtaWYuc3ZoPgovLy8gQGJyaWVmICAgICAgTWVtb3J5IGludGVyZmFjZSBkZWZpbml0aW9ucyBmaWxlCi8vLwoKYGlmbmRlZiBTQ1IxX01FTUlGX1NWSApgZGVmaW5lIFNDUjFfTUVNSUZfU1ZICgpgaW5jbHVkZSAic2NyMV9hcmNoX2Rlc2NyaXB0aW9uLnN2aCIKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBNZW1vcnkgY29tbWFuZCBlbnVtCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovL3R5cGVkZWYgZW51bSBsb2dpYyB7CnBhcmFtZXRlciAgICBTQ1IxX01FTV9DTURfUkQgICAgID0gMSdiMDsKcGFyYW1ldGVyICAgIFNDUjFfTUVNX0NNRF9XUiAgICAgPSAxJ2IxOwovL2BpZmRlZiBTQ1IxX1hQUk9QX0VOCi8vICAgICwKcGFyYW1ldGVyICAgICBTQ1IxX01FTV9DTURfRVJST1IgID0gJ3g7Ci8vYGVuZGlmIC8vIFNDUjFfWFBST1BfRU4KLy99IHR5cGVfc2NyMV9tZW1fY21kX2U7CgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTWVtb3J5IGRhdGEgd2lkdGggZW51bQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy90eXBlZGVmIGVudW0gbG9naWNbMTowXSB7CnBhcmFtZXRlciAgICBTQ1IxX01FTV9XSURUSF9CWVRFICAgICA9IDInYjAwOwpwYXJhbWV0ZXIgICAgU0NSMV9NRU1fV0lEVEhfSFdPUkQgICAgPSAyJ2IwMTsKcGFyYW1ldGVyICAgIFNDUjFfTUVNX1dJRFRIX1dPUkQgICAgID0gMidiMTA7Ci8vYGlmZGVmIFNDUjFfWFBST1BfRU4KLy8gICAgLApwYXJhbWV0ZXIgICAgU0NSMV9NRU1fV0lEVEhfRVJST1IgICAgPSAneDsKLy9gZW5kaWYgLy8gU0NSMV9YUFJPUF9FTgovL30gdHlwZV9zY3IxX21lbV93aWR0aF9lOwoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE1lbW9yeSByZXNwb25zZSBlbnVtCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovL3R5cGVkZWYgZW51bSBsb2dpY1sxOjBdIHsKcGFyYW1ldGVyICAgIFNDUjFfTUVNX1JFU1BfTk9UUkRZICAgID0gMidiMDA7CnBhcmFtZXRlciAgICBTQ1IxX01FTV9SRVNQX1JEWV9PSyAgICA9IDInYjAxOwpwYXJhbWV0ZXIgICAgU0NSMV9NRU1fUkVTUF9SRFlfRVIgICAgPSAyJ2IxMDsKLy9gaWZkZWYgU0NSMV9YUFJPUF9FTgovLyAgICAsCnBhcmFtZXRlciAgICBTQ1IxX01FTV9SRVNQX0VSUk9SICAgICA9ICd4OwovL2BlbmRpZiAvLyBTQ1IxX1hQUk9QX0VOCi8vfSB0eXBlX3NjcjFfbWVtX3Jlc3BfZTsKCmBlbmRpZiAvLyBTQ1IxX01FTUlGX1NWSAo=